From 925b14da6b004087be205a49d9c5986237d497f5 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 8 Jan 2026 21:51:05 -0300 Subject: [PATCH 01/77] feat(mobile): initialize React Native app structure and configuration --- .env.example | 2 - REACT_NATIVE_TASKS.md | 743 ++ apps/mobile/.env.example | 5 + apps/mobile/.gitignore | 41 + apps/mobile/.vscode/extensions.json | 1 + apps/mobile/.vscode/settings.json | 7 + apps/mobile/app.json | 42 + apps/mobile/app/_layout.tsx | 97 + apps/mobile/app/index.tsx | 25 + apps/mobile/assets/images/adaptive-icon.png | Bin 0 -> 16479 bytes apps/mobile/assets/images/favicon.png | Bin 0 -> 16479 bytes apps/mobile/assets/images/icon.png | Bin 0 -> 16479 bytes apps/mobile/assets/images/splash-icon.png | Bin 0 -> 16479 bytes apps/mobile/babel.config.js | 9 + apps/mobile/global.css | 3 + apps/mobile/metro.config.js | 6 + apps/mobile/nativewind-env.d.ts | 1 + apps/mobile/package-lock.json | 10188 ++++++++++++++++++ apps/mobile/package.json | 38 + apps/mobile/tailwind.config.js | 9 + apps/mobile/tsconfig.json | 17 + 21 files changed, 11232 insertions(+), 2 deletions(-) create mode 100644 REACT_NATIVE_TASKS.md create mode 100644 apps/mobile/.env.example create mode 100644 apps/mobile/.gitignore create mode 100644 apps/mobile/.vscode/extensions.json create mode 100644 apps/mobile/.vscode/settings.json create mode 100644 apps/mobile/app.json create mode 100644 apps/mobile/app/_layout.tsx create mode 100644 apps/mobile/app/index.tsx create mode 100644 apps/mobile/assets/images/adaptive-icon.png create mode 100644 apps/mobile/assets/images/favicon.png create mode 100644 apps/mobile/assets/images/icon.png create mode 100644 apps/mobile/assets/images/splash-icon.png create mode 100644 apps/mobile/babel.config.js create mode 100644 apps/mobile/global.css create mode 100644 apps/mobile/metro.config.js create mode 100644 apps/mobile/nativewind-env.d.ts create mode 100644 apps/mobile/package-lock.json create mode 100644 apps/mobile/package.json create mode 100644 apps/mobile/tailwind.config.js create mode 100644 apps/mobile/tsconfig.json diff --git a/.env.example b/.env.example index ece880ac..2e799934 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,5 @@ NEXT_PUBLIC_TMDB_API_KEY= - NEXT_PUBLIC_MEASUREMENT_ID= - NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY= STRIPE_SECRET_KEY= diff --git a/REACT_NATIVE_TASKS.md b/REACT_NATIVE_TASKS.md new file mode 100644 index 00000000..9631352e --- /dev/null +++ b/REACT_NATIVE_TASKS.md @@ -0,0 +1,743 @@ +# 📱 Plotwist - Tarefas para App React Native + +Este documento contém o mapeamento completo das funcionalidades do site web e as tarefas necessárias para criar um aplicativo React Native equivalente. + +--- + +## 📋 Índice + +1. [Setup Inicial](#1-setup-inicial) +2. [Autenticação](#2-autenticação) +3. [Navegação](#3-navegação) +4. [Home/Dashboard](#4-homedashboard) +5. [Catálogo de Filmes](#5-catálogo-de-filmes) +6. [Catálogo de Séries](#6-catálogo-de-séries) +7. [Detalhes de Mídia](#7-detalhes-de-mídia) +8. [Sistema de Reviews](#8-sistema-de-reviews) +9. [Listas Personalizadas](#9-listas-personalizadas) +10. [Perfil do Usuário](#10-perfil-do-usuário) +11. [Coleção do Usuário](#11-coleção-do-usuário) +12. [Estatísticas](#12-estatísticas) +13. [Sistema Social](#13-sistema-social) +14. [Busca](#14-busca) +15. [Configurações](#15-configurações) +16. [Internacionalização](#16-internacionalização) +17. [Funcionalidades Premium](#17-funcionalidades-premium) +18. [Importação de Dados](#18-importação-de-dados) + +--- + +## 1. Setup Inicial + +### 1.1 Configuração do Projeto +- [ ] Criar projeto com Expo ou React Native CLI +- [ ] Configurar TypeScript +- [ ] Configurar ESLint e Prettier (usar biome como no web) +- [ ] Configurar path aliases (@/ para src/) + +### 1.2 Dependências Principais +- [ ] Instalar React Navigation (navegação) +- [ ] Instalar React Query / TanStack Query (gerenciamento de estado servidor) +- [ ] Instalar Axios (requisições HTTP) +- [ ] Instalar React Hook Form + Zod (formulários e validação) +- [ ] Instalar AsyncStorage (persistência local) +- [ ] Instalar react-native-fast-image (imagens otimizadas) +- [ ] Instalar react-native-reanimated (animações) +- [ ] Instalar Nativewind ou Tamagui (estilização) + +### 1.3 Configuração de Ambiente +- [ ] Criar arquivo de configuração de ambiente (.env) +- [ ] Configurar variáveis: `API_URL`, `TMDB_API_KEY` +- [ ] Criar serviço de API base (axios instance) + +### 1.4 Estrutura de Pastas +``` +src/ +├── api/ # Serviços de API (mesmo padrão do web) +├── components/ # Componentes reutilizáveis +├── screens/ # Telas do app +├── navigation/ # Configuração de navegação +├── context/ # Contextos React +├── hooks/ # Hooks customizados +├── types/ # Tipos TypeScript +├── utils/ # Utilitários +└── i18n/ # Internacionalização +``` + +--- + +## 2. Autenticação + +### 2.1 Telas de Auth +- [ ] **Tela de Login** + - [ ] Campo de login (email ou username) + - [ ] Campo de senha com toggle de visibilidade + - [ ] Botão de login + - [ ] Link para "Esqueci a senha" + - [ ] Link para cadastro + - [ ] Validação com Zod + +- [ ] **Tela de Cadastro** + - [ ] Campo de username (validação de disponibilidade) + - [ ] Campo de email (validação de disponibilidade) + - [ ] Campo de senha (mínimo 8 caracteres) + - [ ] Validação em tempo real + - [ ] Termos de uso + +- [ ] **Tela de Esqueci a Senha** + - [ ] Campo de email + - [ ] Envio de email de recuperação + +- [ ] **Tela de Reset de Senha** + - [ ] Campo de nova senha + - [ ] Confirmação de senha + - [ ] Validação de token + +### 2.2 Gerenciamento de Sessão +- [ ] Armazenar token JWT no AsyncStorage/SecureStore +- [ ] Criar contexto de autenticação (SessionContext) +- [ ] Implementar refresh de sessão +- [ ] Implementar logout +- [ ] Proteção de rotas autenticadas + +--- + +## 3. Navegação + +### 3.1 Estrutura de Navegação +- [ ] **Tab Navigator Principal** + - [ ] Home + - [ ] Filmes + - [ ] Séries + - [ ] Busca + - [ ] Perfil + +- [ ] **Stack Navigators** + - [ ] Stack de Autenticação (Login, Cadastro, Reset) + - [ ] Stack de Filmes (Lista, Detalhes) + - [ ] Stack de Séries (Lista, Detalhes, Temporadas, Episódios) + - [ ] Stack de Listas (Minhas Listas, Detalhes da Lista) + - [ ] Stack de Perfil (Perfil, Editar, Configurações) + +### 3.2 Deep Linking +- [ ] Configurar deep links para filmes +- [ ] Configurar deep links para séries +- [ ] Configurar deep links para listas +- [ ] Configurar deep links para perfis + +--- + +## 4. Home/Dashboard + +### 4.1 Componentes da Home +- [ ] **Header** + - [ ] Logo + - [ ] Botão de busca + - [ ] Avatar do usuário (se logado) + +- [ ] **Seção: Última Review do Usuário** + - [ ] Card com a última review feita + - [ ] Link para o item avaliado + +- [ ] **Seção: Reviews Populares** + - [ ] Lista horizontal de reviews em destaque + - [ ] Filtros por período (hoje, semana, mês, todos) + - [ ] Paginação infinita + +- [ ] **Seção: Atividades da Rede** + - [ ] Feed de atividades de usuários seguidos + - [ ] Tipos de atividade: + - [ ] Mudança de status (watched, watching, etc) + - [ ] Nova review criada + - [ ] Nova lista criada + - [ ] Follow/Unfollow + - [ ] Episódios assistidos + - [ ] Likes em reviews/listas + +- [ ] **Sidebar: Filmes Populares** + - [ ] Grid 3x1 de posters + - [ ] Link para ver mais + +- [ ] **Sidebar: Séries Populares** + - [ ] Grid 3x1 de posters + - [ ] Link para ver mais + +--- + +## 5. Catálogo de Filmes + +### 5.1 Telas de Listagem +- [ ] **Filmes Populares** + - [ ] Lista em grid com posters + - [ ] Paginação infinita + - [ ] Pull to refresh + +- [ ] **Em Cartaz (Now Playing)** + - [ ] Lista de filmes em exibição + +- [ ] **Em Breve (Upcoming)** + - [ ] Lista de lançamentos futuros + +- [ ] **Mais Bem Avaliados (Top Rated)** + - [ ] Lista ordenada por rating + +- [ ] **Descobrir Filmes** + - [ ] Filtros avançados: + - [ ] Gêneros (múltipla seleção) + - [ ] Ano de lançamento + - [ ] Nota mínima + - [ ] Ordenação (popularidade, data, nota) + - [ ] Provedores de streaming + - [ ] Região + +### 5.2 Componentes de Filme +- [ ] **PosterCard** + - [ ] Imagem do poster + - [ ] Título + - [ ] Ano + - [ ] Rating + +- [ ] **MovieListFilters** + - [ ] Bottom sheet com filtros + - [ ] Chips de gêneros + - [ ] Slider de rating + - [ ] Date picker para ano + +--- + +## 6. Catálogo de Séries + +### 6.1 Telas de Listagem +- [ ] **Séries Populares** + - [ ] Lista em grid com posters + - [ ] Paginação infinita + +- [ ] **No Ar Hoje (Airing Today)** + - [ ] Séries com episódios hoje + +- [ ] **Em Exibição (On The Air)** + - [ ] Séries em exibição atual + +- [ ] **Mais Bem Avaliadas (Top Rated)** + - [ ] Lista ordenada por rating + +- [ ] **Descobrir Séries** + - [ ] Mesmos filtros dos filmes + - [ ] Filtro adicional: status (em andamento, finalizada) + +### 6.2 Categorias Especiais +- [ ] **Animes** + - [ ] Filtro pré-aplicado para animação japonesa + +- [ ] **Doramas** + - [ ] Filtro pré-aplicado para séries coreanas + +--- + +## 7. Detalhes de Mídia + +### 7.1 Tela de Detalhes de Filme +- [ ] **Banner/Backdrop** + - [ ] Imagem de fundo com gradiente + - [ ] Botão de voltar + +- [ ] **Informações Principais** + - [ ] Poster + - [ ] Título (original e traduzido) + - [ ] Ano de lançamento + - [ ] Duração + - [ ] Gêneros (chips clicáveis) + - [ ] Sinopse (expandível) + - [ ] Rating TMDB + +- [ ] **Ações do Usuário** + - [ ] Botão de Status (Watchlist, Watching, Watched, Dropped) + - [ ] Botão de Adicionar à Lista + - [ ] Botão de Escrever Review + +- [ ] **Informações Adicionais** + - [ ] Diretor + - [ ] Elenco principal (lista horizontal) + - [ ] Orçamento e Receita + - [ ] Idioma original + - [ ] País de produção + +- [ ] **Seções em Abas** + - [ ] Reviews (do app) + - [ ] Elenco e Equipe completos + - [ ] Imagens (posters, backdrops) + - [ ] Vídeos (trailers, teasers) + - [ ] Filmes Relacionados + - [ ] Onde Assistir (streaming) + +- [ ] **Coleção** + - [ ] Se pertence a uma coleção, mostrar outros filmes + +### 7.2 Tela de Detalhes de Série +- [ ] Todos os itens de filme + +- [ ] **Lista de Temporadas** + - [ ] Cards de cada temporada + - [ ] Número de episódios + - [ ] Data de exibição + - [ ] Progresso de assistidos + +- [ ] **Progresso da Série** + - [ ] Barra de progresso geral + - [ ] Episódios assistidos / Total + +### 7.3 Tela de Temporada +- [ ] Informações da temporada +- [ ] Lista de episódios +- [ ] Botão "Marcar todos como assistidos" +- [ ] Navegação entre temporadas + +### 7.4 Tela de Episódio +- [ ] Informações do episódio +- [ ] Sinopse +- [ ] Elenco convidado +- [ ] Botão de marcar como assistido +- [ ] Seção de review do episódio +- [ ] Navegação entre episódios + +### 7.5 Tela de Pessoa (Ator/Diretor) +- [ ] Foto +- [ ] Nome +- [ ] Biografia +- [ ] Data de nascimento +- [ ] Local de nascimento +- [ ] Filmografia (filmes e séries) + +--- + +## 8. Sistema de Reviews + +### 8.1 Componentes de Review +- [ ] **ReviewItem** + - [ ] Avatar do usuário + - [ ] Username (link para perfil) + - [ ] Rating (estrelas) + - [ ] Texto da review + - [ ] Data + - [ ] Badge de PRO + - [ ] Indicador de spoiler + - [ ] Contador de likes + - [ ] Botão de like + - [ ] Botão de responder + - [ ] Menu de ações (editar, excluir) + +- [ ] **ReviewFormDialog** + - [ ] Modal/Bottom sheet + - [ ] Seletor de rating (0-10 ou estrelas) + - [ ] Campo de texto da review + - [ ] Toggle de spoiler + - [ ] Botão de publicar + +- [ ] **ReviewReply** + - [ ] Lista de respostas + - [ ] Formulário de resposta + - [ ] Like em respostas + +### 8.2 Listagem de Reviews +- [ ] Reviews do item (filme/série/episódio) +- [ ] Reviews do usuário (no perfil) +- [ ] Reviews populares (na home) +- [ ] Filtros por idioma +- [ ] Ordenação (data, likes) + +--- + +## 9. Listas Personalizadas + +### 9.1 Telas de Listas +- [ ] **Minhas Listas** + - [ ] Grid de listas do usuário + - [ ] Botão de criar nova lista + - [ ] Pull to refresh + +- [ ] **Descobrir Listas** + - [ ] Listas públicas populares + - [ ] Filtro por listas com banner + +- [ ] **Detalhes da Lista** + - [ ] Banner customizável + - [ ] Título e descrição + - [ ] Criador (link para perfil) + - [ ] Contador de likes + - [ ] Botão de like + - [ ] Progresso (itens assistidos) + - [ ] Grid de itens da lista + - [ ] Reordenação por drag and drop (modo edição) + - [ ] Botão de adicionar item + +### 9.2 Formulário de Lista +- [ ] Campo de título +- [ ] Campo de descrição +- [ ] Seletor de visibilidade (Pública, Rede, Privada) +- [ ] Upload de banner (image picker) + +### 9.3 Adicionar Item à Lista +- [ ] Busca de filme/série +- [ ] Quick add (a partir da tela de detalhes) +- [ ] Sugestões baseadas em outras listas + +--- + +## 10. Perfil do Usuário + +### 10.1 Tela de Perfil +- [ ] **Header do Perfil** + - [ ] Banner customizável + - [ ] Avatar customizável + - [ ] Username + - [ ] Badge PRO (se aplicável) + - [ ] Biografia + - [ ] Botão de seguir/deixar de seguir + - [ ] Botão de editar (próprio perfil) + +- [ ] **Estatísticas Resumidas** + - [ ] Filmes assistidos + - [ ] Séries assistidas + - [ ] Seguidores + - [ ] Seguindo + +- [ ] **Links Sociais** + - [ ] Instagram + - [ ] TikTok + - [ ] YouTube + - [ ] X (Twitter) + +- [ ] **Navegação em Abas** + - [ ] Atividades + - [ ] Coleção + - [ ] Listas + - [ ] Reviews + - [ ] Estatísticas + +### 10.2 Edição de Perfil +- [ ] Upload de avatar (image picker + crop) +- [ ] Upload de banner (image picker + crop) +- [ ] Edição de username +- [ ] Edição de biografia +- [ ] Edição de links sociais + +--- + +## 11. Coleção do Usuário + +### 11.1 Tela de Coleção +- [ ] **Filtros** + - [ ] Status (Todos, Watchlist, Watching, Watched, Dropped) + - [ ] Tipo de mídia (Filmes, Séries, Ambos) + - [ ] Rating dado + - [ ] Ordenação (data adição, data atualização, rating) + - [ ] Apenas sem review + +- [ ] **Lista de Itens** + - [ ] Grid de posters + - [ ] Indicador de status + - [ ] Rating dado (se existir) + - [ ] Paginação infinita + +### 11.2 Gestão de Itens +- [ ] Alterar status rapidamente +- [ ] Remover da coleção +- [ ] Ver detalhes + +--- + +## 12. Estatísticas + +### 12.1 Tela de Estatísticas do Usuário +- [ ] **Total de Horas** + - [ ] Cálculo baseado em runtime dos filmes + - [ ] Cálculo baseado em episódios assistidos + +- [ ] **Contagem de Reviews** + - [ ] Total de reviews feitas + +- [ ] **Séries Mais Assistidas** + - [ ] Top 5 séries por episódios + - [ ] Gráfico de barras + +- [ ] **Gêneros Assistidos** + - [ ] Distribuição por gênero + - [ ] Gráfico de pizza/barras + +- [ ] **Atores Mais Vistos** + - [ ] Top atores nas mídias assistidas + +- [ ] **Países de Produção** + - [ ] Mapa ou lista de países + - [ ] Distribuição por país + +- [ ] **Melhores Avaliações** + - [ ] Itens com nota 10 + - [ ] Média geral do usuário + +- [ ] **Status das Mídias** + - [ ] Distribuição por status + - [ ] Gráfico de pizza + +--- + +## 13. Sistema Social + +### 13.1 Followers/Following +- [ ] **Lista de Seguidores** + - [ ] Avatar + - [ ] Username + - [ ] Botão de seguir de volta + - [ ] Paginação infinita + +- [ ] **Lista de Seguindo** + - [ ] Avatar + - [ ] Username + - [ ] Botão de deixar de seguir + - [ ] Paginação infinita + +### 13.2 Busca de Usuários +- [ ] Busca por username +- [ ] Resultados em tempo real +- [ ] Indicador se já segue + +### 13.3 Likes +- [ ] Like em reviews +- [ ] Like em respostas +- [ ] Like em listas +- [ ] Animação de like +- [ ] Lista de quem curtiu + +--- + +## 14. Busca + +### 14.1 Tela de Busca +- [ ] **Campo de Busca** + - [ ] Debounce de 300ms + - [ ] Limpeza rápida + - [ ] Histórico de buscas recentes + +- [ ] **Resultados Multi-tipo** + - [ ] Seção de Filmes + - [ ] Seção de Séries + - [ ] Seção de Pessoas + - [ ] Ver todos de cada tipo + +### 14.2 Command Search (Quick Search) +- [ ] Atalho para busca rápida (pull down?) +- [ ] Resultados inline +- [ ] Navegação por teclado (se tablet) + +--- + +## 15. Configurações + +### 15.1 Preferências do Usuário +- [ ] **Preferências de Streaming** + - [ ] Seleção de provedores favoritos + - [ ] Região de streaming + +- [ ] **Preferências de Exibição** + - [ ] Tema (claro, escuro, sistema) + - [ ] Idioma do app + - [ ] Idioma preferido para dados do TMDB + +### 15.2 Conta +- [ ] Alterar senha +- [ ] Notificações +- [ ] Privacidade +- [ ] Excluir conta +- [ ] Logout + +--- + +## 16. Internacionalização + +### 16.1 Idiomas Suportados +- [ ] Português (pt-BR) +- [ ] Inglês (en-US) +- [ ] Espanhol (es-ES) +- [ ] Francês (fr-FR) +- [ ] Alemão (de-DE) +- [ ] Italiano (it-IT) +- [ ] Japonês (ja-JP) + +### 16.2 Implementação +- [ ] Instalar i18next + react-i18next +- [ ] Copiar dicionários do web (public/dictionaries/) +- [ ] Criar contexto de idioma +- [ ] Persistir preferência de idioma + +--- + +## 17. Funcionalidades Premium (PRO) + +### 17.1 Features PRO +- [ ] Badge PRO no perfil +- [ ] Importação de dados externos +- [ ] [Outras features PRO a definir] + +### 17.2 Integração com Pagamento +- [ ] Tela de Pricing +- [ ] Integração com Stripe (via WebView ou deeplinking) +- [ ] Ou: usar In-App Purchases nativas + +--- + +## 18. Importação de Dados + +### 18.1 Provedores Suportados +- [ ] **MyAnimeList** + - [ ] Upload de arquivo XML + - [ ] Processamento e mapeamento + +- [ ] **Letterboxd** + - [ ] Upload de arquivo CSV + - [ ] Processamento e mapeamento + +### 18.2 Tela de Importação +- [ ] Seleção de provedor +- [ ] Upload de arquivo (document picker) +- [ ] Progresso de importação +- [ ] Resultados (sucesso/falha por item) + +--- + +## 🎨 Componentes UI Reutilizáveis + +### Componentes Base +- [ ] Button (variantes: default, outline, ghost, destructive) +- [ ] Input +- [ ] Textarea +- [ ] Select / Picker +- [ ] Checkbox +- [ ] Switch +- [ ] Slider +- [ ] Avatar +- [ ] Badge +- [ ] Card +- [ ] Skeleton +- [ ] Toast / Snackbar +- [ ] Dialog / Modal +- [ ] Bottom Sheet +- [ ] Tabs +- [ ] Accordion +- [ ] Separator + +### Componentes de Mídia +- [ ] PosterCard +- [ ] PosterGrid +- [ ] Banner +- [ ] PersonCard +- [ ] RatingStars +- [ ] StatusBadge +- [ ] GenreChip + +### Componentes de Interação +- [ ] LikeButton (com animação) +- [ ] FollowButton +- [ ] StatusDropdown +- [ ] AddToListButton +- [ ] ShareButton + +--- + +## 📱 Considerações Mobile-Specific + +### UX Nativa +- [ ] Gestos de swipe para navegação +- [ ] Pull to refresh em todas as listas +- [ ] Haptic feedback em ações importantes +- [ ] Splash screen +- [ ] App icon + +### Performance +- [ ] Lazy loading de imagens +- [ ] Cache de imagens com react-native-fast-image +- [ ] Virtualização de listas longas (FlashList) +- [ ] Skeleton loading em todas as telas + +### Offline +- [ ] Cache de dados visualizados recentemente +- [ ] Indicador de modo offline +- [ ] Retry automático quando online + +### Push Notifications (Futuro) +- [ ] Novo seguidor +- [ ] Like na review +- [ ] Resposta na review +- [ ] Lançamento de filme/série na watchlist + +--- + +## 📊 Estimativa de Complexidade + +| Módulo | Complexidade | Prioridade | +|--------|--------------|------------| +| Setup Inicial | Baixa | Alta | +| Autenticação | Média | Alta | +| Navegação | Média | Alta | +| Catálogo de Filmes | Média | Alta | +| Catálogo de Séries | Média | Alta | +| Detalhes de Mídia | Alta | Alta | +| Sistema de Reviews | Alta | Alta | +| Listas | Alta | Média | +| Perfil | Média | Alta | +| Coleção | Média | Média | +| Estatísticas | Alta | Baixa | +| Sistema Social | Média | Média | +| Busca | Baixa | Alta | +| Configurações | Baixa | Baixa | +| i18n | Média | Média | +| Premium | Média | Baixa | +| Importação | Alta | Baixa | + +--- + +## 🚀 Sugestão de Sprints + +### Sprint 1 - MVP Base (2-3 semanas) +- Setup inicial +- Autenticação (login/cadastro) +- Navegação básica +- Catálogo de filmes (popular, detalhes) +- Busca simples + +### Sprint 2 - Core Features (2-3 semanas) +- Catálogo de séries +- Sistema de status (watchlist, watched, etc) +- Perfil básico +- Coleção do usuário + +### Sprint 3 - Social Features (2 semanas) +- Sistema de reviews completo +- Likes +- Follow/Unfollow +- Feed de atividades + +### Sprint 4 - Listas e Polish (2 semanas) +- Listas personalizadas +- Detalhes de temporadas/episódios +- Internacionalização +- Performance e polish + +### Sprint 5 - Extras (1-2 semanas) +- Estatísticas +- Configurações avançadas +- Funcionalidades PRO +- Importação de dados + +--- + +## 📚 Referências + +- **API Backend**: `apps/api/` - Mesma API usada pelo web +- **Schemas Gerados**: `apps/web/src/api/endpoints.schemas.ts` +- **Dicionários i18n**: `apps/web/public/dictionaries/` +- **Componentes Web**: `apps/web/src/components/` (referência de UI) +- **Serviços TMDB**: `apps/web/src/services/tmdb.ts` + +--- + +*Documento gerado em: Janeiro 2026* +*Versão do projeto web: 0.1.0* diff --git a/apps/mobile/.env.example b/apps/mobile/.env.example new file mode 100644 index 00000000..46db151d --- /dev/null +++ b/apps/mobile/.env.example @@ -0,0 +1,5 @@ +# API Configuration +EXPO_PUBLIC_API_URL=http://localhost:3333 + +# TMDB Configuration +EXPO_PUBLIC_TMDB_API_KEY=your_tmdb_api_key_here diff --git a/apps/mobile/.gitignore b/apps/mobile/.gitignore new file mode 100644 index 00000000..d914c328 --- /dev/null +++ b/apps/mobile/.gitignore @@ -0,0 +1,41 @@ +# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files + +# dependencies +node_modules/ + +# Expo +.expo/ +dist/ +web-build/ +expo-env.d.ts + +# Native +.kotlin/ +*.orig.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision + +# Metro +.metro-health-check* + +# debug +npm-debug.* +yarn-debug.* +yarn-error.* + +# macOS +.DS_Store +*.pem + +# local env files +.env*.local + +# typescript +*.tsbuildinfo + +# generated native folders +/ios +/android diff --git a/apps/mobile/.vscode/extensions.json b/apps/mobile/.vscode/extensions.json new file mode 100644 index 00000000..b7ed8377 --- /dev/null +++ b/apps/mobile/.vscode/extensions.json @@ -0,0 +1 @@ +{ "recommendations": ["expo.vscode-expo-tools"] } diff --git a/apps/mobile/.vscode/settings.json b/apps/mobile/.vscode/settings.json new file mode 100644 index 00000000..e2798e42 --- /dev/null +++ b/apps/mobile/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "editor.codeActionsOnSave": { + "source.fixAll": "explicit", + "source.organizeImports": "explicit", + "source.sortMembers": "explicit" + } +} diff --git a/apps/mobile/app.json b/apps/mobile/app.json new file mode 100644 index 00000000..e1151b07 --- /dev/null +++ b/apps/mobile/app.json @@ -0,0 +1,42 @@ +{ + "expo": { + "name": "Plotwist", + "slug": "plotwist", + "version": "1.0.0", + "orientation": "portrait", + "icon": "./assets/images/icon.png", + "scheme": "plotwist", + "userInterfaceStyle": "dark", + "newArchEnabled": true, + "backgroundColor": "#000000", + "splash": { + "image": "./assets/images/splash-icon.png", + "resizeMode": "contain", + "backgroundColor": "#000000" + }, + "ios": { + "supportsTablet": true, + "bundleIdentifier": "app.plotwist.mobile", + "backgroundColor": "#000000" + }, + "android": { + "adaptiveIcon": { + "foregroundImage": "./assets/images/adaptive-icon.png", + "backgroundColor": "#000000" + }, + "package": "app.plotwist.mobile" + }, + "web": { + "bundler": "metro", + "output": "single", + "favicon": "./assets/images/favicon.png" + }, + "plugins": [ + "expo-router", + "expo-font" + ], + "experiments": { + "typedRoutes": true + } + } +} diff --git a/apps/mobile/app/_layout.tsx b/apps/mobile/app/_layout.tsx new file mode 100644 index 00000000..211f3014 --- /dev/null +++ b/apps/mobile/app/_layout.tsx @@ -0,0 +1,97 @@ +import "../global.css"; + +import { Slot } from "expo-router"; +import * as SplashScreen from "expo-splash-screen"; +import { useCallback, useEffect, useState } from "react"; +import { StatusBar } from "expo-status-bar"; +import { View, Text } from "react-native"; +import { SvgXml } from "react-native-svg"; +import Animated, { FadeOut } from "react-native-reanimated"; +import { + useFonts, + SpaceGrotesk_400Regular, + SpaceGrotesk_500Medium, + SpaceGrotesk_600SemiBold, + SpaceGrotesk_700Bold, +} from "@expo-google-fonts/space-grotesk"; + +export { ErrorBoundary } from "expo-router"; + +// Prevent the splash screen from auto-hiding +SplashScreen.preventAutoHideAsync(); + +const logoSvg = ` + + + + + + +`; + +function SplashScreenView() { + return ( + + + + Plotwist + + + ); +} + +export default function RootLayout() { + const [appIsReady, setAppIsReady] = useState(false); + + const [fontsLoaded, fontError] = useFonts({ + SpaceGrotesk_400Regular, + SpaceGrotesk_500Medium, + SpaceGrotesk_600SemiBold, + SpaceGrotesk_700Bold, + }); + + useEffect(() => { + if (fontError) throw fontError; + }, [fontError]); + + useEffect(() => { + async function prepare() { + if (fontsLoaded) { + // Hide native splash and show our custom one + await SplashScreen.hideAsync(); + // Small delay to show our branded splash + await new Promise((resolve) => setTimeout(resolve, 1500)); + setAppIsReady(true); + } + } + prepare(); + }, [fontsLoaded]); + + if (!fontsLoaded || !appIsReady) { + if (!fontsLoaded) return null; + return ; + } + + return ( + <> + + + + ); +} diff --git a/apps/mobile/app/index.tsx b/apps/mobile/app/index.tsx new file mode 100644 index 00000000..aabde3bb --- /dev/null +++ b/apps/mobile/app/index.tsx @@ -0,0 +1,25 @@ +import { View, Text } from "react-native"; +import { SvgXml } from "react-native-svg"; + +const logoSvg = ` + + + + + + +`; + +export default function App() { + return ( + + + + Plotwist + + + ); +} diff --git a/apps/mobile/assets/images/adaptive-icon.png b/apps/mobile/assets/images/adaptive-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4008e38a817f722d20449d1439ee3ec832c5e96a GIT binary patch literal 16479 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 diff --git a/apps/mobile/package-lock.json b/apps/mobile/package-lock.json new file mode 100644 index 00000000..9363f5d8 --- /dev/null +++ b/apps/mobile/package-lock.json @@ -0,0 +1,10188 @@ +{ + "name": "@plotwist/mobile", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@plotwist/mobile", + "version": "1.0.0", + "dependencies": { + "@expo-google-fonts/space-grotesk": "^0.2.3", + "@react-navigation/native": "^7.1.8", + "expo": "~54.0.31", + "expo-font": "~14.0.10", + "expo-linking": "~8.0.11", + "expo-router": "~6.0.21", + "expo-splash-screen": "~31.0.13", + "expo-status-bar": "~3.0.9", + "nativewind": "^4.2.1", + "react": "19.1.0", + "react-dom": "19.1.0", + "react-native": "0.81.5", + "react-native-reanimated": "~4.1.1", + "react-native-safe-area-context": "~5.6.0", + "react-native-screens": "~4.16.0", + "react-native-svg": "^15.15.1", + "react-native-web": "~0.21.0", + "react-native-worklets": "0.5.1", + "tailwindcss": "^3.3.2" + }, + "devDependencies": { + "@types/react": "~19.1.0", + "typescript": "~5.9.2" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.2.0.tgz", + "integrity": "sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==", + "license": "MIT", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "license": "MIT", + "dependencies": { + "@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/helpers": "^7.28.4", + "@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.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", + "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", + "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-decorators": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-default-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz", + "integrity": "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", + "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-default-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.27.1.tgz", + "integrity": "sha512-eBC/3KSekshx19+N40MzjWqJd7KTEdOoLesAfa4IDFI8eRz5a47i5Oszus6zG/cwIXN63YhgLOMSSNJx49sENg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", + "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", + "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-flow": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", + "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", + "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse--for-generate-function-map": { + "name": "@babel/traverse", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@expo-google-fonts/space-grotesk": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@expo-google-fonts/space-grotesk/-/space-grotesk-0.2.3.tgz", + "integrity": "sha512-UYEMIrzegR02pauH7gVMI7j6cUroTtJug6dH/aQFjMNz0UwZe6GUcrEtJDmsUHJjEZdxbYgHhaiIwswWVo0CMA==", + "license": "MIT" + }, + "node_modules/@expo/code-signing-certificates": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.6.tgz", + "integrity": "sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==", + "license": "MIT", + "dependencies": { + "node-forge": "^1.3.3" + } + }, + "node_modules/@expo/config": { + "version": "12.0.13", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-12.0.13.tgz", + "integrity": "sha512-Cu52arBa4vSaupIWsF0h7F/Cg//N374nYb7HAxV0I4KceKA7x2UXpYaHOL7EEYYvp7tZdThBjvGpVmr8ScIvaQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~54.0.4", + "@expo/config-types": "^54.0.10", + "@expo/json-file": "^10.0.8", + "deepmerge": "^4.3.1", + "getenv": "^2.0.0", + "glob": "^13.0.0", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "resolve-workspace-root": "^2.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "~3.35.1" + } + }, + "node_modules/@expo/config-plugins": { + "version": "54.0.4", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.4.tgz", + "integrity": "sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q==", + "license": "MIT", + "dependencies": { + "@expo/config-types": "^54.0.10", + "@expo/json-file": "~10.0.8", + "@expo/plist": "^0.4.8", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.5", + "getenv": "^2.0.0", + "glob": "^13.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/@expo/config-plugins/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/config-types": { + "version": "54.0.10", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-54.0.10.tgz", + "integrity": "sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA==", + "license": "MIT" + }, + "node_modules/@expo/config/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@expo/config/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/devcert": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.2.1.tgz", + "integrity": "sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==", + "license": "MIT", + "dependencies": { + "@expo/sudo-prompt": "^9.3.1", + "debug": "^3.1.0" + } + }, + "node_modules/@expo/devcert/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@expo/devtools": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@expo/devtools/-/devtools-0.1.8.tgz", + "integrity": "sha512-SVLxbuanDjJPgc0sy3EfXUMLb/tXzp6XIHkhtPVmTWJAp+FOr6+5SeiCfJrCzZFet0Ifyke2vX3sFcKwEvCXwQ==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/@expo/env": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-2.0.8.tgz", + "integrity": "sha512-5VQD6GT8HIMRaSaB5JFtOXuvfDVU80YtZIuUT/GDhUF782usIXY13Tn3IdDz1Tm/lqA9qnRZQ1BF4t7LlvdJPA==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "debug": "^4.3.4", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^2.0.0" + } + }, + "node_modules/@expo/fingerprint": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.15.4.tgz", + "integrity": "sha512-eYlxcrGdR2/j2M6pEDXo9zU9KXXF1vhP+V+Tl+lyY+bU8lnzrN6c637mz6Ye3em2ANy8hhUR03Raf8VsT9Ogng==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "arg": "^5.0.2", + "chalk": "^4.1.2", + "debug": "^4.3.4", + "getenv": "^2.0.0", + "glob": "^13.0.0", + "ignore": "^5.3.1", + "minimatch": "^9.0.0", + "p-limit": "^3.1.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0" + }, + "bin": { + "fingerprint": "bin/cli.js" + } + }, + "node_modules/@expo/fingerprint/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/image-utils": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.8.8.tgz", + "integrity": "sha512-HHHaG4J4nKjTtVa1GG9PCh763xlETScfEyNxxOvfTRr8IKPJckjTyqSLEtdJoFNJ1vqiABEjW7tqGhqGibZLeA==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.0.0", + "getenv": "^2.0.0", + "jimp-compact": "0.16.1", + "parse-png": "^2.1.0", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0", + "semver": "^7.6.0", + "temp-dir": "~2.0.0", + "unique-string": "~2.0.0" + } + }, + "node_modules/@expo/image-utils/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/json-file": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-10.0.8.tgz", + "integrity": "sha512-9LOTh1PgKizD1VXfGQ88LtDH0lRwq9lsTb4aichWTWSWqy3Ugfkhfm3BhzBIkJJfQQ5iJu3m/BoRlEIjoCGcnQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.3" + } + }, + "node_modules/@expo/json-file/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@expo/metro": { + "version": "54.2.0", + "resolved": "https://registry.npmjs.org/@expo/metro/-/metro-54.2.0.tgz", + "integrity": "sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==", + "license": "MIT", + "dependencies": { + "metro": "0.83.3", + "metro-babel-transformer": "0.83.3", + "metro-cache": "0.83.3", + "metro-cache-key": "0.83.3", + "metro-config": "0.83.3", + "metro-core": "0.83.3", + "metro-file-map": "0.83.3", + "metro-minify-terser": "0.83.3", + "metro-resolver": "0.83.3", + "metro-runtime": "0.83.3", + "metro-source-map": "0.83.3", + "metro-symbolicate": "0.83.3", + "metro-transform-plugins": "0.83.3", + "metro-transform-worker": "0.83.3" + } + }, + "node_modules/@expo/metro-config": { + "version": "54.0.13", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-54.0.13.tgz", + "integrity": "sha512-RRufMCgLR2Za1WGsh02OatIJo5qZFt31yCnIOSfoubNc3Qqe92Z41pVsbrFnmw5CIaisv1NgdBy05DHe7pEyuw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.20.0", + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.5", + "@expo/config": "~12.0.13", + "@expo/env": "~2.0.8", + "@expo/json-file": "~10.0.8", + "@expo/metro": "~54.2.0", + "@expo/spawn-async": "^1.7.2", + "browserslist": "^4.25.0", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^2.0.0", + "glob": "^13.0.0", + "hermes-parser": "^0.29.1", + "jsc-safe-url": "^0.2.4", + "lightningcss": "^1.30.1", + "minimatch": "^9.0.0", + "postcss": "~8.4.32", + "resolve-from": "^5.0.0" + }, + "peerDependencies": { + "expo": "*" + }, + "peerDependenciesMeta": { + "expo": { + "optional": true + } + } + }, + "node_modules/@expo/metro-runtime": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-6.1.2.tgz", + "integrity": "sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g==", + "license": "MIT", + "dependencies": { + "anser": "^1.4.9", + "pretty-format": "^29.7.0", + "stacktrace-parser": "^0.1.10", + "whatwg-fetch": "^3.0.0" + }, + "peerDependencies": { + "expo": "*", + "react": "*", + "react-dom": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/@expo/osascript": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.3.8.tgz", + "integrity": "sha512-/TuOZvSG7Nn0I8c+FcEaoHeBO07yu6vwDgk7rZVvAXoeAK5rkA09jRyjYsZo+0tMEFaToBeywA6pj50Mb3ny9w==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "exec-async": "^2.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/package-manager": { + "version": "1.9.9", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.9.9.tgz", + "integrity": "sha512-Nv5THOwXzPprMJwbnXU01iXSrCp3vJqly9M4EJ2GkKko9Ifer2ucpg7x6OUsE09/lw+npaoUnHMXwkw7gcKxlg==", + "license": "MIT", + "dependencies": { + "@expo/json-file": "^10.0.8", + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.0.0", + "npm-package-arg": "^11.0.0", + "ora": "^3.4.0", + "resolve-workspace-root": "^2.0.0" + } + }, + "node_modules/@expo/plist": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.4.8.tgz", + "integrity": "sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==", + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.2.3", + "xmlbuilder": "^15.1.1" + } + }, + "node_modules/@expo/prebuild-config": { + "version": "54.0.8", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-54.0.8.tgz", + "integrity": "sha512-EA7N4dloty2t5Rde+HP0IEE+nkAQiu4A/+QGZGT9mFnZ5KKjPPkqSyYcRvP5bhQE10D+tvz6X0ngZpulbMdbsg==", + "license": "MIT", + "dependencies": { + "@expo/config": "~12.0.13", + "@expo/config-plugins": "~54.0.4", + "@expo/config-types": "^54.0.10", + "@expo/image-utils": "^0.8.8", + "@expo/json-file": "^10.0.8", + "@react-native/normalize-colors": "0.81.5", + "debug": "^4.3.1", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "xml2js": "0.6.0" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/@expo/prebuild-config/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/schema-utils": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@expo/schema-utils/-/schema-utils-0.1.8.tgz", + "integrity": "sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A==", + "license": "MIT" + }, + "node_modules/@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", + "license": "MIT" + }, + "node_modules/@expo/spawn-async": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz", + "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/sudo-prompt": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@expo/sudo-prompt/-/sudo-prompt-9.3.2.tgz", + "integrity": "sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==", + "license": "MIT" + }, + "node_modules/@expo/vector-icons": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-15.0.3.tgz", + "integrity": "sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA==", + "license": "MIT", + "peerDependencies": { + "expo-font": ">=14.0.4", + "react": "*", + "react-native": "*" + } + }, + "node_modules/@expo/ws-tunnel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@expo/ws-tunnel/-/ws-tunnel-1.0.6.tgz", + "integrity": "sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==", + "license": "MIT" + }, + "node_modules/@expo/xcpretty": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.2.tgz", + "integrity": "sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/code-frame": "7.10.4", + "chalk": "^4.1.0", + "find-up": "^5.0.0", + "js-yaml": "^4.1.0" + }, + "bin": { + "excpretty": "build/cli.js" + } + }, + "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@expo/xcpretty/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/@expo/xcpretty/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/xcpretty/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@expo/xcpretty/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@expo/xcpretty/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@isaacs/ttlcache": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", + "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/create-cache-key-function": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", + "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.0.tgz", + "integrity": "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@react-native/assets-registry": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.81.5.tgz", + "integrity": "sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w==", + "license": "MIT", + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/babel-plugin-codegen": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.81.5.tgz", + "integrity": "sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.3", + "@react-native/codegen": "0.81.5" + }, + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/babel-preset": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.81.5.tgz", + "integrity": "sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-proposal-export-default-from": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-default-from": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-runtime": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.25.2", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/template": "^7.25.0", + "@react-native/babel-plugin-codegen": "0.81.5", + "babel-plugin-syntax-hermes-parser": "0.29.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/codegen": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.81.5.tgz", + "integrity": "sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/parser": "^7.25.3", + "glob": "^7.1.1", + "hermes-parser": "0.29.1", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "yargs": "^17.6.2" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/codegen/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@react-native/codegen/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native/codegen/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@react-native/community-cli-plugin": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.81.5.tgz", + "integrity": "sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw==", + "license": "MIT", + "dependencies": { + "@react-native/dev-middleware": "0.81.5", + "debug": "^4.4.0", + "invariant": "^2.2.4", + "metro": "^0.83.1", + "metro-config": "^0.83.1", + "metro-core": "^0.83.1", + "semver": "^7.1.3" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@react-native-community/cli": "*", + "@react-native/metro-config": "*" + }, + "peerDependenciesMeta": { + "@react-native-community/cli": { + "optional": true + }, + "@react-native/metro-config": { + "optional": true + } + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@react-native/debugger-frontend": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.81.5.tgz", + "integrity": "sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/dev-middleware": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.81.5.tgz", + "integrity": "sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==", + "license": "MIT", + "dependencies": { + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.81.5", + "chrome-launcher": "^0.15.2", + "chromium-edge-launcher": "^0.2.0", + "connect": "^3.6.5", + "debug": "^4.4.0", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "serve-static": "^1.16.2", + "ws": "^6.2.3" + }, + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@react-native/gradle-plugin": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.81.5.tgz", + "integrity": "sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg==", + "license": "MIT", + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/js-polyfills": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.81.5.tgz", + "integrity": "sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w==", + "license": "MIT", + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/normalize-colors": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.81.5.tgz", + "integrity": "sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==", + "license": "MIT" + }, + "node_modules/@react-navigation/bottom-tabs": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.9.0.tgz", + "integrity": "sha512-024FWdHp3ZsE5rP8tmGI4vh+1z3wg8u8E9Frep8eeGoYo1h9rQhvgofQDGxknmrKsb7t8o8Dim+IZSvl57cPFQ==", + "license": "MIT", + "dependencies": { + "@react-navigation/elements": "^2.9.3", + "color": "^4.2.3", + "sf-symbols-typescript": "^2.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^7.1.26", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" + } + }, + "node_modules/@react-navigation/core": { + "version": "7.13.7", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.13.7.tgz", + "integrity": "sha512-k2ABo3250vq1ovOh/iVwXS6Hwr5PVRGXoPh/ewVFOOuEKTvOx9i//OBzt8EF+HokBxS2HBRlR2b+aCOmscRqBw==", + "license": "MIT", + "dependencies": { + "@react-navigation/routers": "^7.5.3", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.3.11", + "query-string": "^7.1.3", + "react-is": "^19.1.0", + "use-latest-callback": "^0.2.4", + "use-sync-external-store": "^1.5.0" + }, + "peerDependencies": { + "react": ">= 18.2.0" + } + }, + "node_modules/@react-navigation/elements": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.3.tgz", + "integrity": "sha512-3+eyvWiVPIEf6tN9UdduhOEHcTuNe3R5WovgiVkfH9+jApHMTZDc2loePTpY/i2HDJhObhhChpJzO6BVjrpdYQ==", + "license": "MIT", + "dependencies": { + "color": "^4.2.3", + "use-latest-callback": "^0.2.4", + "use-sync-external-store": "^1.5.0" + }, + "peerDependencies": { + "@react-native-masked-view/masked-view": ">= 0.2.0", + "@react-navigation/native": "^7.1.26", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0" + }, + "peerDependenciesMeta": { + "@react-native-masked-view/masked-view": { + "optional": true + } + } + }, + "node_modules/@react-navigation/native": { + "version": "7.1.26", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.26.tgz", + "integrity": "sha512-RhKmeD0E2ejzKS6z8elAfdfwShpcdkYY8zJzvHYLq+wv183BBcElTeyMLcIX6wIn7QutXeI92Yi21t7aUWfqNQ==", + "license": "MIT", + "dependencies": { + "@react-navigation/core": "^7.13.7", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.3.11", + "use-latest-callback": "^0.2.4" + }, + "peerDependencies": { + "react": ">= 18.2.0", + "react-native": "*" + } + }, + "node_modules/@react-navigation/native-stack": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.9.0.tgz", + "integrity": "sha512-C/mNPhI0Pnerl7C2cB+6fAkdgSmfKECMERrbyfjx3P6JmEuTC54o+GV1c62FUmlRaRUassVHbtw4EeaY2uLh0g==", + "license": "MIT", + "dependencies": { + "@react-navigation/elements": "^2.9.3", + "color": "^4.2.3", + "sf-symbols-typescript": "^2.1.0", + "warn-once": "^0.1.1" + }, + "peerDependencies": { + "@react-navigation/native": "^7.1.26", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" + } + }, + "node_modules/@react-navigation/routers": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.5.3.tgz", + "integrity": "sha512-1tJHg4KKRJuQ1/EvJxatrMef3NZXEPzwUIUZ3n1yJ2t7Q97siwRtbynRpQG9/69ebbtiZ8W3ScOZF/OmhvM4Rg==", + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "25.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", + "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/react": { + "version": "19.1.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.17.tgz", + "integrity": "sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@urql/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-5.2.0.tgz", + "integrity": "sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==", + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.13", + "wonka": "^6.3.2" + } + }, + "node_modules/@urql/exchange-retry": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-1.3.2.tgz", + "integrity": "sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg==", + "license": "MIT", + "dependencies": { + "@urql/core": "^5.1.2", + "wonka": "^6.3.2" + }, + "peerDependencies": { + "@urql/core": "^5.0.0" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", + "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/anser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", + "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", + "license": "MIT" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "license": "MIT" + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "license": "MIT" + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-react-compiler": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz", + "integrity": "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + } + }, + "node_modules/babel-plugin-react-native-web": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.21.2.tgz", + "integrity": "sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==", + "license": "MIT" + }, + "node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.29.1.tgz", + "integrity": "sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==", + "license": "MIT", + "dependencies": { + "hermes-parser": "0.29.1" + } + }, + "node_modules/babel-plugin-transform-flow-enums": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", + "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-flow": "^7.12.1" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-expo": { + "version": "54.0.9", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-54.0.9.tgz", + "integrity": "sha512-8J6hRdgEC2eJobjoft6mKJ294cLxmi3khCUy2JJQp4htOYYkllSLUq6vudWJkTJiIuGdVR4bR6xuz2EvJLWHNg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/plugin-proposal-decorators": "^7.12.9", + "@babel/plugin-proposal-export-default-from": "^7.24.7", + "@babel/plugin-syntax-export-default-from": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-runtime": "^7.24.7", + "@babel/preset-react": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@react-native/babel-preset": "0.81.5", + "babel-plugin-react-compiler": "^1.0.0", + "babel-plugin-react-native-web": "~0.21.0", + "babel-plugin-syntax-hermes-parser": "^0.29.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "debug": "^4.3.4", + "resolve-from": "^5.0.0" + }, + "peerDependencies": { + "@babel/runtime": "^7.20.0", + "expo": "*", + "react-refresh": ">=0.14.0 <1.0.0" + }, + "peerDependenciesMeta": { + "@babel/runtime": { + "optional": true + }, + "expo": { + "optional": true + } + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.13", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.13.tgz", + "integrity": "sha512-WhtvB2NG2wjr04+h77sg3klAIwrgOqnjS49GGudnUPGFFgg7G17y7Qecqp+2Dr5kUDxNRBca0SK7cG8JwzkWDQ==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "license": "MIT", + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/better-opn/node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/bplist-creator": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", + "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", + "license": "MIT", + "dependencies": { + "stream-buffers": "2.2.x" + } + }, + "node_modules/bplist-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", + "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", + "license": "MIT", + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001763", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001763.tgz", + "integrity": "sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/chrome-launcher": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "license": "Apache-2.0", + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chromium-edge-launcher": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", + "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", + "license": "Apache-2.0", + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "license": "MIT" + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/comment-json": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.5.1.tgz", + "integrity": "sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==", + "license": "MIT", + "dependencies": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/core-js-compat": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", + "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-in-js-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz", + "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==", + "license": "MIT", + "dependencies": { + "hyphenate-style-name": "^1.0.3" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-editor": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", + "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/exec-async": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", + "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==", + "license": "MIT" + }, + "node_modules/expo": { + "version": "54.0.31", + "resolved": "https://registry.npmjs.org/expo/-/expo-54.0.31.tgz", + "integrity": "sha512-kQ3RDqA/a59I7y+oqQGyrPbbYlgPMUdKBOgvFLpoHbD2bCM+F75i4N0mUijy7dG5F/CUCu2qHmGGUCXBbMDkCg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "@expo/cli": "54.0.21", + "@expo/config": "~12.0.13", + "@expo/config-plugins": "~54.0.4", + "@expo/devtools": "0.1.8", + "@expo/fingerprint": "0.15.4", + "@expo/metro": "~54.2.0", + "@expo/metro-config": "54.0.13", + "@expo/vector-icons": "^15.0.3", + "@ungap/structured-clone": "^1.3.0", + "babel-preset-expo": "~54.0.9", + "expo-asset": "~12.0.12", + "expo-constants": "~18.0.13", + "expo-file-system": "~19.0.21", + "expo-font": "~14.0.10", + "expo-keep-awake": "~15.0.8", + "expo-modules-autolinking": "3.0.24", + "expo-modules-core": "3.0.29", + "pretty-format": "^29.7.0", + "react-refresh": "^0.14.2", + "whatwg-url-without-unicode": "8.0.0-3" + }, + "bin": { + "expo": "bin/cli", + "expo-modules-autolinking": "bin/autolinking", + "fingerprint": "bin/fingerprint" + }, + "peerDependencies": { + "@expo/dom-webview": "*", + "@expo/metro-runtime": "*", + "react": "*", + "react-native": "*", + "react-native-webview": "*" + }, + "peerDependenciesMeta": { + "@expo/dom-webview": { + "optional": true + }, + "@expo/metro-runtime": { + "optional": true + }, + "react-native-webview": { + "optional": true + } + } + }, + "node_modules/expo-asset": { + "version": "12.0.12", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-12.0.12.tgz", + "integrity": "sha512-CsXFCQbx2fElSMn0lyTdRIyKlSXOal6ilLJd+yeZ6xaC7I9AICQgscY5nj0QcwgA+KYYCCEQEBndMsmj7drOWQ==", + "license": "MIT", + "dependencies": { + "@expo/image-utils": "^0.8.8", + "expo-constants": "~18.0.12" + }, + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" + } + }, + "node_modules/expo-constants": { + "version": "18.0.13", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-18.0.13.tgz", + "integrity": "sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ==", + "license": "MIT", + "dependencies": { + "@expo/config": "~12.0.13", + "@expo/env": "~2.0.8" + }, + "peerDependencies": { + "expo": "*", + "react-native": "*" + } + }, + "node_modules/expo-file-system": { + "version": "19.0.21", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-19.0.21.tgz", + "integrity": "sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg==", + "license": "MIT", + "peerDependencies": { + "expo": "*", + "react-native": "*" + } + }, + "node_modules/expo-font": { + "version": "14.0.10", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-14.0.10.tgz", + "integrity": "sha512-UqyNaaLKRpj4pKAP4HZSLnuDQqueaO5tB1c/NWu5vh1/LF9ulItyyg2kF/IpeOp0DeOLk0GY0HrIXaKUMrwB+Q==", + "license": "MIT", + "dependencies": { + "fontfaceobserver": "^2.1.0" + }, + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" + } + }, + "node_modules/expo-keep-awake": { + "version": "15.0.8", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-15.0.8.tgz", + "integrity": "sha512-YK9M1VrnoH1vLJiQzChZgzDvVimVoriibiDIFLbQMpjYBnvyfUeHJcin/Gx1a+XgupNXy92EQJLgI/9ZuXajYQ==", + "license": "MIT", + "peerDependencies": { + "expo": "*", + "react": "*" + } + }, + "node_modules/expo-linking": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-8.0.11.tgz", + "integrity": "sha512-+VSaNL5om3kOp/SSKO5qe6cFgfSIWnnQDSbA7XLs3ECkYzXRquk5unxNS3pg7eK5kNUmQ4kgLI7MhTggAEUBLA==", + "license": "MIT", + "dependencies": { + "expo-constants": "~18.0.12", + "invariant": "^2.2.4" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/expo-modules-autolinking": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-3.0.24.tgz", + "integrity": "sha512-TP+6HTwhL7orDvsz2VzauyQlXJcAWyU3ANsZ7JGL4DQu8XaZv/A41ZchbtAYLfozNA2Ya1Hzmhx65hXryBMjaQ==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "expo-modules-autolinking": "bin/expo-modules-autolinking.js" + } + }, + "node_modules/expo-modules-core": { + "version": "3.0.29", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-3.0.29.tgz", + "integrity": "sha512-LzipcjGqk8gvkrOUf7O2mejNWugPkf3lmd9GkqL9WuNyeN2fRwU0Dn77e3ZUKI3k6sI+DNwjkq4Nu9fNN9WS7Q==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/expo-router": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-6.0.21.tgz", + "integrity": "sha512-wjTUjrnWj6gRYjaYl1kYfcRnNE4ZAQ0kz0+sQf6/mzBd/OU6pnOdD7WrdAW3pTTpm52Q8sMoeX98tNQEddg2uA==", + "license": "MIT", + "dependencies": { + "@expo/metro-runtime": "^6.1.2", + "@expo/schema-utils": "^0.1.8", + "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-tabs": "^1.1.12", + "@react-navigation/bottom-tabs": "^7.4.0", + "@react-navigation/native": "^7.1.8", + "@react-navigation/native-stack": "^7.3.16", + "client-only": "^0.0.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "expo-server": "^1.0.5", + "fast-deep-equal": "^3.1.3", + "invariant": "^2.2.4", + "nanoid": "^3.3.8", + "query-string": "^7.1.3", + "react-fast-compare": "^3.2.2", + "react-native-is-edge-to-edge": "^1.1.6", + "semver": "~7.6.3", + "server-only": "^0.0.1", + "sf-symbols-typescript": "^2.1.0", + "shallowequal": "^1.1.0", + "use-latest-callback": "^0.2.1", + "vaul": "^1.1.2" + }, + "peerDependencies": { + "@expo/metro-runtime": "^6.1.2", + "@react-navigation/drawer": "^7.5.0", + "@testing-library/react-native": ">= 12.0.0", + "expo": "*", + "expo-constants": "^18.0.12", + "expo-linking": "^8.0.11", + "react": "*", + "react-dom": "*", + "react-native": "*", + "react-native-gesture-handler": "*", + "react-native-reanimated": "*", + "react-native-safe-area-context": ">= 5.4.0", + "react-native-screens": "*", + "react-native-web": "*", + "react-server-dom-webpack": "~19.0.3 || ~19.1.4 || ~19.2.3" + }, + "peerDependenciesMeta": { + "@react-navigation/drawer": { + "optional": true + }, + "@testing-library/react-native": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native-gesture-handler": { + "optional": true + }, + "react-native-reanimated": { + "optional": true + }, + "react-native-web": { + "optional": true + }, + "react-server-dom-webpack": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/@radix-ui/react-tabs": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/expo-router/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/expo-server": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/expo-server/-/expo-server-1.0.5.tgz", + "integrity": "sha512-IGR++flYH70rhLyeXF0Phle56/k4cee87WeQ4mamS+MkVAVP+dDlOHf2nN06Z9Y2KhU0Gp1k+y61KkghF7HdhA==", + "license": "MIT", + "engines": { + "node": ">=20.16.0" + } + }, + "node_modules/expo-splash-screen": { + "version": "31.0.13", + "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-31.0.13.tgz", + "integrity": "sha512-1epJLC1cDlwwj089R2h8cxaU5uk4ONVAC+vzGiTZH4YARQhL4Stlz1MbR6yAS173GMosvkE6CAeihR7oIbCkDA==", + "license": "MIT", + "dependencies": { + "@expo/prebuild-config": "^54.0.8" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-status-bar": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-3.0.9.tgz", + "integrity": "sha512-xyYyVg6V1/SSOZWh4Ni3U129XHCnFHBTcUo0dhWtFDrZbNp/duw5AGsQfb2sVeU0gxWHXSY1+5F0jnKYC7WuOw==", + "license": "MIT", + "dependencies": { + "react-native-is-edge-to-edge": "^1.2.1" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/expo/node_modules/@expo/cli": { + "version": "54.0.21", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-54.0.21.tgz", + "integrity": "sha512-L/FdpyZDsg/Nq6xW6kfiyF9DUzKfLZCKFXEVZcDqCNar6bXxQVotQyvgexRvtUF5nLinuT/UafLOdC3FUALUmA==", + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.8", + "@expo/code-signing-certificates": "^0.0.6", + "@expo/config": "~12.0.13", + "@expo/config-plugins": "~54.0.4", + "@expo/devcert": "^1.2.1", + "@expo/env": "~2.0.8", + "@expo/image-utils": "^0.8.8", + "@expo/json-file": "^10.0.8", + "@expo/metro": "~54.2.0", + "@expo/metro-config": "~54.0.13", + "@expo/osascript": "^2.3.8", + "@expo/package-manager": "^1.9.9", + "@expo/plist": "^0.4.8", + "@expo/prebuild-config": "^54.0.8", + "@expo/schema-utils": "^0.1.8", + "@expo/spawn-async": "^1.7.2", + "@expo/ws-tunnel": "^1.0.1", + "@expo/xcpretty": "^4.3.0", + "@react-native/dev-middleware": "0.81.5", + "@urql/core": "^5.0.6", + "@urql/exchange-retry": "^1.3.0", + "accepts": "^1.3.8", + "arg": "^5.0.2", + "better-opn": "~3.0.2", + "bplist-creator": "0.1.0", + "bplist-parser": "^0.3.1", + "chalk": "^4.0.0", + "ci-info": "^3.3.0", + "compression": "^1.7.4", + "connect": "^3.7.0", + "debug": "^4.3.4", + "env-editor": "^0.4.1", + "expo-server": "^1.0.5", + "freeport-async": "^2.0.0", + "getenv": "^2.0.0", + "glob": "^13.0.0", + "lan-network": "^0.1.6", + "minimatch": "^9.0.0", + "node-forge": "^1.3.3", + "npm-package-arg": "^11.0.0", + "ora": "^3.4.0", + "picomatch": "^3.0.1", + "pretty-bytes": "^5.6.0", + "pretty-format": "^29.7.0", + "progress": "^2.0.3", + "prompts": "^2.3.2", + "qrcode-terminal": "0.11.0", + "require-from-string": "^2.0.2", + "requireg": "^0.2.2", + "resolve": "^1.22.2", + "resolve-from": "^5.0.0", + "resolve.exports": "^2.0.3", + "semver": "^7.6.0", + "send": "^0.19.0", + "slugify": "^1.3.4", + "source-map-support": "~0.5.21", + "stacktrace-parser": "^0.1.10", + "structured-headers": "^0.4.1", + "tar": "^7.5.2", + "terminal-link": "^2.1.1", + "undici": "^6.18.2", + "wrap-ansi": "^7.0.0", + "ws": "^8.12.1" + }, + "bin": { + "expo-internal": "build/bin/cli" + }, + "peerDependencies": { + "expo": "*", + "expo-router": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "expo-router": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/expo/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/expo/node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/expo/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/expo/node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", + "license": "Apache-2.0" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbjs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^1.0.35" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "license": "MIT" + }, + "node_modules/fbjs/node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flow-enums-runtime": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", + "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==", + "license": "MIT" + }, + "node_modules/fontfaceobserver": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", + "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==", + "license": "BSD-2-Clause" + }, + "node_modules/freeport-async": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", + "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/getenv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-2.0.0.tgz", + "integrity": "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hermes-estree": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz", + "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==", + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz", + "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==", + "license": "MIT", + "dependencies": { + "hermes-estree": "0.29.1" + } + }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/hyphenate-style-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", + "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==", + "license": "BSD-3-Clause" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", + "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/inline-style-prefixer": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-7.0.1.tgz", + "integrity": "sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw==", + "license": "MIT", + "dependencies": { + "css-in-js-utils": "^3.1.0" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jimp-compact": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", + "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==", + "license": "MIT" + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsc-safe-url": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", + "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==", + "license": "0BSD" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lan-network": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/lan-network/-/lan-network-0.1.7.tgz", + "integrity": "sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==", + "license": "MIT", + "bin": { + "lan-network": "dist/lan-network-cli.js" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lighthouse-logger": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "license": "Apache-2.0", + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/lightningcss": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.30.2", + "lightningcss-darwin-arm64": "1.30.2", + "lightningcss-darwin-x64": "1.30.2", + "lightningcss-freebsd-x64": "1.30.2", + "lightningcss-linux-arm-gnueabihf": "1.30.2", + "lightningcss-linux-arm64-gnu": "1.30.2", + "lightningcss-linux-arm64-musl": "1.30.2", + "lightningcss-linux-x64-gnu": "1.30.2", + "lightningcss-linux-x64-musl": "1.30.2", + "lightningcss-win32-arm64-msvc": "1.30.2", + "lightningcss-win32-x64-msvc": "1.30.2" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", + "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", + "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", + "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", + "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", + "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", + "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", + "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", + "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", + "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", + "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/log-symbols/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/marky": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", + "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", + "license": "Apache-2.0" + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/metro": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.3.tgz", + "integrity": "sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "@babel/types": "^7.25.2", + "accepts": "^1.3.7", + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "connect": "^3.6.5", + "debug": "^4.4.0", + "error-stack-parser": "^2.0.6", + "flow-enums-runtime": "^0.0.6", + "graceful-fs": "^4.2.4", + "hermes-parser": "0.32.0", + "image-size": "^1.0.2", + "invariant": "^2.2.4", + "jest-worker": "^29.7.0", + "jsc-safe-url": "^0.2.2", + "lodash.throttle": "^4.1.1", + "metro-babel-transformer": "0.83.3", + "metro-cache": "0.83.3", + "metro-cache-key": "0.83.3", + "metro-config": "0.83.3", + "metro-core": "0.83.3", + "metro-file-map": "0.83.3", + "metro-resolver": "0.83.3", + "metro-runtime": "0.83.3", + "metro-source-map": "0.83.3", + "metro-symbolicate": "0.83.3", + "metro-transform-plugins": "0.83.3", + "metro-transform-worker": "0.83.3", + "mime-types": "^2.1.27", + "nullthrows": "^1.1.1", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "throat": "^5.0.0", + "ws": "^7.5.10", + "yargs": "^17.6.2" + }, + "bin": { + "metro": "src/cli.js" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-babel-transformer": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.3.tgz", + "integrity": "sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "hermes-parser": "0.32.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-babel-transformer/node_modules/hermes-estree": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz", + "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==", + "license": "MIT" + }, + "node_modules/metro-babel-transformer/node_modules/hermes-parser": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz", + "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==", + "license": "MIT", + "dependencies": { + "hermes-estree": "0.32.0" + } + }, + "node_modules/metro-cache": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.3.tgz", + "integrity": "sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==", + "license": "MIT", + "dependencies": { + "exponential-backoff": "^3.1.1", + "flow-enums-runtime": "^0.0.6", + "https-proxy-agent": "^7.0.5", + "metro-core": "0.83.3" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-cache-key": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.3.tgz", + "integrity": "sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-config": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.3.tgz", + "integrity": "sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==", + "license": "MIT", + "dependencies": { + "connect": "^3.6.5", + "flow-enums-runtime": "^0.0.6", + "jest-validate": "^29.7.0", + "metro": "0.83.3", + "metro-cache": "0.83.3", + "metro-core": "0.83.3", + "metro-runtime": "0.83.3", + "yaml": "^2.6.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-core": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.3.tgz", + "integrity": "sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.83.3" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-file-map": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.3.tgz", + "integrity": "sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "fb-watchman": "^2.0.0", + "flow-enums-runtime": "^0.0.6", + "graceful-fs": "^4.2.4", + "invariant": "^2.2.4", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "nullthrows": "^1.1.1", + "walker": "^1.0.7" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-minify-terser": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.3.tgz", + "integrity": "sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "terser": "^5.15.0" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-resolver": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.3.tgz", + "integrity": "sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-runtime": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.3.tgz", + "integrity": "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.0", + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-source-map": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.3.tgz", + "integrity": "sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.3", + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", + "@babel/types": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "metro-symbolicate": "0.83.3", + "nullthrows": "^1.1.1", + "ob1": "0.83.3", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-symbolicate": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.3.tgz", + "integrity": "sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "metro-source-map": "0.83.3", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + }, + "bin": { + "metro-symbolicate": "src/index.js" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-transform-plugins": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.3.tgz", + "integrity": "sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "flow-enums-runtime": "^0.0.6", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-transform-worker": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.3.tgz", + "integrity": "sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/types": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "metro": "0.83.3", + "metro-babel-transformer": "0.83.3", + "metro-cache": "0.83.3", + "metro-cache-key": "0.83.3", + "metro-minify-terser": "0.83.3", + "metro-source-map": "0.83.3", + "metro-transform-plugins": "0.83.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro/node_modules/hermes-estree": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz", + "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==", + "license": "MIT" + }, + "node_modules/metro/node_modules/hermes-parser": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz", + "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==", + "license": "MIT", + "dependencies": { + "hermes-estree": "0.32.0" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nativewind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/nativewind/-/nativewind-4.2.1.tgz", + "integrity": "sha512-10uUB2Dlli3MH3NDL5nMHqJHz1A3e/E6mzjTj6cl7hHECClJ7HpE6v+xZL+GXdbwQSnWE+UWMIMsNz7yOQkAJQ==", + "license": "MIT", + "dependencies": { + "comment-json": "^4.2.5", + "debug": "^4.3.7", + "react-native-css-interop": "0.2.1" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "tailwindcss": ">3.3.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", + "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "license": "MIT" + }, + "node_modules/ob1": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.3.tgz", + "integrity": "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==", + "license": "MIT", + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/ora/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ora/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-png": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", + "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", + "license": "MIT", + "dependencies": { + "pngjs": "^3.3.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode-terminal": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", + "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==", + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-devtools-core": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-6.1.5.tgz", + "integrity": "sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==", + "license": "MIT", + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" + }, + "node_modules/react-freeze": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz", + "integrity": "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=17.0.0" + } + }, + "node_modules/react-is": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.3.tgz", + "integrity": "sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==", + "license": "MIT" + }, + "node_modules/react-native": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.81.5.tgz", + "integrity": "sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw==", + "license": "MIT", + "dependencies": { + "@jest/create-cache-key-function": "^29.7.0", + "@react-native/assets-registry": "0.81.5", + "@react-native/codegen": "0.81.5", + "@react-native/community-cli-plugin": "0.81.5", + "@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", + "abort-controller": "^3.0.0", + "anser": "^1.4.9", + "ansi-regex": "^5.0.0", + "babel-jest": "^29.7.0", + "babel-plugin-syntax-hermes-parser": "0.29.1", + "base64-js": "^1.5.1", + "commander": "^12.0.0", + "flow-enums-runtime": "^0.0.6", + "glob": "^7.1.1", + "invariant": "^2.2.4", + "jest-environment-node": "^29.7.0", + "memoize-one": "^5.0.0", + "metro-runtime": "^0.83.1", + "metro-source-map": "^0.83.1", + "nullthrows": "^1.1.1", + "pretty-format": "^29.7.0", + "promise": "^8.3.0", + "react-devtools-core": "^6.1.5", + "react-refresh": "^0.14.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "0.26.0", + "semver": "^7.1.3", + "stacktrace-parser": "^0.1.10", + "whatwg-fetch": "^3.0.0", + "ws": "^6.2.3", + "yargs": "^17.6.2" + }, + "bin": { + "react-native": "cli.js" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@types/react": "^19.1.0", + "react": "^19.1.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-native-css-interop": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/react-native-css-interop/-/react-native-css-interop-0.2.1.tgz", + "integrity": "sha512-B88f5rIymJXmy1sNC/MhTkb3xxBej1KkuAt7TiT9iM7oXz3RM8Bn+7GUrfR02TvSgKm4cg2XiSuLEKYfKwNsjA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.3.7", + "lightningcss": "~1.27.0", + "semver": "^7.6.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": ">=18", + "react-native": "*", + "react-native-reanimated": ">=3.6.2", + "tailwindcss": "~3" + }, + "peerDependenciesMeta": { + "react-native-safe-area-context": { + "optional": true + }, + "react-native-svg": { + "optional": true + } + } + }, + "node_modules/react-native-css-interop/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.27.0.tgz", + "integrity": "sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.27.0", + "lightningcss-darwin-x64": "1.27.0", + "lightningcss-freebsd-x64": "1.27.0", + "lightningcss-linux-arm-gnueabihf": "1.27.0", + "lightningcss-linux-arm64-gnu": "1.27.0", + "lightningcss-linux-arm64-musl": "1.27.0", + "lightningcss-linux-x64-gnu": "1.27.0", + "lightningcss-linux-x64-musl": "1.27.0", + "lightningcss-win32-arm64-msvc": "1.27.0", + "lightningcss-win32-x64-msvc": "1.27.0" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss-darwin-arm64": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.27.0.tgz", + "integrity": "sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss-darwin-x64": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.27.0.tgz", + "integrity": "sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss-freebsd-x64": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.27.0.tgz", + "integrity": "sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.27.0.tgz", + "integrity": "sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.27.0.tgz", + "integrity": "sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.27.0.tgz", + "integrity": "sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.27.0.tgz", + "integrity": "sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss-linux-x64-musl": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.27.0.tgz", + "integrity": "sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.27.0.tgz", + "integrity": "sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/react-native-css-interop/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.27.0.tgz", + "integrity": "sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/react-native-css-interop/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-native-is-edge-to-edge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.2.1.tgz", + "integrity": "sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==", + "license": "MIT", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-reanimated": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.1.6.tgz", + "integrity": "sha512-F+ZJBYiok/6Jzp1re75F/9aLzkgoQCOh4yxrnwATa8392RvM3kx+fiXXFvwcgE59v48lMwd9q0nzF1oJLXpfxQ==", + "license": "MIT", + "dependencies": { + "react-native-is-edge-to-edge": "^1.2.1", + "semver": "7.7.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0", + "react": "*", + "react-native": "*", + "react-native-worklets": ">=0.5.0" + } + }, + "node_modules/react-native-reanimated/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-native-safe-area-context": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.6.2.tgz", + "integrity": "sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg==", + "license": "MIT", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-screens": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.16.0.tgz", + "integrity": "sha512-yIAyh7F/9uWkOzCi1/2FqvNvK6Wb9Y1+Kzn16SuGfN9YFJDTbwlzGRvePCNTOX0recpLQF3kc2FmvMUhyTCH1Q==", + "license": "MIT", + "dependencies": { + "react-freeze": "^1.0.0", + "react-native-is-edge-to-edge": "^1.2.1", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-svg": { + "version": "15.15.1", + "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.15.1.tgz", + "integrity": "sha512-ZUD1xwc3Hwo4cOmOLumjJVoc7lEf9oQFlHnLmgccLC19fNm6LVEdtB+Cnip6gEi0PG3wfvVzskViEtrySQP8Fw==", + "license": "MIT", + "dependencies": { + "css-select": "^5.1.0", + "css-tree": "^1.1.3", + "warn-once": "0.1.1" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-web": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.21.2.tgz", + "integrity": "sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.6", + "@react-native/normalize-colors": "^0.74.1", + "fbjs": "^3.0.4", + "inline-style-prefixer": "^7.0.1", + "memoize-one": "^6.0.0", + "nullthrows": "^1.1.1", + "postcss-value-parser": "^4.2.0", + "styleq": "^0.1.3" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-native-web/node_modules/@react-native/normalize-colors": { + "version": "0.74.89", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.89.tgz", + "integrity": "sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg==", + "license": "MIT" + }, + "node_modules/react-native-web/node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "node_modules/react-native-worklets": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/react-native-worklets/-/react-native-worklets-0.5.1.tgz", + "integrity": "sha512-lJG6Uk9YuojjEX/tQrCbcbmpdLCSFxDK1rJlkDhgqkVi1KZzG7cdcBFQRqyNOOzR9Y0CXNuldmtWTGOyM0k0+w==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-arrow-functions": "^7.0.0-0", + "@babel/plugin-transform-class-properties": "^7.0.0-0", + "@babel/plugin-transform-classes": "^7.0.0-0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", + "@babel/plugin-transform-optional-chaining": "^7.0.0-0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", + "@babel/plugin-transform-template-literals": "^7.0.0-0", + "@babel/plugin-transform-unicode-regex": "^7.0.0-0", + "@babel/preset-typescript": "^7.16.7", + "convert-source-map": "^2.0.0", + "semver": "7.7.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0", + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-worklets/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-native/node_modules/@react-native/virtualized-lists": { + "version": "0.81.5", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.81.5.tgz", + "integrity": "sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@types/react": "^19.1.0", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-native/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/react-native/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/react-native/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/react-native/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/react-native/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-native/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "dependencies": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/requireg/node_modules/resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "license": "MIT", + "dependencies": { + "path-parse": "^1.0.5" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "license": "MIT", + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-workspace-root": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/resolve-workspace-root/-/resolve-workspace-root-2.0.1.tgz", + "integrity": "sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w==", + "license": "MIT" + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "license": "MIT", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", + "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/server-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", + "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==", + "license": "MIT" + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/sf-symbols-typescript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sf-symbols-typescript/-/sf-symbols-typescript-2.2.0.tgz", + "integrity": "sha512-TPbeg0b7ylrswdGCji8FRGFAKuqbpQlLbL8SOle3j1iHSs5Ob5mhvMAxWN2UItOjgALAB5Zp3fmMfj8mbWvXKw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/simple-plist": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", + "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", + "license": "MIT", + "dependencies": { + "bplist-creator": "0.1.0", + "bplist-parser": "0.3.1", + "plist": "^3.0.5" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT" + }, + "node_modules/stacktrace-parser": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", + "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==", + "license": "Unlicense", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/structured-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", + "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==", + "license": "MIT" + }, + "node_modules/styleq": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/styleq/-/styleq-0.1.3.tgz", + "integrity": "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tar": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz", + "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.41", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.41.tgz", + "integrity": "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/undici": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", + "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest-callback": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.6.tgz", + "integrity": "sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vaul": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vaul/-/vaul-1.1.2.tgz", + "integrity": "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-dialog": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/vaul/node_modules/@radix-ui/react-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/vaul/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/vaul/node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/vaul/node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/vaul/node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/vaul/node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/vaul/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", + "license": "MIT" + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warn-once": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz", + "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==", + "license": "MIT" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/whatwg-url-without-unicode": { + "version": "8.0.0-3", + "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz", + "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==", + "license": "MIT", + "dependencies": { + "buffer": "^5.4.3", + "punycode": "^2.1.1", + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/whatwg-url-without-unicode/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wonka": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.5.tgz", + "integrity": "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "license": "Apache-2.0", + "dependencies": { + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/xml2js": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", + "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/apps/mobile/package.json b/apps/mobile/package.json new file mode 100644 index 00000000..75e024f5 --- /dev/null +++ b/apps/mobile/package.json @@ -0,0 +1,38 @@ +{ + "name": "@plotwist/mobile", + "main": "expo-router/entry", + "version": "1.0.0", + "private": true, + "scripts": { + "start": "expo start", + "dev": "expo start", + "android": "expo start --android", + "ios": "expo start --ios", + "web": "expo start --web" + }, + "dependencies": { + "@expo-google-fonts/space-grotesk": "^0.2.3", + "@react-navigation/native": "^7.1.8", + "expo": "~54.0.31", + "expo-font": "~14.0.10", + "expo-linking": "~8.0.11", + "expo-router": "~6.0.21", + "expo-splash-screen": "~31.0.13", + "expo-status-bar": "~3.0.9", + "nativewind": "^4.2.1", + "react": "19.1.0", + "react-dom": "19.1.0", + "react-native": "0.81.5", + "react-native-reanimated": "~4.1.1", + "react-native-safe-area-context": "~5.6.0", + "react-native-screens": "~4.16.0", + "react-native-svg": "^15.15.1", + "react-native-web": "~0.21.0", + "react-native-worklets": "0.5.1", + "tailwindcss": "^3.3.2" + }, + "devDependencies": { + "@types/react": "~19.1.0", + "typescript": "~5.9.2" + } +} diff --git a/apps/mobile/tailwind.config.js b/apps/mobile/tailwind.config.js new file mode 100644 index 00000000..ec8db0b5 --- /dev/null +++ b/apps/mobile/tailwind.config.js @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ["./app/**/*.{js,jsx,ts,tsx}"], + presets: [require("nativewind/preset")], + theme: { + extend: {}, + }, + plugins: [], +}; diff --git a/apps/mobile/tsconfig.json b/apps/mobile/tsconfig.json new file mode 100644 index 00000000..3ae54f8b --- /dev/null +++ b/apps/mobile/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "expo/tsconfig.base", + "compilerOptions": { + "strict": true, + "paths": { + "@/*": ["./*"], + "@/src/*": ["./src/*"] + } + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ".expo/types/**/*.ts", + "expo-env.d.ts", + "nativewind-env.d.ts" + ] +} From 2efaaa770775466c7b7cc1dcca6df8578315a299 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Fri, 9 Jan 2026 21:41:22 -0300 Subject: [PATCH 02/77] feat(mobile): initialize React Native app structure and configuration --- apps/mobile/app.json | 18 +- apps/mobile/app/_layout.tsx | 77 +- apps/mobile/app/index.tsx | 13 +- apps/mobile/assets/logo.ts | 8 + apps/mobile/babel.config.js | 6 +- apps/mobile/eas.json | 21 + apps/mobile/package.json | 8 +- apps/mobile/tailwind.config.js | 72 +- eas.json | 21 + pnpm-lock.yaml | 4648 +++++++++++++++++++++++++++++++- 10 files changed, 4707 insertions(+), 185 deletions(-) create mode 100644 apps/mobile/assets/logo.ts create mode 100644 apps/mobile/eas.json create mode 100644 eas.json diff --git a/apps/mobile/app.json b/apps/mobile/app.json index e1151b07..d45809f3 100644 --- a/apps/mobile/app.json +++ b/apps/mobile/app.json @@ -10,21 +10,23 @@ "newArchEnabled": true, "backgroundColor": "#000000", "splash": { - "image": "./assets/images/splash-icon.png", - "resizeMode": "contain", "backgroundColor": "#000000" }, "ios": { "supportsTablet": true, "bundleIdentifier": "app.plotwist.mobile", - "backgroundColor": "#000000" + "backgroundColor": "#000000", + "infoPlist": { + "ITSAppUsesNonExemptEncryption": false + }, }, "android": { "adaptiveIcon": { "foregroundImage": "./assets/images/adaptive-icon.png", "backgroundColor": "#000000" }, - "package": "app.plotwist.mobile" + "package": "app.plotwist.mobile", + "backgroundColor": "#000000" }, "web": { "bundler": "metro", @@ -33,7 +35,13 @@ }, "plugins": [ "expo-router", - "expo-font" + "expo-font", + [ + "expo-system-ui", + { + "backgroundColor": "#000000" + } + ] ], "experiments": { "typedRoutes": true diff --git a/apps/mobile/app/_layout.tsx b/apps/mobile/app/_layout.tsx index 211f3014..920aa555 100644 --- a/apps/mobile/app/_layout.tsx +++ b/apps/mobile/app/_layout.tsx @@ -2,11 +2,10 @@ import "../global.css"; import { Slot } from "expo-router"; import * as SplashScreen from "expo-splash-screen"; -import { useCallback, useEffect, useState } from "react"; import { StatusBar } from "expo-status-bar"; -import { View, Text } from "react-native"; -import { SvgXml } from "react-native-svg"; -import Animated, { FadeOut } from "react-native-reanimated"; +import { View } from "react-native"; +import { SafeAreaProvider, SafeAreaView } from "react-native-safe-area-context"; +import { GestureHandlerRootView } from "react-native-gesture-handler"; import { useFonts, SpaceGrotesk_400Regular, @@ -14,84 +13,50 @@ import { SpaceGrotesk_600SemiBold, SpaceGrotesk_700Bold, } from "@expo-google-fonts/space-grotesk"; +import { useEffect, useState } from "react"; export { ErrorBoundary } from "expo-router"; -// Prevent the splash screen from auto-hiding SplashScreen.preventAutoHideAsync(); -const logoSvg = ` - - - - - - -`; - -function SplashScreenView() { - return ( - - - - Plotwist - - - ); -} - export default function RootLayout() { const [appIsReady, setAppIsReady] = useState(false); - const [fontsLoaded, fontError] = useFonts({ + const [fontsLoaded] = useFonts({ SpaceGrotesk_400Regular, SpaceGrotesk_500Medium, SpaceGrotesk_600SemiBold, SpaceGrotesk_700Bold, }); - useEffect(() => { - if (fontError) throw fontError; - }, [fontError]); - useEffect(() => { async function prepare() { if (fontsLoaded) { - // Hide native splash and show our custom one - await SplashScreen.hideAsync(); - // Small delay to show our branded splash - await new Promise((resolve) => setTimeout(resolve, 1500)); + await new Promise((resolve) => setTimeout(resolve, 1000)); setAppIsReady(true); } } prepare(); }, [fontsLoaded]); + useEffect(() => { + if (appIsReady) { + SplashScreen.hideAsync(); + } + }, [appIsReady]); + if (!fontsLoaded || !appIsReady) { - if (!fontsLoaded) return null; - return ; + return ; } return ( - <> - - - + + + + + + + + ); } diff --git a/apps/mobile/app/index.tsx b/apps/mobile/app/index.tsx index aabde3bb..961c6b0d 100644 --- a/apps/mobile/app/index.tsx +++ b/apps/mobile/app/index.tsx @@ -1,22 +1,15 @@ import { View, Text } from "react-native"; import { SvgXml } from "react-native-svg"; -const logoSvg = ` - - - - - - -`; +import { logoSvg } from "../assets/logo"; export default function App() { return ( - + Plotwist diff --git a/apps/mobile/assets/logo.ts b/apps/mobile/assets/logo.ts new file mode 100644 index 00000000..0c8e8aeb --- /dev/null +++ b/apps/mobile/assets/logo.ts @@ -0,0 +1,8 @@ +export const logoSvg = ` + + + + + + +`; diff --git a/apps/mobile/babel.config.js b/apps/mobile/babel.config.js index f3c649bb..2ee68d6d 100644 --- a/apps/mobile/babel.config.js +++ b/apps/mobile/babel.config.js @@ -1,9 +1,13 @@ -module.exports = function (api) { +module.exports = (api) => { api.cache(true); return { presets: [ ["babel-preset-expo", { jsxImportSource: "nativewind" }], "nativewind/babel", ], + plugins: [ + // NOTE: This must be listed last + "react-native-reanimated/plugin", + ], }; }; diff --git a/apps/mobile/eas.json b/apps/mobile/eas.json new file mode 100644 index 00000000..70e502c5 --- /dev/null +++ b/apps/mobile/eas.json @@ -0,0 +1,21 @@ +{ + "cli": { + "version": ">= 16.17.4", + "appVersionSource": "remote" + }, + "build": { + "development": { + "developmentClient": true, + "distribution": "internal" + }, + "preview": { + "distribution": "internal" + }, + "production": { + "autoIncrement": true + } + }, + "submit": { + "production": {} + } +} diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 75e024f5..d7f50a7c 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -14,22 +14,26 @@ "@expo-google-fonts/space-grotesk": "^0.2.3", "@react-navigation/native": "^7.1.8", "expo": "~54.0.31", + "expo-dev-client": "~6.0.20", "expo-font": "~14.0.10", "expo-linking": "~8.0.11", "expo-router": "~6.0.21", "expo-splash-screen": "~31.0.13", "expo-status-bar": "~3.0.9", - "nativewind": "^4.2.1", + "expo-system-ui": "~6.0.9", + "nativewind": "^4.1.23", "react": "19.1.0", "react-dom": "19.1.0", "react-native": "0.81.5", + "react-native-css-interop": "0.1.22", + "react-native-gesture-handler": "~2.28.0", "react-native-reanimated": "~4.1.1", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.16.0", "react-native-svg": "^15.15.1", "react-native-web": "~0.21.0", "react-native-worklets": "0.5.1", - "tailwindcss": "^3.3.2" + "tailwindcss": "^3.4.17" }, "devDependencies": { "@types/react": "~19.1.0", diff --git a/apps/mobile/tailwind.config.js b/apps/mobile/tailwind.config.js index ec8db0b5..75c05c8e 100644 --- a/apps/mobile/tailwind.config.js +++ b/apps/mobile/tailwind.config.js @@ -1,9 +1,75 @@ /** @type {import('tailwindcss').Config} */ +const plugin = require("tailwindcss/plugin"); + module.exports = { - content: ["./app/**/*.{js,jsx,ts,tsx}"], + content: ["./{app,components}/**/*.{js,jsx,ts,tsx}"], presets: [require("nativewind/preset")], theme: { - extend: {}, + extend: { + colors: { + background: "rgb(var(--color-background) / )", + foreground: "rgb(var(--color-foreground) / )", + primary: { + DEFAULT: "rgb(var(--color-primary) / )", + foreground: "rgb(var(--color-primary-foreground) / )", + }, + secondary: { + DEFAULT: "rgb(var(--color-secondary) / )", + foreground: "rgb(var(--color-secondary-foreground) / )", + }, + muted: { + DEFAULT: "rgb(var(--color-muted) / )", + foreground: "rgb(var(--color-muted-foreground) / )", + }, + accent: { + DEFAULT: "rgb(var(--color-accent) / )", + foreground: "rgb(var(--color-accent-foreground) / )", + }, + destructive: { + DEFAULT: "rgb(var(--color-destructive) / )", + foreground: + "rgb(var(--color-destructive-foreground) / )", + }, + border: "rgb(var(--color-border) / )", + input: "rgb(var(--color-input) / )", + ring: "rgb(var(--color-ring) / )", + card: { + DEFAULT: "rgb(var(--color-card) / )", + foreground: "rgb(var(--color-card-foreground) / )", + }, + }, + fontFamily: { + "space-grotesk": ["SpaceGrotesk_400Regular"], + "space-grotesk-medium": ["SpaceGrotesk_500Medium"], + "space-grotesk-semibold": ["SpaceGrotesk_600SemiBold"], + "space-grotesk-bold": ["SpaceGrotesk_700Bold"], + }, + }, }, - plugins: [], + plugins: [ + plugin(({ addBase }) => { + addBase({ + ":root": { + // Dark theme colors (RGB values) + "--color-background": "9 9 11", // #09090b + "--color-foreground": "250 250 250", // #fafafa + "--color-primary": "250 250 250", // #fafafa + "--color-primary-foreground": "24 24 27", // #18181b + "--color-secondary": "39 39 42", // #27272a + "--color-secondary-foreground": "250 250 250", // #fafafa + "--color-muted": "39 39 42", // #27272a + "--color-muted-foreground": "161 161 170", // #a1a1aa + "--color-accent": "39 39 42", // #27272a + "--color-accent-foreground": "250 250 250", // #fafafa + "--color-destructive": "127 29 29", // #7f1d1d + "--color-destructive-foreground": "250 250 250", // #fafafa + "--color-border": "39 39 42", // #27272a + "--color-input": "39 39 42", // #27272a + "--color-ring": "212 212 216", // #d4d4d8 + "--color-card": "9 9 11", // #09090b + "--color-card-foreground": "250 250 250", // #fafafa + }, + }); + }), + ], }; diff --git a/eas.json b/eas.json new file mode 100644 index 00000000..70e502c5 --- /dev/null +++ b/eas.json @@ -0,0 +1,21 @@ +{ + "cli": { + "version": ">= 16.17.4", + "appVersionSource": "remote" + }, + "build": { + "development": { + "developmentClient": true, + "distribution": "internal" + }, + "preview": { + "distribution": "internal" + }, + "production": { + "autoIncrement": true + } + }, + "submit": { + "production": {} + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8f96cacf..5b9b5af6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -200,14 +200,93 @@ importers: version: 1.5.9(@swc/core@1.15.8)(rollup@4.54.0) vite-tsconfig-paths: specifier: ^6.0.3 - version: 6.0.3(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 6.0.3(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) vitest: specifier: ^4.0.16 - version: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) zod: specifier: ^4.3.5 version: 4.3.5 + apps/mobile: + dependencies: + '@expo-google-fonts/space-grotesk': + specifier: ^0.2.3 + version: 0.2.3 + '@react-navigation/native': + specifier: ^7.1.8 + version: 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: + specifier: ~54.0.31 + version: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-dev-client: + specifier: ~6.0.20 + version: 6.0.20(expo@54.0.31) + expo-font: + specifier: ~14.0.10 + version: 14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-linking: + specifier: ~8.0.11 + version: 8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-router: + specifier: ~6.0.21 + version: 6.0.21(eb22c47db85bc856ec4297cb0d259d8e) + expo-splash-screen: + specifier: ~31.0.13 + version: 31.0.13(expo@54.0.31) + expo-status-bar: + specifier: ~3.0.9 + version: 3.0.9(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-system-ui: + specifier: ~6.0.9 + version: 6.0.9(expo@54.0.31)(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)(@types/react@19.1.17)(react@19.1.0)) + nativewind: + specifier: ^4.1.23 + version: 4.1.23(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17) + react: + specifier: 19.1.0 + version: 19.1.0 + react-dom: + specifier: 19.1.0 + version: 19.1.0(react@19.1.0) + react-native: + specifier: 0.81.5 + version: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react-native-css-interop: + specifier: 0.1.22 + version: 0.1.22(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17) + react-native-gesture-handler: + specifier: ~2.28.0 + version: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: + specifier: ~4.1.1 + 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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-safe-area-context: + specifier: ~5.6.0 + version: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-svg: + specifier: ^15.15.1 + version: 15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-web: + specifier: ~0.21.0 + version: 0.21.2(react-dom@19.1.0(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + tailwindcss: + specifier: ^3.4.17 + version: 3.4.17 + devDependencies: + '@types/react': + specifier: ~19.1.0 + version: 19.1.17 + typescript: + specifier: ~5.9.2 + version: 5.9.3 + apps/web: dependencies: '@dnd-kit/core': @@ -368,25 +447,25 @@ importers: version: 1.0.0 next: specifier: ^16.1.1 - version: 16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) next-auth: specifier: ^4.24.13 - version: 4.24.13(next@16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 4.24.13(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(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.3(react@19.2.3))(react@19.2.3) next-view-transitions: specifier: ^0.3.5 - version: 0.3.5(next@16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 0.3.5(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nextjs-toploader: specifier: ^3.9.17 - version: 3.9.17(next@16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 3.9.17(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nprogress: specifier: ^0.2.0 version: 0.2.0 nuqs: specifier: ^2.8.6 - version: 2.8.6(next@16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + version: 2.8.6(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) react: specifier: ^19.2.3 version: 19.2.3 @@ -489,7 +568,7 @@ importers: version: 3.0.6 '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/coverage-istanbul': specifier: ^4.0.16 version: 4.0.16(vitest@4.0.16) @@ -516,7 +595,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.16 - version: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages/typescript-config: {} @@ -715,6 +794,14 @@ importers: packages: + '@0no-co/graphql.web@1.2.0': + resolution: {integrity: sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + graphql: + optional: true + '@acemir/cssom@0.9.30': resolution: {integrity: sha512-9CnlMCI0LmCIq0olalQqdWrJHPzm0/tw3gzOA9zJSgvFX7Xau3D24mAGa4BtwxwY69nsuJW6kQqqCzf/mEcQgg==} @@ -927,6 +1014,9 @@ packages: resolution: {integrity: sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg==} engines: {node: '>=18.0.0'} + '@babel/code-frame@7.10.4': + resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==} + '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} @@ -1030,6 +1120,10 @@ packages: resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} + '@babel/highlight@7.25.9': + resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.28.5': resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} engines: {node: '>=6.0.0'} @@ -1065,12 +1159,68 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-proposal-decorators@7.28.0': + resolution: {integrity: sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-export-default-from@7.27.1': + resolution: {integrity: sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-decorators@7.27.1': + resolution: {integrity: sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-export-default-from@7.27.1': + resolution: {integrity: sha512-eBC/3KSekshx19+N40MzjWqJd7KTEdOoLesAfa4IDFI8eRz5a47i5Oszus6zG/cwIXN63YhgLOMSSNJx49sENg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-flow@7.27.1': + resolution: {integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-assertions@7.27.1': resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} engines: {node: '>=6.9.0'} @@ -1083,12 +1233,64 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.27.1': resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.27.1': resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} engines: {node: '>=6.9.0'} @@ -1203,6 +1405,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-flow-strip-types@7.27.1': + resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-for-of@7.27.1': resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} engines: {node: '>=6.9.0'} @@ -1395,6 +1603,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.28.5': + resolution: {integrity: sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.27.1': resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} engines: {node: '>=6.9.0'} @@ -1626,6 +1840,10 @@ packages: '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} + '@egjs/hammerjs@2.0.17': + resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==} + engines: {node: '>=0.8.0'} + '@emnapi/runtime@1.8.1': resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} @@ -2093,6 +2311,125 @@ packages: '@exodus/schemasafe@1.3.0': resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==} + '@expo-google-fonts/space-grotesk@0.2.3': + resolution: {integrity: sha512-UYEMIrzegR02pauH7gVMI7j6cUroTtJug6dH/aQFjMNz0UwZe6GUcrEtJDmsUHJjEZdxbYgHhaiIwswWVo0CMA==} + + '@expo/cli@54.0.21': + resolution: {integrity: sha512-L/FdpyZDsg/Nq6xW6kfiyF9DUzKfLZCKFXEVZcDqCNar6bXxQVotQyvgexRvtUF5nLinuT/UafLOdC3FUALUmA==} + hasBin: true + peerDependencies: + expo: '*' + expo-router: '*' + react-native: '*' + peerDependenciesMeta: + expo-router: + optional: true + react-native: + optional: true + + '@expo/code-signing-certificates@0.0.6': + resolution: {integrity: sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==} + + '@expo/config-plugins@54.0.4': + resolution: {integrity: sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q==} + + '@expo/config-types@54.0.10': + resolution: {integrity: sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA==} + + '@expo/config@12.0.13': + resolution: {integrity: sha512-Cu52arBa4vSaupIWsF0h7F/Cg//N374nYb7HAxV0I4KceKA7x2UXpYaHOL7EEYYvp7tZdThBjvGpVmr8ScIvaQ==} + + '@expo/devcert@1.2.1': + resolution: {integrity: sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==} + + '@expo/devtools@0.1.8': + resolution: {integrity: sha512-SVLxbuanDjJPgc0sy3EfXUMLb/tXzp6XIHkhtPVmTWJAp+FOr6+5SeiCfJrCzZFet0Ifyke2vX3sFcKwEvCXwQ==} + peerDependencies: + react: '*' + react-native: '*' + peerDependenciesMeta: + react: + optional: true + react-native: + optional: true + + '@expo/env@2.0.8': + resolution: {integrity: sha512-5VQD6GT8HIMRaSaB5JFtOXuvfDVU80YtZIuUT/GDhUF782usIXY13Tn3IdDz1Tm/lqA9qnRZQ1BF4t7LlvdJPA==} + + '@expo/fingerprint@0.15.4': + resolution: {integrity: sha512-eYlxcrGdR2/j2M6pEDXo9zU9KXXF1vhP+V+Tl+lyY+bU8lnzrN6c637mz6Ye3em2ANy8hhUR03Raf8VsT9Ogng==} + hasBin: true + + '@expo/image-utils@0.8.8': + resolution: {integrity: sha512-HHHaG4J4nKjTtVa1GG9PCh763xlETScfEyNxxOvfTRr8IKPJckjTyqSLEtdJoFNJ1vqiABEjW7tqGhqGibZLeA==} + + '@expo/json-file@10.0.8': + resolution: {integrity: sha512-9LOTh1PgKizD1VXfGQ88LtDH0lRwq9lsTb4aichWTWSWqy3Ugfkhfm3BhzBIkJJfQQ5iJu3m/BoRlEIjoCGcnQ==} + + '@expo/metro-config@54.0.13': + resolution: {integrity: sha512-RRufMCgLR2Za1WGsh02OatIJo5qZFt31yCnIOSfoubNc3Qqe92Z41pVsbrFnmw5CIaisv1NgdBy05DHe7pEyuw==} + peerDependencies: + expo: '*' + peerDependenciesMeta: + expo: + optional: true + + '@expo/metro-runtime@6.1.2': + resolution: {integrity: sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g==} + peerDependencies: + expo: '*' + react: '*' + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + + '@expo/metro@54.2.0': + resolution: {integrity: sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==} + + '@expo/osascript@2.3.8': + resolution: {integrity: sha512-/TuOZvSG7Nn0I8c+FcEaoHeBO07yu6vwDgk7rZVvAXoeAK5rkA09jRyjYsZo+0tMEFaToBeywA6pj50Mb3ny9w==} + engines: {node: '>=12'} + + '@expo/package-manager@1.9.9': + resolution: {integrity: sha512-Nv5THOwXzPprMJwbnXU01iXSrCp3vJqly9M4EJ2GkKko9Ifer2ucpg7x6OUsE09/lw+npaoUnHMXwkw7gcKxlg==} + + '@expo/plist@0.4.8': + resolution: {integrity: sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==} + + '@expo/prebuild-config@54.0.8': + resolution: {integrity: sha512-EA7N4dloty2t5Rde+HP0IEE+nkAQiu4A/+QGZGT9mFnZ5KKjPPkqSyYcRvP5bhQE10D+tvz6X0ngZpulbMdbsg==} + peerDependencies: + expo: '*' + + '@expo/schema-utils@0.1.8': + resolution: {integrity: sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A==} + + '@expo/sdk-runtime-versions@1.0.0': + resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==} + + '@expo/spawn-async@1.7.2': + resolution: {integrity: sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==} + engines: {node: '>=12'} + + '@expo/sudo-prompt@9.3.2': + resolution: {integrity: sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==} + + '@expo/vector-icons@15.0.3': + resolution: {integrity: sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA==} + peerDependencies: + expo-font: '>=14.0.4' + react: '*' + react-native: '*' + + '@expo/ws-tunnel@1.0.6': + resolution: {integrity: sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==} + + '@expo/xcpretty@4.3.2': + resolution: {integrity: sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==} + hasBin: true + '@faker-js/faker@10.2.0': resolution: {integrity: sha512-rTXwAsIxpCqzUnZvrxVh3L0QA0NzToqWBLAhV+zDV3MIIwiQhAZHMdPCIaj5n/yADu/tyk12wIPgL6YHGXJP+g==} engines: {node: ^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0, npm: '>=10'} @@ -2378,10 +2715,46 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@isaacs/ttlcache@1.4.1': + resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} + engines: {node: '>=12'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + '@istanbuljs/schema@0.1.3': resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} + '@jest/create-cache-key-function@29.7.0': + resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -2392,6 +2765,9 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} @@ -3048,6 +3424,15 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-slot@1.2.0': + resolution: {integrity: sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-slot@1.2.3': resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: @@ -3400,6 +3785,115 @@ packages: peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc + '@react-native/assets-registry@0.81.5': + resolution: {integrity: sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w==} + engines: {node: '>= 20.19.4'} + + '@react-native/babel-plugin-codegen@0.81.5': + resolution: {integrity: sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ==} + engines: {node: '>= 20.19.4'} + + '@react-native/babel-preset@0.81.5': + resolution: {integrity: sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@babel/core': '*' + + '@react-native/codegen@0.81.5': + resolution: {integrity: sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@babel/core': '*' + + '@react-native/community-cli-plugin@0.81.5': + resolution: {integrity: sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@react-native-community/cli': '*' + '@react-native/metro-config': '*' + peerDependenciesMeta: + '@react-native-community/cli': + optional: true + '@react-native/metro-config': + optional: true + + '@react-native/debugger-frontend@0.81.5': + resolution: {integrity: sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w==} + engines: {node: '>= 20.19.4'} + + '@react-native/dev-middleware@0.81.5': + resolution: {integrity: sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==} + engines: {node: '>= 20.19.4'} + + '@react-native/gradle-plugin@0.81.5': + resolution: {integrity: sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg==} + engines: {node: '>= 20.19.4'} + + '@react-native/js-polyfills@0.81.5': + resolution: {integrity: sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w==} + engines: {node: '>= 20.19.4'} + + '@react-native/normalize-colors@0.74.89': + resolution: {integrity: sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg==} + + '@react-native/normalize-colors@0.81.5': + resolution: {integrity: sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==} + + '@react-native/virtualized-lists@0.81.5': + resolution: {integrity: sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@types/react': ^19.1.0 + react: '*' + react-native: '*' + peerDependenciesMeta: + '@types/react': + optional: true + + '@react-navigation/bottom-tabs@7.9.0': + resolution: {integrity: sha512-024FWdHp3ZsE5rP8tmGI4vh+1z3wg8u8E9Frep8eeGoYo1h9rQhvgofQDGxknmrKsb7t8o8Dim+IZSvl57cPFQ==} + peerDependencies: + '@react-navigation/native': ^7.1.26 + react: '>= 18.2.0' + react-native: '*' + react-native-safe-area-context: '>= 4.0.0' + react-native-screens: '>= 4.0.0' + + '@react-navigation/core@7.13.7': + resolution: {integrity: sha512-k2ABo3250vq1ovOh/iVwXS6Hwr5PVRGXoPh/ewVFOOuEKTvOx9i//OBzt8EF+HokBxS2HBRlR2b+aCOmscRqBw==} + peerDependencies: + react: '>= 18.2.0' + + '@react-navigation/elements@2.9.3': + resolution: {integrity: sha512-3+eyvWiVPIEf6tN9UdduhOEHcTuNe3R5WovgiVkfH9+jApHMTZDc2loePTpY/i2HDJhObhhChpJzO6BVjrpdYQ==} + peerDependencies: + '@react-native-masked-view/masked-view': '>= 0.2.0' + '@react-navigation/native': ^7.1.26 + react: '>= 18.2.0' + react-native: '*' + react-native-safe-area-context: '>= 4.0.0' + peerDependenciesMeta: + '@react-native-masked-view/masked-view': + optional: true + + '@react-navigation/native-stack@7.9.0': + resolution: {integrity: sha512-C/mNPhI0Pnerl7C2cB+6fAkdgSmfKECMERrbyfjx3P6JmEuTC54o+GV1c62FUmlRaRUassVHbtw4EeaY2uLh0g==} + peerDependencies: + '@react-navigation/native': ^7.1.26 + react: '>= 18.2.0' + react-native: '*' + react-native-safe-area-context: '>= 4.0.0' + react-native-screens: '>= 4.0.0' + + '@react-navigation/native@7.1.26': + resolution: {integrity: sha512-RhKmeD0E2ejzKS6z8elAfdfwShpcdkYY8zJzvHYLq+wv183BBcElTeyMLcIX6wIn7QutXeI92Yi21t7aUWfqNQ==} + peerDependencies: + react: '>= 18.2.0' + react-native: '*' + + '@react-navigation/routers@7.5.3': + resolution: {integrity: sha512-1tJHg4KKRJuQ1/EvJxatrMef3NZXEPzwUIUZ3n1yJ2t7Q97siwRtbynRpQG9/69ebbtiZ8W3ScOZF/OmhvM4Rg==} + '@reduxjs/toolkit@2.11.2': resolution: {integrity: sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==} peerDependencies: @@ -3551,6 +4045,15 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@smithy/abort-controller@4.2.7': resolution: {integrity: sha512-rzMY6CaKx2qxrbYbqjXWS0plqEy7LOdKHS0bg4ixJ6aoGDPNUcLWk/FRNuCILh7GKLG9TFUXYYeQQldMBBwuyw==} engines: {node: '>=18.0.0'} @@ -4198,6 +4701,12 @@ packages: '@types/geojson@7946.0.16': resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/hammerjs@2.0.46': + resolution: {integrity: sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==} + '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -4206,6 +4715,15 @@ packages: peerDependencies: ioredis: '>=5' + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -4250,12 +4768,18 @@ packages: '@types/react-simple-maps@3.0.6': resolution: {integrity: sha512-hR01RXt6VvsE41FxDd+Bqm1PPGdKbYjCYVtCgh38YeBPt46z3SwmWPWu2L3EdCAP6bd6VYEgztucihRw1C0Klg==} + '@types/react@19.1.17': + resolution: {integrity: sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==} + '@types/react@19.2.7': resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} '@types/sax@1.2.7': resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + '@types/statuses@2.0.6': resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} @@ -4271,6 +4795,12 @@ packages: '@types/use-sync-external-store@0.0.6': resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} @@ -4284,6 +4814,14 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@urql/core@5.2.0': + resolution: {integrity: sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==} + + '@urql/exchange-retry@1.3.2': + resolution: {integrity: sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg==} + peerDependencies: + '@urql/core': ^5.0.0 + '@vitejs/plugin-react@5.1.2': resolution: {integrity: sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4338,6 +4876,10 @@ packages: '@vitest/utils@4.0.16': resolution: {integrity: sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==} + '@xmldom/xmldom@0.8.11': + resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} + engines: {node: '>=10.0.0'} + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -4403,10 +4945,21 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + anser@1.4.10: + resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} + ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -4415,6 +4968,10 @@ packages: resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -4437,6 +4994,9 @@ packages: arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -4451,6 +5011,9 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} + array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -4459,6 +5022,9 @@ packages: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + asn1.js@5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} @@ -4481,6 +5047,9 @@ packages: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} + async-limiter@1.0.1: + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -4516,6 +5085,20 @@ packages: react-native-b4a: optional: true + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-polyfill-corejs2@0.4.14: resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} peerDependencies: @@ -4531,14 +5114,49 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + babel-plugin-react-compiler@1.0.0: + resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==} - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + babel-plugin-react-native-web@0.21.2: + resolution: {integrity: sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==} - bare-events@2.8.2: - resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} + babel-plugin-syntax-hermes-parser@0.29.1: + resolution: {integrity: sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==} + + babel-plugin-transform-flow-enums@0.0.2: + resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} + + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + peerDependencies: + '@babel/core': ^7.0.0 || ^8.0.0-0 + + babel-preset-expo@54.0.9: + resolution: {integrity: sha512-8J6hRdgEC2eJobjoft6mKJ294cLxmi3khCUy2JJQp4htOYYkllSLUq6vudWJkTJiIuGdVR4bR6xuz2EvJLWHNg==} + peerDependencies: + '@babel/runtime': ^7.20.0 + expo: '*' + react-refresh: '>=0.14.0 <1.0.0' + peerDependenciesMeta: + '@babel/runtime': + optional: true + expo: + optional: true + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + bare-events@2.8.2: + resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} peerDependencies: bare-abort-controller: '*' peerDependenciesMeta: @@ -4594,9 +5212,17 @@ packages: resolution: {integrity: sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==} hasBin: true + better-opn@3.0.2: + resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} + engines: {node: '>=12.0.0'} + bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -4610,6 +5236,17 @@ packages: bowser@2.13.1: resolution: {integrity: sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==} + bplist-creator@0.1.0: + resolution: {integrity: sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==} + + bplist-parser@0.3.1: + resolution: {integrity: sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==} + engines: {node: '>= 5.10.0'} + + bplist-parser@0.3.2: + resolution: {integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==} + engines: {node: '>= 5.10.0'} + brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -4625,6 +5262,9 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -4640,6 +5280,10 @@ packages: peerDependencies: esbuild: '>=0.18' + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -4667,6 +5311,10 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} @@ -4684,6 +5332,10 @@ packages: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -4722,11 +5374,30 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + chrome-launcher@0.15.2: + resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} + engines: {node: '>=12.13.0'} + hasBin: true + chromium-bidi@12.0.1: resolution: {integrity: sha512-fGg+6jr0xjQhzpy5N4ErZxQ4wF7KLEvhGZXD6EgvZKDhu7iOhZXnZhcDxPJDcwTcrD48NPzOCo84RP2lv3Z+Cg==} peerDependencies: devtools-protocol: '*' + chromium-edge-launcher@0.2.0: + resolution: {integrity: sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==} + + ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} @@ -4736,6 +5407,10 @@ packages: classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} + cli-cursor@5.0.0: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} @@ -4755,6 +5430,10 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -4775,13 +5454,26 @@ packages: collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -4792,6 +5484,10 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + commander@13.1.0: resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} engines: {node: '>=18'} @@ -4811,9 +5507,21 @@ packages: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} + comment-json@4.5.1: + resolution: {integrity: sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==} + engines: {node: '>= 6'} + compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.8.1: + resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} + engines: {node: '>= 0.8.0'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -4827,6 +5535,10 @@ packages: confbox@0.2.2: resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + consola@3.4.2: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -4849,6 +5561,9 @@ packages: core-js-compat@3.47.0: resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} @@ -4874,13 +5589,27 @@ packages: countup.js@2.9.0: resolution: {integrity: sha512-llqrvyXztRFPp6+i8jx25phHWcVWhrHO4Nlt0uAOSKHB8778zzQswa4MU3qKBvkXfJKftRYFJuVHez67lyKdHg==} + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + + css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -5032,6 +5761,22 @@ packages: resolution: {integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==} engines: {node: '>=18'} + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -5050,14 +5795,29 @@ packages: decode-named-character-reference@1.2.0: resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -5086,6 +5846,10 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -5136,10 +5900,18 @@ packages: resolution: {integrity: sha512-r5pA8idbk7GFWuHEU7trSTflWcdBpQEK+Aw17UrSHjS6CReuhrrPcyC3zcQBPQvhArRHnBo/h6eLH1fkCvNlww==} hasBin: true + dotenv-expand@11.0.7: + resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} + engines: {node: '>=12'} + dotenv-expand@12.0.3: resolution: {integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==} engines: {node: '>=12'} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} @@ -5263,6 +6035,9 @@ packages: ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + electron-to-chromium@1.5.267: resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} @@ -5288,6 +6063,14 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + encoding-sniffer@0.2.1: resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} @@ -5314,6 +6097,10 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + env-editor@0.4.2: + resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==} + engines: {node: '>=8'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -5325,6 +6112,9 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + es-abstract@1.24.1: resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} engines: {node: '>= 0.4'} @@ -5398,6 +6188,14 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -5447,6 +6245,10 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -5461,6 +6263,9 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + exec-async@2.2.0: + resolution: {integrity: sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==} + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -5469,6 +6274,166 @@ packages: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} + expo-asset@12.0.12: + resolution: {integrity: sha512-CsXFCQbx2fElSMn0lyTdRIyKlSXOal6ilLJd+yeZ6xaC7I9AICQgscY5nj0QcwgA+KYYCCEQEBndMsmj7drOWQ==} + peerDependencies: + expo: '*' + react: '*' + react-native: '*' + + expo-constants@18.0.13: + resolution: {integrity: sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ==} + peerDependencies: + expo: '*' + react-native: '*' + + expo-dev-client@6.0.20: + resolution: {integrity: sha512-5XjoVlj1OxakNxy55j/AUaGPrDOlQlB6XdHLLWAw61w5ffSpUDHDnuZzKzs9xY1eIaogOqTOQaAzZ2ddBkdXLA==} + peerDependencies: + expo: '*' + + expo-dev-launcher@6.0.20: + resolution: {integrity: sha512-a04zHEeT9sB0L5EB38fz7sNnUKJ2Ar1pXpcyl60Ki8bXPNCs9rjY7NuYrDkP/irM8+1DklMBqHpyHiLyJ/R+EA==} + peerDependencies: + expo: '*' + + expo-dev-menu-interface@2.0.0: + resolution: {integrity: sha512-BvAMPt6x+vyXpThsyjjOYyjwfjREV4OOpQkZ0tNl+nGpsPfcY9mc6DRACoWnH9KpLzyIt3BOgh3cuy/h/OxQjw==} + peerDependencies: + expo: '*' + + expo-dev-menu@7.0.18: + resolution: {integrity: sha512-4kTdlHrnZCAWCT6tZRQHSSjZ7vECFisL4T+nsG/GJDo/jcHNaOVGV5qPV9wzlTxyMk3YOPggRw4+g7Ownrg5eA==} + peerDependencies: + expo: '*' + + expo-file-system@19.0.21: + resolution: {integrity: sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg==} + peerDependencies: + expo: '*' + react-native: '*' + + expo-font@14.0.10: + resolution: {integrity: sha512-UqyNaaLKRpj4pKAP4HZSLnuDQqueaO5tB1c/NWu5vh1/LF9ulItyyg2kF/IpeOp0DeOLk0GY0HrIXaKUMrwB+Q==} + peerDependencies: + expo: '*' + react: '*' + react-native: '*' + + expo-json-utils@0.15.0: + resolution: {integrity: sha512-duRT6oGl80IDzH2LD2yEFWNwGIC2WkozsB6HF3cDYNoNNdUvFk6uN3YiwsTsqVM/D0z6LEAQ01/SlYvN+Fw0JQ==} + + expo-keep-awake@15.0.8: + resolution: {integrity: sha512-YK9M1VrnoH1vLJiQzChZgzDvVimVoriibiDIFLbQMpjYBnvyfUeHJcin/Gx1a+XgupNXy92EQJLgI/9ZuXajYQ==} + peerDependencies: + expo: '*' + react: '*' + + expo-linking@8.0.11: + resolution: {integrity: sha512-+VSaNL5om3kOp/SSKO5qe6cFgfSIWnnQDSbA7XLs3ECkYzXRquk5unxNS3pg7eK5kNUmQ4kgLI7MhTggAEUBLA==} + peerDependencies: + react: '*' + react-native: '*' + + expo-manifests@1.0.10: + resolution: {integrity: sha512-oxDUnURPcL4ZsOBY6X1DGWGuoZgVAFzp6PISWV7lPP2J0r8u1/ucuChBgpK7u1eLGFp6sDIPwXyEUCkI386XSQ==} + peerDependencies: + expo: '*' + + expo-modules-autolinking@3.0.24: + resolution: {integrity: sha512-TP+6HTwhL7orDvsz2VzauyQlXJcAWyU3ANsZ7JGL4DQu8XaZv/A41ZchbtAYLfozNA2Ya1Hzmhx65hXryBMjaQ==} + hasBin: true + + expo-modules-core@3.0.29: + resolution: {integrity: sha512-LzipcjGqk8gvkrOUf7O2mejNWugPkf3lmd9GkqL9WuNyeN2fRwU0Dn77e3ZUKI3k6sI+DNwjkq4Nu9fNN9WS7Q==} + peerDependencies: + react: '*' + react-native: '*' + + expo-router@6.0.21: + resolution: {integrity: sha512-wjTUjrnWj6gRYjaYl1kYfcRnNE4ZAQ0kz0+sQf6/mzBd/OU6pnOdD7WrdAW3pTTpm52Q8sMoeX98tNQEddg2uA==} + peerDependencies: + '@expo/metro-runtime': ^6.1.2 + '@react-navigation/drawer': ^7.5.0 + '@testing-library/react-native': '>= 12.0.0' + expo: '*' + expo-constants: ^18.0.12 + expo-linking: ^8.0.11 + react: '*' + react-dom: '*' + react-native: '*' + react-native-gesture-handler: '*' + react-native-reanimated: '*' + react-native-safe-area-context: '>= 5.4.0' + react-native-screens: '*' + react-native-web: '*' + react-server-dom-webpack: ~19.0.3 || ~19.1.4 || ~19.2.3 + peerDependenciesMeta: + '@react-navigation/drawer': + optional: true + '@testing-library/react-native': + optional: true + react-dom: + optional: true + react-native-gesture-handler: + optional: true + react-native-reanimated: + optional: true + react-native-web: + optional: true + react-server-dom-webpack: + optional: true + + expo-server@1.0.5: + resolution: {integrity: sha512-IGR++flYH70rhLyeXF0Phle56/k4cee87WeQ4mamS+MkVAVP+dDlOHf2nN06Z9Y2KhU0Gp1k+y61KkghF7HdhA==} + engines: {node: '>=20.16.0'} + + expo-splash-screen@31.0.13: + resolution: {integrity: sha512-1epJLC1cDlwwj089R2h8cxaU5uk4ONVAC+vzGiTZH4YARQhL4Stlz1MbR6yAS173GMosvkE6CAeihR7oIbCkDA==} + peerDependencies: + expo: '*' + + expo-status-bar@3.0.9: + resolution: {integrity: sha512-xyYyVg6V1/SSOZWh4Ni3U129XHCnFHBTcUo0dhWtFDrZbNp/duw5AGsQfb2sVeU0gxWHXSY1+5F0jnKYC7WuOw==} + peerDependencies: + react: '*' + react-native: '*' + + expo-system-ui@6.0.9: + resolution: {integrity: sha512-eQTYGzw1V4RYiYHL9xDLYID3Wsec2aZS+ypEssmF64D38aDrqbDgz1a2MSlHLQp2jHXSs3FvojhZ9FVela1Zcg==} + peerDependencies: + expo: '*' + react-native: '*' + react-native-web: '*' + peerDependenciesMeta: + react-native-web: + optional: true + + expo-updates-interface@2.0.0: + resolution: {integrity: sha512-pTzAIufEZdVPKql6iMi5ylVSPqV1qbEopz9G6TSECQmnNde2nwq42PxdFBaUEd8IZJ/fdJLQnOT3m6+XJ5s7jg==} + peerDependencies: + expo: '*' + + expo@54.0.31: + resolution: {integrity: sha512-kQ3RDqA/a59I7y+oqQGyrPbbYlgPMUdKBOgvFLpoHbD2bCM+F75i4N0mUijy7dG5F/CUCu2qHmGGUCXBbMDkCg==} + hasBin: true + peerDependencies: + '@expo/dom-webview': '*' + '@expo/metro-runtime': '*' + react: '*' + react-native: '*' + react-native-webview: '*' + peerDependenciesMeta: + '@expo/dom-webview': + optional: true + '@expo/metro-runtime': + optional: true + react-native-webview: + optional: true + + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + exsolve@1.0.8: resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} @@ -5496,6 +6461,9 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-json-stringify@6.1.1: resolution: {integrity: sha512-DbgptncYEXZqDUOEl4krff4mUiVrTZZVI7BBrQR/T3BqMj/eM1flTC1Uk2uUoLcWCxjT95xKulV/Lc6hhOZsBQ==} @@ -5553,6 +6521,15 @@ packages: fastseries@1.7.2: resolution: {integrity: sha512-dTPFrPGS8SNSzAt7u/CbMKCJ3s01N04s4JFbORHcmyvVfVKmbhMD1VtRbh5enGHxkaQDqWyLefiKOGGmohGDDQ==} + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fbjs-css-vars@1.0.2: + resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} + + fbjs@3.0.5: + resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} + fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -5580,10 +6557,22 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} + + finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + find-my-way@9.4.0: resolution: {integrity: sha512-5Ye4vHsypZRYtS01ob/iwHzGRUDELlsoCftI/OZFhcLs1M0tkGPcXldE80TAZC5yYuJMBPJQQ43UHlqbJWiX2w==} engines: {node: '>=20'} + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -5594,6 +6583,9 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flow-enums-runtime@0.0.6: + resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} + follow-redirects@1.15.11: resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} @@ -5603,6 +6595,9 @@ packages: debug: optional: true + fontfaceobserver@2.3.0: + resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} + for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} @@ -5632,10 +6627,21 @@ packages: react-dom: optional: true + freeport-async@2.0.0: + resolution: {integrity: sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==} + engines: {node: '>=8'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + fs-extra@11.3.3: resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} engines: {node: '>=14.14'} + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -5675,6 +6681,10 @@ packages: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -5698,6 +6708,10 @@ packages: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} + getenv@2.0.0: + resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} + engines: {node: '>=6'} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -5715,6 +6729,14 @@ packages: resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} engines: {node: 20 || >=22} + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -5745,6 +6767,10 @@ packages: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -5783,6 +6809,25 @@ packages: help-me@5.0.0: resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} + hermes-estree@0.29.1: + resolution: {integrity: sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==} + + hermes-estree@0.32.0: + resolution: {integrity: sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==} + + hermes-parser@0.29.1: + resolution: {integrity: sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==} + + hermes-parser@0.32.0: + resolution: {integrity: sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + html-encoding-sniffer@6.0.0: resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} @@ -5825,6 +6870,9 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + hyphenate-style-name@1.1.0: + resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} + i18next@25.7.3: resolution: {integrity: sha512-2XaT+HpYGuc2uTExq9TVRhLsso+Dxym6PWaKpn36wfBmTI779OQ7iP/XaZHzrnGyzU4SHpFrTYLKfVyBfAhVNA==} peerDependencies: @@ -5844,6 +6892,11 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + image-size@1.2.1: + resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} + engines: {node: '>=16.x'} + hasBin: true + immer@10.2.0: resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==} @@ -5857,15 +6910,29 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + inflected@2.1.0: resolution: {integrity: sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==} + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + inline-style-parser@0.2.7: resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + inline-style-prefixer@7.0.1: + resolution: {integrity: sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw==} + input-otp@1.4.2: resolution: {integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==} peerDependencies: @@ -5883,6 +6950,9 @@ packages: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + ioredis-mock@8.13.1: resolution: {integrity: sha512-Wsi50AU+cMiI32nAgfwpUaJVBtb4iQdVsOHl9M6R3tePCO/8vGsToCVIG82XWAxN4Se55TZoOzVseu+QngFLyw==} engines: {node: '>=12.22'} @@ -5915,6 +6985,9 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.4: + resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} + is-async-function@2.1.1: resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} @@ -5950,6 +7023,11 @@ packages: is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -6055,6 +7133,10 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -6065,6 +7147,10 @@ packages: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + istanbul-lib-instrument@6.0.3: resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} @@ -6085,6 +7171,45 @@ packages: resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} engines: {node: 20 || >=22} + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jimp-compact@0.16.1: + resolution: {integrity: sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==} + jiti@1.21.7: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true @@ -6113,10 +7238,17 @@ packages: js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true + jsc-safe-url@0.2.4: + resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} + jsdom@27.4.0: resolution: {integrity: sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} @@ -6178,6 +7310,10 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + lan-network@0.1.7: + resolution: {integrity: sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==} + hasBin: true + leac@0.6.0: resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} @@ -6188,22 +7324,99 @@ packages: light-my-request@6.6.0: resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==} - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} + lighthouse-logger@1.4.2: + resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lightningcss-android-arm64@1.30.2: + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + lightningcss-darwin-arm64@1.30.2: + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lightningcss-darwin-x64@1.30.2: + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] - localstack@1.0.0: - resolution: {integrity: sha512-LJ4lhd8de8OuuRIcmqJVfZxI81e1avXiyFRrlCLt8WnX4HV+v0n6Oslp4rYiGL4uSh8zcEzFmST7cK2QPaeP4g==} + lightningcss-freebsd-x64@1.30.2: + resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.30.2: + resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.30.2: + resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.30.2: + resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.30.2: + resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.30.2: + resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.30.2: + resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.30.2: + resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.30.2: + resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} + engines: {node: '>= 12.0.0'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + localstack@1.0.0: + resolution: {integrity: sha512-LJ4lhd8de8OuuRIcmqJVfZxI81e1avXiyFRrlCLt8WnX4HV+v0n6Oslp4rYiGL4uSh8zcEzFmST7cK2QPaeP4g==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -6224,6 +7437,9 @@ packages: lodash.omitby@4.6.0: resolution: {integrity: sha512-5OrRcIVR75M288p4nbI2WLAf3ndw2GD9fyNv3Bc15+WCxJDdZ4lYndSxGd7hnG6PVjiJTeJE2dHEGhIuKGicIQ==} + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + lodash.topath@4.5.2: resolution: {integrity: sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==} @@ -6239,6 +7455,10 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + log-symbols@2.2.0: + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} + engines: {node: '>=4'} + log-symbols@6.0.0: resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} engines: {node: '>=18'} @@ -6264,6 +7484,9 @@ packages: lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.4: resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} engines: {node: 20 || >=22} @@ -6301,6 +7524,9 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + markdown-extensions@2.0.0: resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} engines: {node: '>=16'} @@ -6314,6 +7540,9 @@ packages: engines: {node: '>= 18'} hasBin: true + marky@1.3.0: + resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -6345,6 +7574,9 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} @@ -6357,6 +7589,12 @@ packages: mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + + memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -6364,6 +7602,64 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + metro-babel-transformer@0.83.3: + resolution: {integrity: sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==} + engines: {node: '>=20.19.4'} + + metro-cache-key@0.83.3: + resolution: {integrity: sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==} + engines: {node: '>=20.19.4'} + + metro-cache@0.83.3: + resolution: {integrity: sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==} + engines: {node: '>=20.19.4'} + + metro-config@0.83.3: + resolution: {integrity: sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==} + engines: {node: '>=20.19.4'} + + metro-core@0.83.3: + resolution: {integrity: sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==} + engines: {node: '>=20.19.4'} + + metro-file-map@0.83.3: + resolution: {integrity: sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==} + engines: {node: '>=20.19.4'} + + metro-minify-terser@0.83.3: + resolution: {integrity: sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==} + engines: {node: '>=20.19.4'} + + metro-resolver@0.83.3: + resolution: {integrity: sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==} + engines: {node: '>=20.19.4'} + + metro-runtime@0.83.3: + resolution: {integrity: sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==} + engines: {node: '>=20.19.4'} + + metro-source-map@0.83.3: + resolution: {integrity: sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==} + engines: {node: '>=20.19.4'} + + metro-symbolicate@0.83.3: + resolution: {integrity: sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==} + engines: {node: '>=20.19.4'} + hasBin: true + + metro-transform-plugins@0.83.3: + resolution: {integrity: sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==} + engines: {node: '>=20.19.4'} + + metro-transform-worker@0.83.3: + resolution: {integrity: sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==} + engines: {node: '>=20.19.4'} + + metro@0.83.3: + resolution: {integrity: sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==} + engines: {node: '>=20.19.4'} + hasBin: true + micro-cors@0.1.1: resolution: {integrity: sha512-6WqIahA5sbQR1Gjexp1VuWGFDKbZZleJb/gy1khNGk18a6iN1FdTcr3Q8twaxkV5H94RjxIBjirYbWCehpMBFw==} engines: {node: '>=6'} @@ -6472,11 +7768,20 @@ packages: resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} engines: {node: '>=18'} + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} hasBin: true + mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -6510,9 +7815,18 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} @@ -6529,6 +7843,9 @@ packages: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -6554,14 +7871,27 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nativewind@4.1.23: + resolution: {integrity: sha512-oLX3suGI6ojQqWxdQezOSM5GmJ4KvMnMtmaSMN9Ggb5j7ysFt4nHxb1xs8RDjZR7BWc+bsetNJU8IQdQMHqRpg==} + engines: {node: '>=16'} + peerDependencies: + tailwindcss: '>3.3.0' + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + negotiator@1.0.0: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} + nested-error-stacks@2.0.1: + resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==} + netmask@2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} @@ -6645,6 +7975,13 @@ packages: encoding: optional: true + node-forge@1.3.3: + resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} + engines: {node: '>= 6.13.0'} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + node-readfiles@0.2.0: resolution: {integrity: sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==} @@ -6658,6 +7995,10 @@ packages: normalize-wheel@1.0.1: resolution: {integrity: sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==} + npm-package-arg@11.0.3: + resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==} + engines: {node: ^16.14.0 || >=18.0.0} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -6668,6 +8009,9 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nullthrows@1.1.1: + resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} + number-flow@0.5.8: resolution: {integrity: sha512-FPr1DumWyGi5Nucoug14bC6xEz70A1TnhgSHhKyfqjgji2SOTz+iLJxKtv37N5JyJbteGYCm6NQ9p1O4KZ7iiA==} @@ -6716,6 +8060,10 @@ packages: oauth@0.9.15: resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==} + ob1@0.83.3: + resolution: {integrity: sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==} + engines: {node: '>=20.19.4'} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -6754,9 +8102,25 @@ packages: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} engines: {node: '>=14.0.0'} + on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} + engines: {node: '>= 0.8'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} + engines: {node: '>=4'} + onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -6765,6 +8129,14 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} + open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + openai@6.15.0: resolution: {integrity: sha512-F1Lvs5BoVvmZtzkUEVyh8mDQPPFolq4F+xdsx/DO8Hee8YF3IGAlZqUIsF+DVGhqf4aU0a3bTghsxB6OIsRy1g==} hasBin: true @@ -6790,6 +8162,10 @@ packages: openid-client@5.7.1: resolution: {integrity: sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==} + ora@3.4.0: + resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} + engines: {node: '>=6'} + ora@8.2.0: resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} engines: {node: '>=18'} @@ -6806,14 +8182,26 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + pac-proxy-agent@7.2.0: resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} engines: {node: '>= 14'} @@ -6836,6 +8224,10 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse-png@2.1.0: + resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==} + engines: {node: '>=10'} + parse5-htmlparser2-tree-adapter@7.1.0: resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} @@ -6851,10 +8243,18 @@ packages: parseley@0.12.1: resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -6892,6 +8292,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@3.0.1: + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} + picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -6927,6 +8331,14 @@ packages: pkg-types@2.3.0: resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + + pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + pony-cause@1.1.1: resolution: {integrity: sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==} engines: {node: '>=12.0.0'} @@ -6947,6 +8359,18 @@ packages: peerDependencies: postcss: ^8.4.21 + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + postcss-load-config@6.0.1: resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} engines: {node: '>= 18'} @@ -6986,6 +8410,10 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -7007,10 +8435,18 @@ packages: engines: {node: '>=14'} hasBin: true + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@3.8.0: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} @@ -7018,6 +8454,10 @@ packages: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} + proc-log@4.2.0: + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + process-warning@4.0.1: resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} @@ -7028,6 +8468,12 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + + promise@8.3.0: + resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -7065,19 +8511,38 @@ packages: engines: {node: '>=18'} hasBin: true + qrcode-terminal@0.11.0: + resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==} + hasBin: true + qs@6.14.1: resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} engines: {node: '>=0.6'} + query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} + engines: {node: '>=6'} + querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + react-confetti@6.4.0: resolution: {integrity: sha512-5MdGUcqxrTU26I2EU7ltkWPwxvucQTuqMm8dUz72z2YMqTD6s9vMcDUysk7n9jnC+lXuCPeJJ7Knf98VEYE9Rg==} engines: {node: '>=16'} @@ -7101,6 +8566,14 @@ packages: peerDependencies: react: '>=16.8.0' + react-devtools-core@6.1.5: + resolution: {integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==} + + react-dom@19.1.0: + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} + peerDependencies: + react: ^19.1.0 + react-dom@19.2.3: resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} peerDependencies: @@ -7117,6 +8590,15 @@ packages: engines: {node: '>=20.0.0'} hasBin: true + react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + + react-freeze@1.0.4: + resolution: {integrity: sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==} + engines: {node: '>=10'} + peerDependencies: + react: '>=17.0.0' + react-hook-form@7.70.0: resolution: {integrity: sha512-COOMajS4FI3Wuwrs3GPpi/Jeef/5W1DRR84Yl5/ShlT3dKVFUfoGiEZ/QE6Uw8P4T2/CLJdcTVYKvWBMQTEpvw==} engines: {node: '>=18.0.0'} @@ -7156,6 +8638,84 @@ packages: peerDependencies: react: '>=16.0.0' + react-native-css-interop@0.1.22: + resolution: {integrity: sha512-Mu01e+H9G+fxSWvwtgWlF5MJBJC4VszTCBXopIpeR171lbeBInHb8aHqoqRPxmJpi3xIHryzqKFOJYAdk7PBxg==} + engines: {node: '>=18'} + peerDependencies: + react: '>=18' + react-native: '*' + react-native-reanimated: '>=3.6.2' + react-native-safe-area-context: '*' + react-native-svg: '*' + tailwindcss: ~3 + peerDependenciesMeta: + react-native-safe-area-context: + optional: true + react-native-svg: + optional: true + + react-native-gesture-handler@2.28.0: + resolution: {integrity: sha512-0msfJ1vRxXKVgTgvL+1ZOoYw3/0z1R+Ked0+udoJhyplC2jbVKIJ8Z1bzWdpQRCV3QcQ87Op0zJVE5DhKK2A0A==} + peerDependencies: + react: '*' + react-native: '*' + + react-native-is-edge-to-edge@1.2.1: + resolution: {integrity: sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==} + peerDependencies: + react: '*' + react-native: '*' + + react-native-reanimated@4.1.6: + resolution: {integrity: sha512-F+ZJBYiok/6Jzp1re75F/9aLzkgoQCOh4yxrnwATa8392RvM3kx+fiXXFvwcgE59v48lMwd9q0nzF1oJLXpfxQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + react: '*' + react-native: '*' + react-native-worklets: '>=0.5.0' + + react-native-safe-area-context@5.6.2: + resolution: {integrity: sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg==} + peerDependencies: + react: '*' + react-native: '*' + + react-native-screens@4.16.0: + resolution: {integrity: sha512-yIAyh7F/9uWkOzCi1/2FqvNvK6Wb9Y1+Kzn16SuGfN9YFJDTbwlzGRvePCNTOX0recpLQF3kc2FmvMUhyTCH1Q==} + peerDependencies: + react: '*' + react-native: '*' + + react-native-svg@15.15.1: + resolution: {integrity: sha512-ZUD1xwc3Hwo4cOmOLumjJVoc7lEf9oQFlHnLmgccLC19fNm6LVEdtB+Cnip6gEi0PG3wfvVzskViEtrySQP8Fw==} + peerDependencies: + react: '*' + react-native: '*' + + react-native-web@0.21.2: + resolution: {integrity: sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + + react-native-worklets@0.5.1: + resolution: {integrity: sha512-lJG6Uk9YuojjEX/tQrCbcbmpdLCSFxDK1rJlkDhgqkVi1KZzG7cdcBFQRqyNOOzR9Y0CXNuldmtWTGOyM0k0+w==} + peerDependencies: + '@babel/core': ^7.0.0-0 + react: '*' + react-native: '*' + + react-native@0.81.5: + resolution: {integrity: sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw==} + engines: {node: '>= 20.19.4'} + hasBin: true + peerDependencies: + '@types/react': ^19.1.0 + react: ^19.1.0 + peerDependenciesMeta: + '@types/react': + optional: true + react-redux@9.2.0: resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} peerDependencies: @@ -7168,6 +8728,10 @@ packages: redux: optional: true + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + react-refresh@0.18.0: resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} engines: {node: '>=0.10.0'} @@ -7221,6 +8785,10 @@ packages: react: '>=16.14.0' react-dom: '>=16.14.0' + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + engines: {node: '>=0.10.0'} + react@19.2.3: resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} @@ -7300,6 +8868,9 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -7335,6 +8906,10 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + requireg@0.2.2: + resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==} + engines: {node: '>= 4.0.0'} + requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -7358,14 +8933,32 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve-workspace-root@2.0.1: + resolution: {integrity: sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w==} + + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + engines: {node: '>=10'} + resolve@1.22.11: resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} hasBin: true + resolve@1.7.1: + resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==} + + restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} + engines: {node: '>=4'} + restore-cursor@5.1.0: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} @@ -7384,6 +8977,11 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + rollup@4.54.0: resolution: {integrity: sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -7427,6 +9025,9 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} @@ -7440,11 +9041,36 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + semver@7.7.3: resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} hasBin: true + send@0.19.2: + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} + engines: {node: '>= 0.8.0'} + + serialize-error@2.1.0: + resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} + engines: {node: '>=0.10.0'} + + serve-static@1.16.3: + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} + engines: {node: '>= 0.8.0'} + + server-only@0.0.1: + resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + set-cookie-parser@2.7.2: resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} @@ -7460,9 +9086,19 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + sf-symbols-typescript@2.2.0: + resolution: {integrity: sha512-TPbeg0b7ylrswdGCji8FRGFAKuqbpQlLbL8SOle3j1iHSs5Ob5mhvMAxWN2UItOjgALAB5Zp3fmMfj8mbWvXKw==} + engines: {node: '>=10'} + + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + sharp@0.34.5: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -7475,6 +9111,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + engines: {node: '>= 0.4'} + should-equal@2.0.0: resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} @@ -7523,6 +9163,12 @@ packages: resolution: {integrity: sha512-LH7FpTAkeD+y5xQC4fzS+tFtaNlvt3Ib1zKzvhjv/Y+cioV4zIuw4IZr2yhRLu67CWL7FR9/6KXKnjRoZTvGGQ==} engines: {node: '>=12'} + simple-plist@1.3.1: + resolution: {integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==} + + simple-swizzle@0.2.4: + resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} + sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} @@ -7543,6 +9189,10 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slugify@1.6.6: + resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + engines: {node: '>=8.0.0'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -7585,6 +9235,10 @@ packages: source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -7596,19 +9250,41 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stacktrace-parser@0.1.11: + resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} + engines: {node: '>=6'} + standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + statuses@2.0.2: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} @@ -7630,12 +9306,20 @@ packages: stream-browserify@3.0.0: resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + stream-buffers@2.2.0: + resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} + engines: {node: '>= 0.10.0'} + streamx@2.23.0: resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -7670,6 +9354,10 @@ packages: stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -7686,7 +9374,11 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - strip-json-comments@5.0.3: + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@5.0.3: resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} engines: {node: '>=14.16'} @@ -7702,6 +9394,9 @@ packages: strnum@2.1.2: resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==} + structured-headers@0.4.1: + resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==} + stubborn-fs@2.0.0: resolution: {integrity: sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==} @@ -7727,15 +9422,30 @@ packages: babel-plugin-macros: optional: true + styleq@0.1.3: + resolution: {integrity: sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==} + sucrase@3.35.1: resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -7785,6 +9495,11 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders' + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} + engines: {node: '>=14.0.0'} + hasBin: true + tailwindcss@3.4.19: resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==} engines: {node: '>=14.0.0'} @@ -7799,6 +9514,27 @@ packages: tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + tar@7.5.2: + resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} + engines: {node: '>=18'} + + temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + + terminal-link@2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + + terser@5.44.1: + resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + text-decoder@1.2.3: resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} @@ -7812,6 +9548,9 @@ packages: thread-stream@3.1.0: resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} + throat@5.0.0: + resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -7844,6 +9583,9 @@ packages: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -7979,6 +9721,18 @@ packages: tween-functions@1.2.0: resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + type-fest@5.3.1: resolution: {integrity: sha512-VCn+LMHbd4t6sF3wfU/+HKT63C9OoyrSIf4b+vtWHpt2U7/4InZG467YDNMFMR70DdHjAdpPWmw2lzRdg0Xqqg==} engines: {node: '>=20'} @@ -8029,6 +9783,10 @@ packages: engines: {node: '>=14.17'} hasBin: true + ua-parser-js@1.0.41: + resolution: {integrity: sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==} + hasBin: true + uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} @@ -8049,6 +9807,10 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + undici@6.23.0: + resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} + engines: {node: '>=18.17'} + undici@7.16.0: resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} engines: {node: '>=20.18.1'} @@ -8072,6 +9834,10 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} @@ -8094,6 +9860,10 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + unplugin-swc@1.5.9: resolution: {integrity: sha512-RKwK3yf0M+MN17xZfF14bdKqfx0zMXYdtOdxLiE6jHAoidupKq3jGdJYANyIM1X/VmABhh1WpdO+/f4+Ol89+g==} peerDependencies: @@ -8128,6 +9898,11 @@ packages: '@types/react': optional: true + use-latest-callback@0.2.6: + resolution: {integrity: sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg==} + peerDependencies: + react: '>=16.8' + use-sidecar@1.1.3: resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} @@ -8150,6 +9925,10 @@ packages: resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} engines: {node: '>= 4'} + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + uuid@10.0.0: resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} hasBin: true @@ -8158,10 +9937,18 @@ packages: 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 + uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + validator@13.15.26: resolution: {integrity: sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==} engines: {node: '>= 0.10'} @@ -8267,6 +10054,9 @@ packages: jsdom: optional: true + vlq@1.0.1: + resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} + void-elements@3.1.0: resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} engines: {node: '>=0.10.0'} @@ -8275,12 +10065,25 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + warn-once@0.1.1: + resolution: {integrity: sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + webdriver-bidi-protocol@0.3.10: resolution: {integrity: sha512-5LAE43jAVLOhB/QqX4bwSiv0Hg1HBfMmOuwBSXHdvg4GMGu9Y0lIq7p4R/yySu6w74WmaR4GM4H9t2IwLW7hgw==} webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + webidl-conversions@8.0.1: resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} engines: {node: '>=20'} @@ -8298,10 +10101,17 @@ packages: engines: {node: '>=18'} deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} + whatwg-url-without-unicode@8.0.0-3: + resolution: {integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==} + engines: {node: '>=10'} + whatwg-url@15.1.0: resolution: {integrity: sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==} engines: {node: '>=20'} @@ -8338,6 +10148,9 @@ packages: engines: {node: '>=8'} hasBin: true + wonka@6.3.5: + resolution: {integrity: sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==} + wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -8353,6 +10166,21 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + ws@6.2.3: + resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@7.5.10: resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} @@ -8377,10 +10205,26 @@ packages: utf-8-validate: optional: true + xcode@3.0.1: + resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} + engines: {node: '>=10.0.0'} + xml-name-validator@5.0.0: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} + xml2js@0.6.0: + resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -8398,6 +10242,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -8441,6 +10289,10 @@ packages: snapshots: + '@0no-co/graphql.web@1.2.0(graphql@16.12.0)': + optionalDependencies: + graphql: 16.12.0 + '@acemir/cssom@0.9.30': {} '@alloc/quick-lru@5.2.0': {} @@ -9037,6 +10889,10 @@ snapshots: '@aws/lambda-invoke-store@0.2.2': {} + '@babel/code-frame@7.10.4': + dependencies: + '@babel/highlight': 7.25.9 + '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.28.5 @@ -9191,6 +11047,13 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.28.5 + '@babel/highlight@7.25.9': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/parser@7.28.5': dependencies: '@babel/types': 7.28.5 @@ -9230,10 +11093,64 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-export-default-from@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-flow@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -9244,11 +11161,61 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -9375,6 +11342,12 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -9586,6 +11559,18 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -9880,6 +11865,10 @@ snapshots: '@drizzle-team/brocli@0.10.2': {} + '@egjs/hammerjs@2.0.17': + dependencies: + '@types/hammerjs': 2.0.46 + '@emnapi/runtime@1.8.1': dependencies: tslib: 2.8.1 @@ -10121,48 +12110,350 @@ snapshots: '@exodus/schemasafe@1.3.0': {} - '@faker-js/faker@10.2.0': {} - - '@fastify/accept-negotiator@2.0.1': {} + '@expo-google-fonts/space-grotesk@0.2.3': {} + + '@expo/cli@54.0.21(expo-router@6.0.21)(expo@54.0.31)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))': + dependencies: + '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) + '@expo/code-signing-certificates': 0.0.6 + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/devcert': 1.2.1 + '@expo/env': 2.0.8 + '@expo/image-utils': 0.8.8 + '@expo/json-file': 10.0.8 + '@expo/metro': 54.2.0 + '@expo/metro-config': 54.0.13(expo@54.0.31) + '@expo/osascript': 2.3.8 + '@expo/package-manager': 1.9.9 + '@expo/plist': 0.4.8 + '@expo/prebuild-config': 54.0.8(expo@54.0.31) + '@expo/schema-utils': 0.1.8 + '@expo/spawn-async': 1.7.2 + '@expo/ws-tunnel': 1.0.6 + '@expo/xcpretty': 4.3.2 + '@react-native/dev-middleware': 0.81.5 + '@urql/core': 5.2.0(graphql@16.12.0) + '@urql/exchange-retry': 1.3.2(@urql/core@5.2.0(graphql@16.12.0)) + accepts: 1.3.8 + arg: 5.0.2 + better-opn: 3.0.2 + bplist-creator: 0.1.0 + bplist-parser: 0.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + compression: 1.8.1 + connect: 3.7.0 + debug: 4.4.3 + env-editor: 0.4.2 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-server: 1.0.5 + freeport-async: 2.0.0 + getenv: 2.0.0 + glob: 13.0.0 + lan-network: 0.1.7 + minimatch: 9.0.5 + node-forge: 1.3.3 + npm-package-arg: 11.0.3 + ora: 3.4.0 + picomatch: 3.0.1 + pretty-bytes: 5.6.0 + pretty-format: 29.7.0 + progress: 2.0.3 + prompts: 2.4.2 + qrcode-terminal: 0.11.0 + require-from-string: 2.0.2 + requireg: 0.2.2 + resolve: 1.22.11 + resolve-from: 5.0.0 + resolve.exports: 2.0.3 + semver: 7.7.3 + send: 0.19.2 + slugify: 1.6.6 + source-map-support: 0.5.21 + stacktrace-parser: 0.1.11 + structured-headers: 0.4.1 + tar: 7.5.2 + terminal-link: 2.1.1 + undici: 6.23.0 + wrap-ansi: 7.0.0 + ws: 8.18.3 + optionalDependencies: + expo-router: 6.0.21(eb22c47db85bc856ec4297cb0d259d8e) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + transitivePeerDependencies: + - bufferutil + - graphql + - supports-color + - utf-8-validate - '@fastify/ajv-compiler@4.0.5': + '@expo/code-signing-certificates@0.0.6': dependencies: - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) - fast-uri: 3.1.0 - - '@fastify/busboy@3.2.0': {} + node-forge: 1.3.3 - '@fastify/cors@11.2.0': + '@expo/config-plugins@54.0.4': dependencies: - fastify-plugin: 5.1.0 - toad-cache: 3.7.0 - - '@fastify/deepmerge@3.1.0': {} + '@expo/config-types': 54.0.10 + '@expo/json-file': 10.0.8 + '@expo/plist': 0.4.8 + '@expo/sdk-runtime-versions': 1.0.0 + chalk: 4.1.2 + debug: 4.4.3 + getenv: 2.0.0 + glob: 13.0.0 + resolve-from: 5.0.0 + semver: 7.7.3 + slash: 3.0.0 + slugify: 1.6.6 + xcode: 3.0.1 + xml2js: 0.6.0 + transitivePeerDependencies: + - supports-color - '@fastify/error@4.2.0': {} + '@expo/config-types@54.0.10': {} - '@fastify/fast-json-stringify-compiler@5.0.3': + '@expo/config@12.0.13': dependencies: - fast-json-stringify: 6.1.1 - - '@fastify/forwarded@3.0.1': {} + '@babel/code-frame': 7.10.4 + '@expo/config-plugins': 54.0.4 + '@expo/config-types': 54.0.10 + '@expo/json-file': 10.0.8 + deepmerge: 4.3.1 + getenv: 2.0.0 + glob: 13.0.0 + require-from-string: 2.0.2 + resolve-from: 5.0.0 + resolve-workspace-root: 2.0.1 + semver: 7.7.3 + slugify: 1.6.6 + sucrase: 3.35.1 + transitivePeerDependencies: + - supports-color - '@fastify/jwt@10.0.0': + '@expo/devcert@1.2.1': dependencies: - '@fastify/error': 4.2.0 - '@lukeed/ms': 2.0.2 - fast-jwt: 6.1.0 - fastify-plugin: 5.1.0 - steed: 1.1.3 + '@expo/sudo-prompt': 9.3.2 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color - '@fastify/merge-json-schemas@0.2.1': + '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - dequal: 2.0.3 + chalk: 4.1.2 + optionalDependencies: + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) - '@fastify/multipart@9.3.0': + '@expo/env@2.0.8': dependencies: - '@fastify/busboy': 3.2.0 + chalk: 4.1.2 + debug: 4.4.3 + dotenv: 16.4.7 + dotenv-expand: 11.0.7 + getenv: 2.0.0 + transitivePeerDependencies: + - supports-color + + '@expo/fingerprint@0.15.4': + dependencies: + '@expo/spawn-async': 1.7.2 + arg: 5.0.2 + chalk: 4.1.2 + debug: 4.4.3 + getenv: 2.0.0 + glob: 13.0.0 + ignore: 5.3.2 + minimatch: 9.0.5 + p-limit: 3.1.0 + resolve-from: 5.0.0 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + '@expo/image-utils@0.8.8': + dependencies: + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + getenv: 2.0.0 + jimp-compact: 0.16.1 + parse-png: 2.1.0 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + semver: 7.7.3 + temp-dir: 2.0.0 + unique-string: 2.0.0 + + '@expo/json-file@10.0.8': + dependencies: + '@babel/code-frame': 7.10.4 + json5: 2.2.3 + + '@expo/metro-config@54.0.13(expo@54.0.31)': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@expo/config': 12.0.13 + '@expo/env': 2.0.8 + '@expo/json-file': 10.0.8 + '@expo/metro': 54.2.0 + '@expo/spawn-async': 1.7.2 + browserslist: 4.28.1 + chalk: 4.1.2 + debug: 4.4.3 + dotenv: 16.4.7 + dotenv-expand: 11.0.7 + getenv: 2.0.0 + glob: 13.0.0 + hermes-parser: 0.29.1 + jsc-safe-url: 0.2.4 + lightningcss: 1.30.2 + minimatch: 9.0.5 + postcss: 8.4.49 + resolve-from: 5.0.0 + optionalDependencies: + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@expo/metro-runtime@6.1.2(expo@54.0.31)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + dependencies: + anser: 1.4.10 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0) + stacktrace-parser: 0.1.11 + whatwg-fetch: 3.6.20 + optionalDependencies: + react-dom: 19.1.0(react@19.1.0) + + '@expo/metro@54.2.0': + dependencies: + metro: 0.83.3 + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-config: 0.83.3 + metro-core: 0.83.3 + metro-file-map: 0.83.3 + metro-minify-terser: 0.83.3 + metro-resolver: 0.83.3 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 + metro-symbolicate: 0.83.3 + metro-transform-plugins: 0.83.3 + metro-transform-worker: 0.83.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@expo/osascript@2.3.8': + dependencies: + '@expo/spawn-async': 1.7.2 + exec-async: 2.2.0 + + '@expo/package-manager@1.9.9': + dependencies: + '@expo/json-file': 10.0.8 + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + npm-package-arg: 11.0.3 + ora: 3.4.0 + resolve-workspace-root: 2.0.1 + + '@expo/plist@0.4.8': + dependencies: + '@xmldom/xmldom': 0.8.11 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + + '@expo/prebuild-config@54.0.8(expo@54.0.31)': + dependencies: + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/config-types': 54.0.10 + '@expo/image-utils': 0.8.8 + '@expo/json-file': 10.0.8 + '@react-native/normalize-colors': 0.81.5 + debug: 4.4.3 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + resolve-from: 5.0.0 + semver: 7.7.3 + xml2js: 0.6.0 + transitivePeerDependencies: + - supports-color + + '@expo/schema-utils@0.1.8': {} + + '@expo/sdk-runtime-versions@1.0.0': {} + + '@expo/spawn-async@1.7.2': + dependencies: + cross-spawn: 7.0.6 + + '@expo/sudo-prompt@9.3.2': {} + + '@expo/vector-icons@15.0.3(expo-font@14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + dependencies: + expo-font: 14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + + '@expo/ws-tunnel@1.0.6': {} + + '@expo/xcpretty@4.3.2': + dependencies: + '@babel/code-frame': 7.10.4 + chalk: 4.1.2 + find-up: 5.0.0 + js-yaml: 4.1.1 + + '@faker-js/faker@10.2.0': {} + + '@fastify/accept-negotiator@2.0.1': {} + + '@fastify/ajv-compiler@4.0.5': + dependencies: + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + fast-uri: 3.1.0 + + '@fastify/busboy@3.2.0': {} + + '@fastify/cors@11.2.0': + dependencies: + fastify-plugin: 5.1.0 + toad-cache: 3.7.0 + + '@fastify/deepmerge@3.1.0': {} + + '@fastify/error@4.2.0': {} + + '@fastify/fast-json-stringify-compiler@5.0.3': + dependencies: + fast-json-stringify: 6.1.1 + + '@fastify/forwarded@3.0.1': {} + + '@fastify/jwt@10.0.0': + dependencies: + '@fastify/error': 4.2.0 + '@lukeed/ms': 2.0.2 + fast-jwt: 6.1.0 + fastify-plugin: 5.1.0 + steed: 1.1.3 + + '@fastify/merge-json-schemas@0.2.1': + dependencies: + dequal: 2.0.3 + + '@fastify/multipart@9.3.0': + dependencies: + '@fastify/busboy': 3.2.0 '@fastify/deepmerge': 3.1.0 '@fastify/error': 4.2.0 fastify-plugin: 5.1.0 @@ -10418,8 +12709,75 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + + '@isaacs/ttlcache@1.4.1': {} + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.2 + resolve-from: 5.0.0 + '@istanbuljs/schema@0.1.3': {} + '@jest/create-cache-key-function@29.7.0': + dependencies: + '@jest/types': 29.6.3 + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 25.0.3 + jest-mock: 29.7.0 + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 25.0.3 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.28.5 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 25.0.3 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -10432,6 +12790,11 @@ snapshots: '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/sourcemap-codec@1.5.5': {} '@jridgewell/trace-mapping@0.3.31': @@ -10831,6 +13194,18 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(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.7)(react@19.2.3) @@ -10843,6 +13218,12 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.7)(react@19.2.3)': dependencies: react: 19.2.3 @@ -10863,6 +13244,12 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-context@1.1.2(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-context@1.1.2(@types/react@19.2.7)(react@19.2.3)': dependencies: react: 19.2.3 @@ -10875,6 +13262,28 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0) + aria-hidden: 1.2.6 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.7.2(@types/react@19.1.17)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -10897,12 +13306,31 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-direction@1.1.1(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-direction@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: '@types/react': 19.2.7 + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -10931,12 +13359,29 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.7)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: '@types/react': 19.2.7 + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(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.7)(react@19.2.3) @@ -10969,6 +13414,13 @@ snapshots: dependencies: react: 19.2.3 + '@radix-ui/react-id@1.1.1(@types/react@19.1.17)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-id@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) @@ -11092,6 +13544,16 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(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.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -11102,6 +13564,16 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(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.7)(react@19.2.3) @@ -11112,6 +13584,15 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(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.7)(react@19.2.3) @@ -11158,6 +13639,23 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -11249,6 +13747,20 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-slot@1.2.0(@types/react@19.1.17)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-slot@1.2.3(@types/react@19.1.17)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-slot@1.2.3(@types/react@19.2.7)(react@19.2.3)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) @@ -11278,6 +13790,22 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -11360,12 +13888,26 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: '@types/react': 19.2.7 + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.17)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.7)(react@19.2.3)': dependencies: '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.7)(react@19.2.3) @@ -11374,6 +13916,13 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.17)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.7)(react@19.2.3)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) @@ -11381,6 +13930,13 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.17)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) @@ -11395,6 +13951,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: react: 19.2.3 @@ -11556,36 +14118,220 @@ snapshots: dependencies: react: 19.2.3 - '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.7)(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 - immer: 11.1.3 - redux: 5.0.1 - 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.7)(react@19.2.3)(redux@5.0.1) - - '@rolldown/pluginutils@1.0.0-beta.53': {} + '@react-native/assets-registry@0.81.5': {} - '@rollup/pluginutils@5.3.0(rollup@4.54.0)': + '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.28.5)': dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.54.0 - - '@rollup/rollup-android-arm-eabi@4.54.0': - optional: true - - '@rollup/rollup-android-arm64@4.54.0': - optional: true + '@babel/traverse': 7.28.5 + '@react-native/codegen': 0.81.5(@babel/core@7.28.5) + transitivePeerDependencies: + - '@babel/core' + - supports-color - '@rollup/rollup-darwin-arm64@4.54.0': - optional: true + '@react-native/babel-preset@0.81.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-export-default-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) + '@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.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) + react-refresh: 0.14.2 + transitivePeerDependencies: + - supports-color + + '@react-native/codegen@0.81.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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': + dependencies: + '@react-native/dev-middleware': 0.81.5 + debug: 4.4.3 + invariant: 2.2.4 + metro: 0.83.3 + metro-config: 0.83.3 + metro-core: 0.83.3 + semver: 7.7.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@react-native/debugger-frontend@0.81.5': {} + + '@react-native/dev-middleware@0.81.5': + dependencies: + '@isaacs/ttlcache': 1.4.1 + '@react-native/debugger-frontend': 0.81.5 + chrome-launcher: 0.15.2 + chromium-edge-launcher: 0.2.0 + connect: 3.7.0 + debug: 4.4.3 + invariant: 2.2.4 + nullthrows: 1.1.1 + open: 7.4.2 + serve-static: 1.16.3 + ws: 6.2.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@react-native/gradle-plugin@0.81.5': {} + + '@react-native/js-polyfills@0.81.5': {} + + '@react-native/normalize-colors@0.74.89': {} + + '@react-native/normalize-colors@0.81.5': {} + + '@react-native/virtualized-lists@0.81.5(@types/react@19.1.17)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + + '@react-navigation/bottom-tabs@7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-navigation/elements': 2.9.3(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + sf-symbols-typescript: 2.2.0 + transitivePeerDependencies: + - '@react-native-masked-view/masked-view' + + '@react-navigation/core@7.13.7(react@19.1.0)': + dependencies: + '@react-navigation/routers': 7.5.3 + escape-string-regexp: 4.0.0 + fast-deep-equal: 3.1.3 + nanoid: 3.3.11 + query-string: 7.1.3 + react: 19.1.0 + react-is: 19.2.3 + use-latest-callback: 0.2.6(react@19.1.0) + use-sync-external-store: 1.6.0(react@19.1.0) + + '@react-navigation/elements@2.9.3(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-navigation/elements': 2.9.3(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-navigation/core': 7.13.7(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)(@types/react@19.1.17)(react@19.1.0) + use-latest-callback: 0.2.6(react@19.1.0) + + '@react-navigation/routers@7.5.3': + dependencies: + nanoid: 3.3.11 + + '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.7)(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 + immer: 11.1.3 + redux: 5.0.1 + 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.7)(react@19.2.3)(redux@5.0.1) + + '@rolldown/pluginutils@1.0.0-beta.53': {} + + '@rollup/pluginutils@5.3.0(rollup@4.54.0)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.54.0 + + '@rollup/rollup-android-arm-eabi@4.54.0': + optional: true + + '@rollup/rollup-android-arm64@4.54.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.54.0': + optional: true '@rollup/rollup-darwin-x64@4.54.0': optional: true @@ -11669,6 +14415,16 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} + '@sinclair/typebox@0.27.8': {} + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + '@smithy/abort-controller@4.2.7': dependencies: '@smithy/types': 4.11.0 @@ -12497,6 +15253,12 @@ snapshots: '@types/geojson@7946.0.16': {} + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 25.0.3 + + '@types/hammerjs@2.0.46': {} + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 @@ -12505,6 +15267,16 @@ snapshots: dependencies: ioredis: 5.8.2 + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + '@types/json-schema@7.0.15': {} '@types/mdast@4.0.4': @@ -12541,6 +15313,11 @@ snapshots: '@types/nprogress@0.2.3': {} + '@types/react-dom@19.2.3(@types/react@19.1.17)': + dependencies: + '@types/react': 19.1.17 + optional: true + '@types/react-dom@19.2.3(@types/react@19.2.7)': dependencies: '@types/react': 19.2.7 @@ -12552,6 +15329,10 @@ snapshots: '@types/geojson': 7946.0.16 '@types/react': 19.2.7 + '@types/react@19.1.17': + dependencies: + csstype: 3.2.3 + '@types/react@19.2.7': dependencies: csstype: 3.2.3 @@ -12560,6 +15341,8 @@ snapshots: dependencies: '@types/node': 25.0.3 + '@types/stack-utils@2.0.3': {} + '@types/statuses@2.0.6': {} '@types/unist@2.0.11': {} @@ -12570,6 +15353,12 @@ snapshots: '@types/use-sync-external-store@0.0.6': {} + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.35': + dependencies: + '@types/yargs-parser': 21.0.3 + '@types/yauzl@2.10.3': dependencies: '@types/node': 25.0.3 @@ -12582,7 +15371,19 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react@5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': + '@urql/core@5.2.0(graphql@16.12.0)': + dependencies: + '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) + wonka: 6.3.5 + transitivePeerDependencies: + - graphql + + '@urql/exchange-retry@1.3.2(@urql/core@5.2.0(graphql@16.12.0))': + dependencies: + '@urql/core': 5.2.0(graphql@16.12.0) + wonka: 6.3.5 + + '@vitejs/plugin-react@5.1.2(vite@7.3.0(@types/node@25.0.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) @@ -12590,7 +15391,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@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -12607,7 +15408,7 @@ snapshots: magicast: 0.5.1 obug: 2.1.1 tinyrainbow: 3.0.3 - vitest: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -12624,7 +15425,7 @@ snapshots: obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -12637,14 +15438,14 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.16(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.0.16(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.0.16 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.12.7(@types/node@25.0.3)(typescript@5.9.3) - vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@4.0.16': dependencies: @@ -12672,13 +15473,15 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vitest: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/utils@4.0.16': dependencies: '@vitest/pretty-format': 4.0.16 tinyrainbow: 3.0.3 + '@xmldom/xmldom@0.8.11': {} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -12727,12 +15530,24 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + anser@1.4.10: {} + ansi-colors@4.1.3: {} + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@4.1.1: {} + ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -12750,6 +15565,10 @@ snapshots: arg@5.0.2: {} + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + argparse@2.0.1: {} aria-hidden@1.2.6: @@ -12765,6 +15584,8 @@ snapshots: call-bound: 1.0.4 is-array-buffer: 3.0.5 + array-timsort@1.0.3: {} + array-union@2.1.0: {} arraybuffer.prototype.slice@1.0.4: @@ -12777,6 +15598,8 @@ snapshots: get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 + asap@2.0.6: {} + asn1.js@5.4.1: dependencies: bn.js: 4.12.2 @@ -12800,6 +15623,8 @@ snapshots: async-function@1.0.0: {} + async-limiter@1.0.1: {} + asynckit@0.4.0: {} atomic-sleep@1.0.0: {} @@ -12837,6 +15662,36 @@ snapshots: b4a@1.7.3: {} + babel-jest@29.7.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.28.5) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.27.1 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@29.6.3: + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.28.0 + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): dependencies: '@babel/compat-data': 7.28.5 @@ -12861,6 +15716,79 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-react-compiler@1.0.0: + dependencies: + '@babel/types': 7.28.5 + + babel-plugin-react-native-web@0.21.2: {} + + babel-plugin-syntax-hermes-parser@0.29.1: + dependencies: + hermes-parser: 0.29.1 + + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.28.5): + dependencies: + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.5) + transitivePeerDependencies: + - '@babel/core' + + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@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.9(@babel/core@7.28.5)(@babel/runtime@7.28.4)(expo@54.0.31)(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) + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-export-default-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) + '@babel/preset-react': 7.28.5(@babel/core@7.28.5) + '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) + '@react-native/babel-preset': 0.81.5(@babel/core@7.28.5) + babel-plugin-react-compiler: 1.0.0 + babel-plugin-react-native-web: 0.21.2 + babel-plugin-syntax-hermes-parser: 0.29.1 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.5) + debug: 4.4.3 + react-refresh: 0.14.2 + resolve-from: 5.0.0 + optionalDependencies: + '@babel/runtime': 7.28.4 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + transitivePeerDependencies: + - '@babel/core' + - supports-color + + babel-preset-jest@29.6.3(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + bail@2.0.2: {} balanced-match@1.0.2: {} @@ -12912,10 +15840,16 @@ snapshots: bcryptjs@3.0.3: {} + better-opn@3.0.2: + dependencies: + open: 8.4.2 + bidi-js@1.0.3: dependencies: require-from-string: 2.0.2 + big-integer@1.6.52: {} + binary-extensions@2.3.0: {} bn.js@4.12.2: {} @@ -12924,6 +15858,18 @@ snapshots: bowser@2.13.1: {} + bplist-creator@0.1.0: + dependencies: + stream-buffers: 2.2.0 + + bplist-parser@0.3.1: + dependencies: + big-integer: 1.6.52 + + bplist-parser@0.3.2: + dependencies: + big-integer: 1.6.52 + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -12945,6 +15891,10 @@ snapshots: node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + buffer-crc32@0.2.13: {} buffer-from@1.1.2: {} @@ -12959,6 +15909,8 @@ snapshots: esbuild: 0.27.2 load-tsconfig: 0.2.5 + bytes@3.1.2: {} + cac@6.7.14: {} call-bind-apply-helpers@1.0.2: @@ -12984,6 +15936,8 @@ snapshots: camelcase-css@2.0.1: {} + camelcase@5.3.1: {} + camelcase@6.3.0: {} caniuse-lite@1.0.30001762: {} @@ -12994,6 +15948,12 @@ snapshots: chai@6.2.2: {} + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -13050,12 +16010,38 @@ snapshots: dependencies: readdirp: 4.1.2 + chownr@3.0.0: {} + + chrome-launcher@0.15.2: + dependencies: + '@types/node': 25.0.3 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + transitivePeerDependencies: + - supports-color + chromium-bidi@12.0.1(devtools-protocol@0.0.1534754): dependencies: devtools-protocol: 0.0.1534754 mitt: 3.0.1 zod: 3.25.76 + chromium-edge-launcher@0.2.0: + dependencies: + '@types/node': 25.0.3 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + mkdirp: 1.0.4 + rimraf: 3.0.2 + transitivePeerDependencies: + - supports-color + + ci-info@2.0.0: {} + + ci-info@3.9.0: {} + citty@0.1.6: dependencies: consola: 3.4.2 @@ -13066,6 +16052,10 @@ snapshots: classnames@2.5.1: {} + cli-cursor@2.1.0: + dependencies: + restore-cursor: 2.0.0 + cli-cursor@5.0.0: dependencies: restore-cursor: 5.1.0 @@ -13082,6 +16072,8 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clone@1.0.4: {} + clsx@2.1.1: {} cluster-key-slot@1.1.2: {} @@ -13104,12 +16096,28 @@ snapshots: collapse-white-space@2.1.0: {} + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + color-convert@2.0.1: dependencies: color-name: 1.1.4 + color-name@1.1.3: {} + color-name@1.1.4: {} + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.4 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + colorette@2.0.20: {} combined-stream@1.0.8: @@ -13118,6 +16126,8 @@ snapshots: comma-separated-tokens@2.0.3: {} + commander@12.1.0: {} + commander@13.1.0: {} commander@14.0.2: {} @@ -13128,9 +16138,31 @@ snapshots: commander@7.2.0: {} + comment-json@4.5.1: + dependencies: + array-timsort: 1.0.3 + core-util-is: 1.0.3 + esprima: 4.0.1 + compare-versions@6.1.1: {} - concat-map@0.0.1: {} + compressible@2.0.18: + dependencies: + mime-db: 1.54.0 + + compression@1.8.1: + dependencies: + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.1.0 + safe-buffer: 5.2.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + concat-map@0.0.1: {} conf@15.0.2: dependencies: @@ -13148,6 +16180,15 @@ snapshots: confbox@0.2.2: {} + connect@3.7.0: + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + consola@3.4.2: {} content-disposition@1.0.1: {} @@ -13162,6 +16203,8 @@ snapshots: dependencies: browserslist: 4.28.1 + core-util-is@1.0.3: {} + cors@2.8.5: dependencies: object-assign: 4.1.1 @@ -13187,12 +16230,24 @@ snapshots: countup.js@2.9.0: {} + cross-fetch@3.2.0: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + crypto-random-string@2.0.0: {} + + css-in-js-utils@3.1.0: + dependencies: + hyphenate-style-name: 1.1.0 + css-select@5.2.2: dependencies: boolbase: 1.0.0 @@ -13201,6 +16256,11 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 + css-tree@1.1.3: + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + css-tree@2.2.1: dependencies: mdn-data: 2.0.28 @@ -13354,6 +16414,14 @@ snapshots: debounce@2.2.0: {} + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + debug@4.4.3: dependencies: ms: 2.1.3 @@ -13366,14 +16434,24 @@ snapshots: dependencies: character-entities: 2.0.2 + decode-uri-component@0.2.2: {} + + deep-extend@0.6.0: {} + deepmerge@4.3.1: {} + defaults@1.0.4: + dependencies: + clone: 1.0.4 + define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 + define-lazy-prop@2.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -13396,6 +16474,8 @@ snapshots: dequal@2.0.3: {} + destroy@1.2.0: {} + detect-libc@2.1.2: {} detect-node-es@1.1.0: {} @@ -13450,10 +16530,16 @@ snapshots: dotenv-expand: 12.0.3 minimist: 1.2.8 + dotenv-expand@11.0.7: + dependencies: + dotenv: 16.6.1 + dotenv-expand@12.0.3: dependencies: dotenv: 16.6.1 + dotenv@16.4.7: {} + dotenv@16.6.1: {} dotenv@17.2.3: {} @@ -13490,6 +16576,8 @@ snapshots: dependencies: safe-buffer: 5.2.1 + ee-first@1.1.1: {} + electron-to-chromium@1.5.267: {} embla-carousel-react@8.6.0(react@19.2.3): @@ -13510,6 +16598,10 @@ snapshots: emoji-regex@9.2.2: {} + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + encoding-sniffer@0.2.1: dependencies: iconv-lite: 0.6.3 @@ -13546,6 +16638,8 @@ snapshots: entities@6.0.1: {} + env-editor@0.4.2: {} + env-paths@2.2.1: {} env-paths@3.0.0: {} @@ -13554,6 +16648,10 @@ snapshots: dependencies: is-arrayish: 0.2.1 + error-stack-parser@2.1.4: + dependencies: + stackframe: 1.3.4 + es-abstract@1.24.1: dependencies: array-buffer-byte-length: 1.0.2 @@ -13759,6 +16857,10 @@ snapshots: escape-html@1.0.3: {} + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + escape-string-regexp@4.0.0: {} escodegen@2.1.0: @@ -13812,6 +16914,8 @@ snapshots: esutils@2.0.3: {} + etag@1.8.1: {} + event-target-shim@5.0.1: {} eventemitter3@5.0.1: {} @@ -13824,6 +16928,8 @@ snapshots: events@3.3.0: {} + exec-async@2.2.0: {} + execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -13838,6 +16944,215 @@ snapshots: expect-type@1.3.0: {} + expo-asset@12.0.12(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + dependencies: + '@expo/image-utils': 0.8.8 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + transitivePeerDependencies: + - supports-color + + expo-constants@18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)): + dependencies: + '@expo/config': 12.0.13 + '@expo/env': 2.0.8 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + transitivePeerDependencies: + - supports-color + + expo-dev-client@6.0.20(expo@54.0.31): + dependencies: + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-dev-launcher: 6.0.20(expo@54.0.31) + expo-dev-menu: 7.0.18(expo@54.0.31) + expo-dev-menu-interface: 2.0.0(expo@54.0.31) + expo-manifests: 1.0.10(expo@54.0.31) + expo-updates-interface: 2.0.0(expo@54.0.31) + transitivePeerDependencies: + - supports-color + + expo-dev-launcher@6.0.20(expo@54.0.31): + dependencies: + ajv: 8.17.1 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-dev-menu: 7.0.18(expo@54.0.31) + expo-manifests: 1.0.10(expo@54.0.31) + transitivePeerDependencies: + - supports-color + + expo-dev-menu-interface@2.0.0(expo@54.0.31): + dependencies: + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + + expo-dev-menu@7.0.18(expo@54.0.31): + dependencies: + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-dev-menu-interface: 2.0.0(expo@54.0.31) + + expo-file-system@19.0.21(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)): + dependencies: + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + + expo-font@14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + dependencies: + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0) + + expo-json-utils@0.15.0: {} + + expo-keep-awake@15.0.8(expo@54.0.31)(react@19.1.0): + dependencies: + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 19.1.0 + + expo-linking@8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + dependencies: + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) + invariant: 2.2.4 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + transitivePeerDependencies: + - expo + - supports-color + + expo-manifests@1.0.10(expo@54.0.31): + dependencies: + '@expo/config': 12.0.13 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-json-utils: 0.15.0 + transitivePeerDependencies: + - supports-color + + expo-modules-autolinking@3.0.24: + dependencies: + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + commander: 7.2.0 + 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)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0) + + expo-router@6.0.21(eb22c47db85bc856ec4297cb0d259d8e): + dependencies: + '@expo/metro-runtime': 6.1.2(expo@54.0.31)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@expo/schema-utils': 0.1.8 + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-navigation/bottom-tabs': 7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native-stack': 7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + client-only: 0.0.1 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) + expo-linking: 8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-server: 1.0.5 + fast-deep-equal: 3.1.3 + invariant: 2.2.4 + nanoid: 3.3.11 + 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)(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + semver: 7.6.3 + server-only: 0.0.1 + sf-symbols-typescript: 2.2.0 + shallowequal: 1.1.0 + use-latest-callback: 0.2.6(react@19.1.0) + vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(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)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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' + - '@types/react' + - '@types/react-dom' + - supports-color + + expo-server@1.0.5: {} + + expo-splash-screen@31.0.13(expo@54.0.31): + dependencies: + '@expo/prebuild-config': 54.0.8(expo@54.0.31) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + dependencies: + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + + expo-system-ui@6.0.9(expo@54.0.31)(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)(@types/react@19.1.17)(react@19.1.0)): + dependencies: + '@react-native/normalize-colors': 0.81.5 + debug: 4.4.3 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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: + - supports-color + + expo-updates-interface@2.0.0(expo@54.0.31): + dependencies: + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + + expo@54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + dependencies: + '@babel/runtime': 7.28.4 + '@expo/cli': 54.0.21(expo-router@6.0.21)(expo@54.0.31)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@expo/fingerprint': 0.15.4 + '@expo/metro': 54.2.0 + '@expo/metro-config': 54.0.13(expo@54.0.31) + '@expo/vector-icons': 15.0.3(expo-font@14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@ungap/structured-clone': 1.3.0 + babel-preset-expo: 54.0.9(@babel/core@7.28.5)(@babel/runtime@7.28.4)(expo@54.0.31)(react-refresh@0.14.2) + expo-asset: 12.0.12(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) + expo-file-system: 19.0.21(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) + expo-font: 14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-keep-awake: 15.0.8(expo@54.0.31)(react@19.1.0) + expo-modules-autolinking: 3.0.24 + expo-modules-core: 3.0.29(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(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.31)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - expo-router + - graphql + - supports-color + - utf-8-validate + + exponential-backoff@3.1.3: {} + exsolve@1.0.8: {} extend@3.0.2: {} @@ -13868,6 +17183,8 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: {} + fast-json-stringify@6.1.1: dependencies: '@fastify/merge-json-schemas': 0.2.1 @@ -13950,6 +17267,24 @@ snapshots: reusify: 1.1.0 xtend: 4.0.2 + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fbjs-css-vars@1.0.2: {} + + fbjs@3.0.5: + dependencies: + cross-fetch: 3.2.0 + fbjs-css-vars: 1.0.2 + loose-envify: 1.4.0 + object-assign: 4.1.1 + promise: 7.3.1 + setimmediate: 1.0.5 + ua-parser-js: 1.0.41 + transitivePeerDependencies: + - encoding + fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -13974,12 +17309,31 @@ snapshots: dependencies: to-regex-range: 5.0.1 + filter-obj@1.1.0: {} + + finalhandler@1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + find-my-way@9.4.0: dependencies: fast-deep-equal: 3.1.3 fast-querystring: 1.1.2 safe-regex2: 5.0.0 + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -13993,8 +17347,12 @@ snapshots: flatted@3.3.3: {} + flow-enums-runtime@0.0.6: {} + follow-redirects@1.15.11: {} + fontfaceobserver@2.3.0: {} + for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -14023,12 +17381,18 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) + freeport-async@2.0.0: {} + + fresh@0.5.2: {} + fs-extra@11.3.3: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.0 universalify: 2.0.1 + fs.realpath@1.0.0: {} + fsevents@2.3.3: optional: true @@ -14068,6 +17432,8 @@ snapshots: get-nonce@1.0.1: {} + get-package-type@0.1.0: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -14097,6 +17463,8 @@ snapshots: transitivePeerDependencies: - supports-color + getenv@2.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -14120,6 +17488,19 @@ snapshots: minipass: 7.1.2 path-scurry: 2.0.1 + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global-dirs@0.1.1: + dependencies: + ini: 1.3.8 + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -14148,6 +17529,8 @@ snapshots: has-bigints@1.1.0: {} + has-flag@3.0.0: {} + has-flag@4.0.0: {} has-property-descriptors@1.0.2: @@ -14217,6 +17600,26 @@ snapshots: help-me@5.0.0: {} + hermes-estree@0.29.1: {} + + hermes-estree@0.32.0: {} + + hermes-parser@0.29.1: + dependencies: + hermes-estree: 0.29.1 + + hermes-parser@0.32.0: + dependencies: + hermes-estree: 0.32.0 + + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 19.2.3 + + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + html-encoding-sniffer@6.0.0: dependencies: '@exodus/bytes': 1.8.0 @@ -14279,6 +17682,8 @@ snapshots: human-signals@2.1.0: {} + hyphenate-style-name@1.1.0: {} + i18next@25.7.3(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.4 @@ -14293,6 +17698,10 @@ snapshots: ignore@5.3.2: {} + image-size@1.2.1: + dependencies: + queue: 6.0.2 + immer@10.2.0: {} immer@11.1.3: {} @@ -14304,12 +17713,25 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 + imurmurhash@0.1.4: {} + inflected@2.1.0: {} + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + inherits@2.0.4: {} + ini@1.3.8: {} + inline-style-parser@0.2.7: {} + inline-style-prefixer@7.0.1: + 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): dependencies: react: 19.2.3 @@ -14325,6 +17747,10 @@ snapshots: internmap@2.0.3: {} + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + ioredis-mock@8.13.1(@types/ioredis-mock@8.2.6(ioredis@5.8.2))(ioredis@5.8.2): dependencies: '@ioredis/as-callback': 3.0.0 @@ -14368,6 +17794,8 @@ snapshots: is-arrayish@0.2.1: {} + is-arrayish@0.3.4: {} + is-async-function@2.1.1: dependencies: async-function: 1.0.0 @@ -14408,6 +17836,8 @@ snapshots: is-decimal@2.0.1: {} + is-docker@2.2.1: {} + is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -14496,12 +17926,26 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + isarray@2.0.5: {} isexe@2.0.0: {} istanbul-lib-coverage@3.2.2: {} + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.28.5 @@ -14535,6 +17979,80 @@ snapshots: dependencies: '@isaacs/cliui': 8.0.2 + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 25.0.3 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 25.0.3 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 25.0.3 + jest-util: 29.7.0 + + jest-regex-util@29.6.3: {} + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 25.0.3 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + jest-worker@29.7.0: + dependencies: + '@types/node': 25.0.3 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jimp-compact@0.16.1: {} + jiti@1.21.7: {} jiti@2.4.2: {} @@ -14551,10 +18069,17 @@ snapshots: js-tokens@9.0.1: {} + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + js-yaml@4.1.1: dependencies: argparse: 2.0.1 + jsc-safe-url@0.2.4: {} + jsdom@27.4.0: dependencies: '@acemir/cssom': 0.9.30 @@ -14627,6 +18152,8 @@ snapshots: kleur@3.0.3: {} + lan-network@0.1.7: {} + leac@0.6.0: {} leven@3.1.0: {} @@ -14637,6 +18164,62 @@ snapshots: process-warning: 4.0.1 set-cookie-parser: 2.7.2 + lighthouse-logger@1.4.2: + dependencies: + debug: 2.6.9 + marky: 1.3.0 + transitivePeerDependencies: + - supports-color + + lightningcss-android-arm64@1.30.2: + optional: true + + lightningcss-darwin-arm64@1.30.2: + optional: true + + lightningcss-darwin-x64@1.30.2: + optional: true + + lightningcss-freebsd-x64@1.30.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.2: + optional: true + + lightningcss-linux-arm64-gnu@1.30.2: + optional: true + + lightningcss-linux-arm64-musl@1.30.2: + optional: true + + lightningcss-linux-x64-gnu@1.30.2: + optional: true + + lightningcss-linux-x64-musl@1.30.2: + optional: true + + lightningcss-win32-arm64-msvc@1.30.2: + optional: true + + lightningcss-win32-x64-msvc@1.30.2: + optional: true + + lightningcss@1.30.2: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.30.2 + lightningcss-darwin-arm64: 1.30.2 + lightningcss-darwin-x64: 1.30.2 + lightningcss-freebsd-x64: 1.30.2 + lightningcss-linux-arm-gnueabihf: 1.30.2 + lightningcss-linux-arm64-gnu: 1.30.2 + lightningcss-linux-arm64-musl: 1.30.2 + lightningcss-linux-x64-gnu: 1.30.2 + lightningcss-linux-x64-musl: 1.30.2 + lightningcss-win32-arm64-msvc: 1.30.2 + lightningcss-win32-x64-msvc: 1.30.2 + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -14649,6 +18232,10 @@ snapshots: localstack@1.0.0: {} + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -14663,6 +18250,8 @@ snapshots: lodash.omitby@4.6.0: {} + lodash.throttle@4.1.1: {} + lodash.topath@4.5.2: {} lodash.uniq@4.5.0: {} @@ -14673,6 +18262,10 @@ snapshots: lodash@4.17.21: {} + log-symbols@2.2.0: + dependencies: + chalk: 2.4.2 + log-symbols@6.0.0: dependencies: chalk: 5.6.2 @@ -14697,6 +18290,8 @@ snapshots: dependencies: tslib: 2.8.1 + lru-cache@10.4.3: {} + lru-cache@11.2.4: {} lru-cache@5.1.1: @@ -14731,6 +18326,10 @@ snapshots: dependencies: semver: 7.7.3 + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + markdown-extensions@2.0.0: {} markdown-it@14.1.0: @@ -14744,6 +18343,8 @@ snapshots: marked@15.0.12: {} + marky@1.3.0: {} + math-intrinsics@1.1.0: {} mdast-util-from-markdown@2.0.2: @@ -14845,6 +18446,8 @@ snapshots: dependencies: '@types/mdast': 4.0.4 + mdn-data@2.0.14: {} + mdn-data@2.0.28: {} mdn-data@2.0.30: {} @@ -14853,10 +18456,189 @@ snapshots: mdurl@2.0.0: {} + memoize-one@5.2.1: {} + + memoize-one@6.0.0: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} + metro-babel-transformer@0.83.3: + dependencies: + '@babel/core': 7.28.5 + flow-enums-runtime: 0.0.6 + hermes-parser: 0.32.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-cache-key@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-cache@0.83.3: + dependencies: + exponential-backoff: 3.1.3 + flow-enums-runtime: 0.0.6 + https-proxy-agent: 7.0.6 + metro-core: 0.83.3 + transitivePeerDependencies: + - supports-color + + metro-config@0.83.3: + dependencies: + connect: 3.7.0 + flow-enums-runtime: 0.0.6 + jest-validate: 29.7.0 + metro: 0.83.3 + metro-cache: 0.83.3 + metro-core: 0.83.3 + metro-runtime: 0.83.3 + yaml: 2.8.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro-core@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + lodash.throttle: 4.1.1 + metro-resolver: 0.83.3 + + metro-file-map@0.83.3: + dependencies: + debug: 4.4.3 + fb-watchman: 2.0.2 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + invariant: 2.2.4 + jest-worker: 29.7.0 + micromatch: 4.0.8 + nullthrows: 1.1.1 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + + metro-minify-terser@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + terser: 5.44.1 + + metro-resolver@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-runtime@0.83.3: + dependencies: + '@babel/runtime': 7.28.4 + flow-enums-runtime: 0.0.6 + + metro-source-map@0.83.3: + dependencies: + '@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 + nullthrows: 1.1.1 + ob1: 0.83.3 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-symbolicate@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-source-map: 0.83.3 + nullthrows: 1.1.1 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-transform-plugins@0.83.3: + dependencies: + '@babel/core': 7.28.5 + '@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: + - supports-color + + metro-transform-worker@0.83.3: + dependencies: + '@babel/core': 7.28.5 + '@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 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-minify-terser: 0.83.3 + metro-source-map: 0.83.3 + metro-transform-plugins: 0.83.3 + nullthrows: 1.1.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro@0.83.3: + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/core': 7.28.5 + '@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 + connect: 3.7.0 + debug: 4.4.3 + error-stack-parser: 2.1.4 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + hermes-parser: 0.32.0 + image-size: 1.2.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + lodash.throttle: 4.1.1 + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-config: 0.83.3 + metro-core: 0.83.3 + metro-file-map: 0.83.3 + metro-resolver: 0.83.3 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 + metro-symbolicate: 0.83.3 + metro-transform-plugins: 0.83.3 + metro-transform-worker: 0.83.3 + mime-types: 2.1.35 + nullthrows: 1.1.1 + serialize-error: 2.1.0 + source-map: 0.5.7 + throat: 5.0.0 + ws: 7.5.10 + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + micro-cors@0.1.1: {} micromark-core-commonmark@2.0.3: @@ -15082,8 +18864,12 @@ snapshots: dependencies: mime-db: 1.54.0 + mime@1.6.0: {} + mime@3.0.0: {} + mimic-fn@1.2.0: {} + mimic-fn@2.1.0: {} mimic-function@5.0.1: {} @@ -15110,8 +18896,14 @@ snapshots: minipass@7.1.2: {} + minizlib@3.1.0: + dependencies: + minipass: 7.1.2 + mitt@3.0.1: {} + mkdirp@1.0.4: {} + mlly@1.8.0: dependencies: acorn: 8.15.0 @@ -15131,6 +18923,8 @@ snapshots: mrmime@2.0.1: {} + ms@2.0.0: {} + ms@2.1.3: {} msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3): @@ -15168,19 +18962,37 @@ snapshots: nanoid@3.3.11: {} + nativewind@4.1.23(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17): + dependencies: + comment-json: 4.5.1 + debug: 4.4.3 + react-native-css-interop: 0.1.22(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17) + tailwindcss: 3.4.17 + transitivePeerDependencies: + - react + - react-native + - react-native-reanimated + - react-native-safe-area-context + - react-native-svg + - supports-color + negotiator@0.6.3: {} + negotiator@0.6.4: {} + negotiator@1.0.0: {} + nested-error-stacks@2.0.1: {} + netmask@2.0.2: {} - next-auth@4.24.13(next@16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next-auth@4.24.13(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@babel/runtime': 7.28.4 '@panva/hkdf': 1.2.1 cookie: 0.7.2 jose: 4.15.9 - next: 16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) oauth: 0.9.15 openid-client: 5.7.1 preact: 10.28.1 @@ -15194,13 +19006,13 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - next-view-transitions@0.3.5(next@16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next-view-transitions@0.3.5(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - next: 16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(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) - next@16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next@16.1.1(@babel/core@7.28.5)(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.1 '@swc/helpers': 0.5.15 @@ -15219,14 +19031,15 @@ snapshots: '@next/swc-linux-x64-musl': 16.1.1 '@next/swc-win32-arm64-msvc': 16.1.1 '@next/swc-win32-x64-msvc': 16.1.1 + babel-plugin-react-compiler: 1.0.0 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - nextjs-toploader@3.9.17(next@16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + nextjs-toploader@3.9.17(next@16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - next: 16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nprogress: 0.2.0 prop-types: 15.8.1 react: 19.2.3 @@ -15257,6 +19070,10 @@ snapshots: dependencies: whatwg-url: 5.0.0 + node-forge@1.3.3: {} + + node-int64@0.4.0: {} + node-readfiles@0.2.0: dependencies: es6-promise: 3.3.1 @@ -15267,6 +19084,13 @@ snapshots: normalize-wheel@1.0.1: {} + npm-package-arg@11.0.3: + dependencies: + hosted-git-info: 7.0.2 + proc-log: 4.2.0 + semver: 7.7.3 + validate-npm-package-name: 5.0.1 + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -15277,16 +19101,18 @@ snapshots: dependencies: boolbase: 1.0.0 + nullthrows@1.1.1: {} + number-flow@0.5.8: dependencies: esm-env: 1.2.2 - nuqs@2.8.6(next@16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3): + nuqs@2.8.6(next@16.1.1(@babel/core@7.28.5)(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.3 optionalDependencies: - next: 16.1.1(@babel/core@7.28.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nypm@0.6.2: dependencies: @@ -15329,6 +19155,10 @@ snapshots: oauth@0.9.15: {} + ob1@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + object-assign@4.1.1: {} object-hash@2.2.0: {} @@ -15356,10 +19186,24 @@ snapshots: on-exit-leak-free@2.1.2: {} + on-finished@2.3.0: + dependencies: + ee-first: 1.1.1 + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.1.0: {} + once@1.4.0: dependencies: wrappy: 1.0.2 + onetime@2.0.1: + dependencies: + mimic-fn: 1.2.0 + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 @@ -15368,6 +19212,17 @@ snapshots: dependencies: mimic-function: 5.0.1 + open@7.4.2: + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + openai@6.15.0(ws@8.18.3)(zod@4.3.5): optionalDependencies: ws: 8.18.3 @@ -15388,6 +19243,15 @@ snapshots: object-hash: 2.2.0 oidc-token-hash: 5.2.0 + ora@3.4.0: + dependencies: + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-spinners: 2.9.2 + log-symbols: 2.2.0 + strip-ansi: 5.2.0 + wcwidth: 1.0.1 + ora@8.2.0: dependencies: chalk: 5.6.2 @@ -15444,14 +19308,24 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + p-locate@5.0.0: dependencies: p-limit: 3.1.0 + p-try@2.2.0: {} + pac-proxy-agent@7.2.0: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 @@ -15493,6 +19367,10 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-png@2.1.0: + dependencies: + pngjs: 3.4.0 + parse5-htmlparser2-tree-adapter@7.1.0: dependencies: domhandler: 5.0.3 @@ -15515,8 +19393,12 @@ snapshots: leac: 0.6.0 peberminta: 0.9.0 + parseurl@1.3.3: {} + path-exists@4.0.0: {} + path-is-absolute@1.0.1: {} + path-key@3.1.1: {} path-parse@1.0.7: {} @@ -15542,6 +19424,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@3.0.1: {} + picomatch@4.0.3: {} pify@2.3.0: {} @@ -15600,6 +19484,14 @@ snapshots: exsolve: 1.0.8 pathe: 2.0.3 + plist@3.1.0: + dependencies: + '@xmldom/xmldom': 0.8.11 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + + pngjs@3.4.0: {} + pony-cause@1.1.1: {} possible-typed-array-names@1.1.0: {} @@ -15616,6 +19508,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 + postcss-load-config@4.0.2(postcss@8.5.6): + dependencies: + lilconfig: 3.1.3 + yaml: 2.8.2 + optionalDependencies: + postcss: 8.5.6 + 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 @@ -15657,6 +19556,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.4.49: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -15674,22 +19579,40 @@ snapshots: prettier@3.7.4: {} + pretty-bytes@5.6.0: {} + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 19.2.3 + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 19.2.3 + pretty-format@3.8.0: {} prismjs@1.30.0: {} + proc-log@4.2.0: {} + process-warning@4.0.1: {} process-warning@5.0.0: {} progress@2.0.3: {} + promise@7.3.1: + dependencies: + asap: 2.0.6 + + promise@8.3.0: + dependencies: + asap: 2.0.6 + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -15761,16 +19684,38 @@ snapshots: - typescript - utf-8-validate + qrcode-terminal@0.11.0: {} + qs@6.14.1: dependencies: - side-channel: 1.1.0 + side-channel: 1.1.0 + + query-string@7.1.3: + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 querystringify@2.2.0: {} queue-microtask@1.2.3: {} + queue@6.0.2: + dependencies: + inherits: 2.0.4 + quick-format-unescaped@4.0.4: {} + range-parser@1.2.1: {} + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + react-confetti@6.4.0(react@19.2.3): dependencies: react: 19.2.3 @@ -15792,6 +19737,19 @@ snapshots: date-fns-jalali: 4.1.0-0 react: 19.2.3 + react-devtools-core@6.1.5: + dependencies: + shell-quote: 1.8.3 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + react-dom@19.1.0(react@19.1.0): + dependencies: + react: 19.1.0 + scheduler: 0.26.0 + react-dom@19.2.3(react@19.2.3): dependencies: react: 19.2.3 @@ -15828,6 +19786,12 @@ snapshots: - supports-color - utf-8-validate + react-fast-compare@3.2.2: {} + + react-freeze@1.0.4(react@19.1.0): + dependencies: + react: 19.1.0 + react-hook-form@7.70.0(react@19.2.3): dependencies: react: 19.2.3 @@ -15855,6 +19819,148 @@ snapshots: dependencies: react: 19.2.3 + react-native-css-interop@0.1.22(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17): + dependencies: + '@babel/helper-module-imports': 7.27.1 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + debug: 4.4.3 + lightningcss: 1.30.2 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + semver: 7.7.3 + tailwindcss: 3.4.17 + optionalDependencies: + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-svg: 15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0) + + react-native-is-edge-to-edge@1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + dependencies: + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + dependencies: + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + + react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + warn-once: 0.1.1 + + react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(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.4 + '@react-native/normalize-colors': 0.74.89 + fbjs: 3.0.5 + inline-style-prefixer: 7.0.1 + memoize-one: 6.0.0 + nullthrows: 1.1.1 + postcss-value-parser: 4.2.0 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + styleq: 0.1.3 + transitivePeerDependencies: + - encoding + + react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) + '@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)(@types/react@19.1.17)(react@19.1.0) + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + + react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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/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.1.17)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + babel-jest: 29.7.0(@babel/core@7.28.5) + babel-plugin-syntax-hermes-parser: 0.29.1 + base64-js: 1.5.1 + commander: 12.1.0 + flow-enums-runtime: 0.0.6 + glob: 7.2.3 + invariant: 2.2.4 + jest-environment-node: 29.7.0 + memoize-one: 5.2.1 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 + nullthrows: 1.1.1 + pretty-format: 29.7.0 + promise: 8.3.0 + react: 19.1.0 + react-devtools-core: 6.1.5 + react-refresh: 0.14.2 + regenerator-runtime: 0.13.11 + scheduler: 0.26.0 + semver: 7.7.3 + stacktrace-parser: 0.1.11 + whatwg-fetch: 3.6.20 + ws: 6.2.3 + yargs: 17.7.2 + optionalDependencies: + '@types/react': 19.1.17 + transitivePeerDependencies: + - '@babel/core' + - '@react-native-community/cli' + - '@react-native/metro-config' + - bufferutil + - supports-color + - utf-8-validate + react-redux@9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.6 @@ -15864,8 +19970,18 @@ snapshots: '@types/react': 19.2.7 redux: 5.0.1 + react-refresh@0.14.2: {} + react-refresh@0.18.0: {} + react-remove-scroll-bar@2.3.8(@types/react@19.1.17)(react@19.1.0): + dependencies: + react: 19.1.0 + react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.0) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.17 + react-remove-scroll-bar@2.3.8(@types/react@19.2.7)(react@19.2.3): dependencies: react: 19.2.3 @@ -15874,6 +19990,17 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 + react-remove-scroll@2.7.2(@types/react@19.1.17)(react@19.1.0): + dependencies: + react: 19.1.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.1.17)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.1.17)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.17)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + react-remove-scroll@2.7.2(@types/react@19.2.7)(react@19.2.3): dependencies: react: 19.2.3 @@ -15900,6 +20027,14 @@ snapshots: react-dom: 19.2.3(react@19.2.3) topojson-client: 3.1.0 + react-style-singleton@2.2.3(@types/react@19.1.17)(react@19.1.0): + dependencies: + get-nonce: 1.0.1 + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.17 + react-style-singleton@2.2.3(@types/react@19.2.7)(react@19.2.3): dependencies: get-nonce: 1.0.1 @@ -15915,6 +20050,8 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) + react@19.1.0: {} + react@19.2.3: {} read-cache@1.0.0: @@ -16017,6 +20154,8 @@ snapshots: regenerate@1.4.2: {} + regenerator-runtime@0.13.11: {} + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -16077,6 +20216,12 @@ snapshots: require-from-string@2.0.2: {} + requireg@0.2.2: + dependencies: + nested-error-stacks: 2.0.1 + rc: 1.2.8 + resolve: 1.7.1 + requires-port@1.0.0: {} reselect@5.1.1: {} @@ -16091,14 +20236,31 @@ snapshots: resolve-from@5.0.0: {} + resolve-global@1.0.0: + dependencies: + global-dirs: 0.1.1 + resolve-pkg-maps@1.0.0: {} + resolve-workspace-root@2.0.1: {} + + resolve.exports@2.0.3: {} + resolve@1.22.11: 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 + + restore-cursor@2.0.0: + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + restore-cursor@5.1.0: dependencies: onetime: 7.0.0 @@ -16112,6 +20274,10 @@ snapshots: rfdc@1.4.1: {} + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + rollup@4.54.0: dependencies: '@types/estree': 1.0.8 @@ -16181,6 +20347,8 @@ snapshots: dependencies: xmlchars: 2.2.0 + scheduler@0.26.0: {} + scheduler@0.27.0: {} secure-json-parse@4.1.0: {} @@ -16191,8 +20359,43 @@ snapshots: semver@6.3.1: {} + semver@7.6.3: {} + + semver@7.7.2: {} + semver@7.7.3: {} + send@0.19.2: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.1 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serialize-error@2.1.0: {} + + serve-static@1.16.3: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.2 + transitivePeerDependencies: + - supports-color + + server-only@0.0.1: {} + set-cookie-parser@2.7.2: {} set-function-length@1.2.2: @@ -16217,8 +20420,14 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 + setimmediate@1.0.5: {} + setprototypeof@1.2.0: {} + sf-symbols-typescript@2.2.0: {} + + shallowequal@1.1.0: {} + sharp@0.34.5: dependencies: '@img/colour': 1.0.0 @@ -16256,6 +20465,8 @@ snapshots: shebang-regex@3.0.0: {} + shell-quote@1.8.3: {} + should-equal@2.0.0: dependencies: should-type: 1.4.0 @@ -16320,6 +20531,16 @@ snapshots: dependencies: jsep: 1.4.0 + simple-plist@1.3.1: + dependencies: + bplist-creator: 0.1.0 + bplist-parser: 0.3.1 + plist: 3.1.0 + + simple-swizzle@0.2.4: + dependencies: + is-arrayish: 0.3.4 + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.29 @@ -16343,6 +20564,8 @@ snapshots: slash@3.0.0: {} + slugify@1.6.6: {} + smart-buffer@4.2.0: {} snake-case@3.0.4: @@ -16409,20 +20632,38 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 + source-map@0.5.7: {} + source-map@0.6.1: {} source-map@0.7.6: {} space-separated-tokens@2.0.2: {} + split-on-first@1.1.0: {} + split2@4.2.0: {} + sprintf-js@1.0.3: {} + sprintf-js@1.1.3: {} + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + stackback@0.0.2: {} + stackframe@1.3.4: {} + + stacktrace-parser@0.1.11: + dependencies: + type-fest: 0.7.1 + standard-as-callback@2.1.0: {} + statuses@1.5.0: {} + statuses@2.0.2: {} std-env@3.10.0: {} @@ -16447,6 +20688,8 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + stream-buffers@2.2.0: {} + streamx@2.23.0: dependencies: events-universal: 1.0.1 @@ -16458,6 +20701,8 @@ snapshots: strict-event-emitter@0.5.1: {} + strict-uri-encode@2.0.0: {} + string-argv@0.3.2: {} string-width@4.2.3: @@ -16510,6 +20755,10 @@ snapshots: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 + strip-ansi@5.2.0: + dependencies: + ansi-regex: 4.1.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -16522,6 +20771,8 @@ snapshots: strip-final-newline@2.0.0: {} + strip-json-comments@2.0.1: {} + strip-json-comments@5.0.3: {} stripe@20.1.0(@types/node@25.0.3): @@ -16532,6 +20783,8 @@ snapshots: strnum@2.1.2: {} + structured-headers@0.4.1: {} + stubborn-fs@2.0.0: dependencies: stubborn-utils: 1.0.2 @@ -16553,6 +20806,8 @@ snapshots: optionalDependencies: '@babel/core': 7.28.5 + styleq@0.1.3: {} + sucrase@3.35.1: dependencies: '@jridgewell/gen-mapping': 0.3.13 @@ -16563,10 +20818,23 @@ snapshots: tinyglobby: 0.2.15 ts-interface-checker: 0.1.13 + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-hyperlinks@2.3.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} svg-parser@2.0.4: {} @@ -16632,6 +20900,33 @@ snapshots: dependencies: tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.2) + tailwindcss@3.4.17: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + 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: 4.0.2(postcss@8.5.6) + postcss-nested: 6.2.0(postcss@8.5.6) + postcss-selector-parser: 6.1.2 + resolve: 1.22.11 + sucrase: 3.35.1 + transitivePeerDependencies: + - ts-node + tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2): dependencies: '@alloc/quick-lru': 5.2.0 @@ -16683,6 +20978,34 @@ snapshots: - bare-abort-controller - react-native-b4a + tar@7.5.2: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.1.0 + yallist: 5.0.0 + + temp-dir@2.0.0: {} + + terminal-link@2.1.1: + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + + terser@5.44.1: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + text-decoder@1.2.3: dependencies: b4a: 1.7.3 @@ -16701,6 +21024,8 @@ snapshots: dependencies: real-require: 0.2.0 + throat@5.0.0: {} + tiny-invariant@1.3.3: {} tinybench@2.9.0: {} @@ -16724,6 +21049,8 @@ snapshots: tmp@0.2.5: {} + tmpl@1.0.5: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -16839,6 +21166,12 @@ snapshots: tween-functions@1.2.0: {} + type-detect@4.0.8: {} + + type-fest@0.21.3: {} + + type-fest@0.7.1: {} + type-fest@5.3.1: dependencies: tagged-tag: 1.0.0 @@ -16901,6 +21234,8 @@ snapshots: typescript@5.9.3: {} + ua-parser-js@1.0.41: {} + uc.micro@2.1.0: {} ufo@1.6.1: {} @@ -16918,6 +21253,8 @@ snapshots: undici-types@7.16.0: {} + undici@6.23.0: {} + undici@7.16.0: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -16941,6 +21278,10 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 + unique-string@2.0.0: + dependencies: + crypto-random-string: 2.0.0 + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -16970,6 +21311,8 @@ snapshots: universalify@2.0.1: {} + unpipe@1.0.0: {} + unplugin-swc@1.5.9(@swc/core@1.15.8)(rollup@4.54.0): dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.54.0) @@ -17001,6 +21344,13 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 + use-callback-ref@1.3.3(@types/react@19.1.17)(react@19.1.0): + dependencies: + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.17 + use-callback-ref@1.3.3(@types/react@19.2.7)(react@19.2.3): dependencies: react: 19.2.3 @@ -17008,6 +21358,18 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 + use-latest-callback@0.2.6(react@19.1.0): + dependencies: + react: 19.1.0 + + use-sidecar@1.1.3(@types/react@19.1.17)(react@19.1.0): + dependencies: + detect-node-es: 1.1.0 + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.17 + use-sidecar@1.1.3(@types/react@19.2.7)(react@19.2.3): dependencies: detect-node-es: 1.1.0 @@ -17016,6 +21378,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 + use-sync-external-store@1.6.0(react@19.1.0): + dependencies: + react: 19.1.0 + use-sync-external-store@1.6.0(react@19.2.3): dependencies: react: 19.2.3 @@ -17024,16 +21390,31 @@ snapshots: utility-types@3.11.0: {} + utils-merge@1.0.1: {} + uuid@10.0.0: {} uuid@13.0.0: {} + uuid@7.0.3: {} + uuid@8.3.2: {} + validate-npm-package-name@5.0.1: {} + validator@13.15.26: {} vary@1.1.2: {} + vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -17070,18 +21451,18 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-tsconfig-paths@6.0.3(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)): + vite-tsconfig-paths@6.0.3(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.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 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@25.0.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@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.3.0(@types/node@25.0.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.2 fdir: 6.5.0(picomatch@4.0.3) @@ -17093,13 +21474,15 @@ snapshots: '@types/node': 25.0.3 fsevents: 2.3.3 jiti: 2.6.1 + lightningcss: 1.30.2 + terser: 5.44.1 tsx: 4.21.0 yaml: 2.8.2 - vitest@4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.16 - '@vitest/mocker': 4.0.16(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 4.0.16(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 4.0.16 '@vitest/runner': 4.0.16 '@vitest/snapshot': 4.0.16 @@ -17116,7 +21499,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@25.0.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/node': 25.0.3 @@ -17135,16 +21518,30 @@ snapshots: - tsx - yaml + vlq@1.0.1: {} + void-elements@3.1.0: {} w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + warn-once@0.1.1: {} + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + webdriver-bidi-protocol@0.3.10: {} webidl-conversions@3.0.1: {} + webidl-conversions@5.0.0: {} + webidl-conversions@8.0.1: {} webpack-bundle-analyzer@4.10.1: @@ -17172,8 +21569,16 @@ snapshots: dependencies: iconv-lite: 0.6.3 + whatwg-fetch@3.6.20: {} + whatwg-mimetype@4.0.0: {} + whatwg-url-without-unicode@8.0.0-3: + dependencies: + buffer: 5.6.0 + punycode: 2.3.1 + webidl-conversions: 5.0.0 + whatwg-url@15.1.0: dependencies: tr46: 6.0.0 @@ -17236,6 +21641,8 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + wonka@6.3.5: {} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 @@ -17256,12 +21663,35 @@ snapshots: wrappy@1.0.2: {} + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + ws@6.2.3: + dependencies: + async-limiter: 1.0.1 + ws@7.5.10: {} ws@8.18.3: {} + xcode@3.0.1: + dependencies: + simple-plist: 1.3.1 + uuid: 7.0.3 + xml-name-validator@5.0.0: {} + xml2js@0.6.0: + dependencies: + sax: 1.4.3 + xmlbuilder: 11.0.1 + + xmlbuilder@11.0.1: {} + + xmlbuilder@15.1.1: {} + xmlchars@2.2.0: {} xtend@4.0.2: {} @@ -17272,6 +21702,8 @@ snapshots: yallist@4.0.0: {} + yallist@5.0.0: {} + yaml@1.10.2: {} yaml@2.8.2: {} From a9987eea4f314bcd921d3e585c7127a1a2cedf06 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 10 Jan 2026 11:58:39 -0300 Subject: [PATCH 03/77] feat(ios): add initial iOS app structure and configuration --- IOS_TASKS.md | 1045 ++ apps/ios/.gitignore | 93 + apps/ios/.swiftlint.yml | 50 + .../Plotwist.xcodeproj/project.pbxproj | 329 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 + .../Plotwist/Assets.xcassets/Contents.json | 6 + apps/ios/Plotwist/Plotwist/ContentView.swift | 24 + apps/ios/Plotwist/Plotwist/PlotwistApp.swift | 17 + apps/ios/README.md | 182 + apps/ios/SETUP.md | 191 + apps/mobile/.env.example | 5 - apps/mobile/.gitignore | 41 - apps/mobile/.vscode/extensions.json | 1 - apps/mobile/.vscode/settings.json | 7 - apps/mobile/app.json | 50 - apps/mobile/app/_layout.tsx | 62 - apps/mobile/app/index.tsx | 18 - apps/mobile/assets/images/adaptive-icon.png | Bin 16479 -> 0 bytes apps/mobile/assets/images/favicon.png | Bin 16479 -> 0 bytes apps/mobile/assets/images/icon.png | Bin 16479 -> 0 bytes apps/mobile/assets/images/splash-icon.png | Bin 16479 -> 0 bytes apps/mobile/assets/logo.ts | 8 - apps/mobile/babel.config.js | 13 - apps/mobile/eas.json | 21 - apps/mobile/global.css | 3 - apps/mobile/metro.config.js | 6 - apps/mobile/nativewind-env.d.ts | 1 - apps/mobile/package-lock.json | 10188 ---------------- apps/mobile/package.json | 42 - apps/mobile/tailwind.config.js | 75 - apps/mobile/tsconfig.json | 17 - pnpm-lock.yaml | 2241 ++-- 33 files changed, 3165 insertions(+), 11617 deletions(-) create mode 100644 IOS_TASKS.md create mode 100644 apps/ios/.gitignore create mode 100644 apps/ios/.swiftlint.yml create mode 100644 apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj create mode 100644 apps/ios/Plotwist/Plotwist/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 apps/ios/Plotwist/Plotwist/Assets.xcassets/Contents.json create mode 100644 apps/ios/Plotwist/Plotwist/ContentView.swift create mode 100644 apps/ios/Plotwist/Plotwist/PlotwistApp.swift create mode 100644 apps/ios/README.md create mode 100644 apps/ios/SETUP.md delete mode 100644 apps/mobile/.env.example delete mode 100644 apps/mobile/.gitignore delete mode 100644 apps/mobile/.vscode/extensions.json delete mode 100644 apps/mobile/.vscode/settings.json delete mode 100644 apps/mobile/app.json delete mode 100644 apps/mobile/app/_layout.tsx delete mode 100644 apps/mobile/app/index.tsx delete mode 100644 apps/mobile/assets/images/adaptive-icon.png delete mode 100644 apps/mobile/assets/images/favicon.png delete mode 100644 apps/mobile/assets/images/icon.png delete mode 100644 apps/mobile/assets/images/splash-icon.png delete mode 100644 apps/mobile/assets/logo.ts delete mode 100644 apps/mobile/babel.config.js delete mode 100644 apps/mobile/eas.json delete mode 100644 apps/mobile/global.css delete mode 100644 apps/mobile/metro.config.js delete mode 100644 apps/mobile/nativewind-env.d.ts delete mode 100644 apps/mobile/package-lock.json delete mode 100644 apps/mobile/package.json delete mode 100644 apps/mobile/tailwind.config.js delete mode 100644 apps/mobile/tsconfig.json diff --git a/IOS_TASKS.md b/IOS_TASKS.md new file mode 100644 index 00000000..b3f10c2e --- /dev/null +++ b/IOS_TASKS.md @@ -0,0 +1,1045 @@ +# 📱 Plotwist - Tarefas para App iOS Nativo + +Este documento contém o mapeamento completo das funcionalidades do site web e as tarefas necessárias para criar um aplicativo iOS nativo usando Swift e SwiftUI. + +--- + +## 📋 Índice + +1. [Setup Inicial](#1-setup-inicial) +2. [Autenticação](#2-autenticação) +3. [Navegação](#3-navegação) +4. [Home/Dashboard](#4-homedashboard) +5. [Catálogo de Filmes](#5-catálogo-de-filmes) +6. [Catálogo de Séries](#6-catálogo-de-séries) +7. [Detalhes de Mídia](#7-detalhes-de-mídia) +8. [Sistema de Reviews](#8-sistema-de-reviews) +9. [Listas Personalizadas](#9-listas-personalizadas) +10. [Perfil do Usuário](#10-perfil-do-usuário) +11. [Coleção do Usuário](#11-coleção-do-usuário) +12. [Estatísticas](#12-estatísticas) +13. [Sistema Social](#13-sistema-social) +14. [Busca](#14-busca) +15. [Configurações](#15-configurações) +16. [Internacionalização](#16-internacionalização) +17. [Funcionalidades Premium](#17-funcionalidades-premium) +18. [Importação de Dados](#18-importação-de-dados) + +--- + +## 1. Setup Inicial + +### 1.1 Configuração do Projeto +- [ ] Criar projeto Xcode com SwiftUI +- [ ] Configurar versões mínimas (iOS 16+) +- [ ] Configurar SwiftLint para linting +- [ ] Configurar SwiftFormat para formatação +- [ ] Configurar esquemas de build (Debug, Release) +- [ ] Configurar Code Signing & Capabilities + +### 1.2 Gerenciador de Dependências +- [ ] Escolher Swift Package Manager (SPM) como principal +- [ ] Configurar estrutura de dependências + +### 1.3 Dependências Principais +- [ ] **Alamofire** - Requisições HTTP +- [ ] **Kingfisher** - Cache e carregamento de imagens +- [ ] **KeychainAccess** - Armazenamento seguro de tokens +- [ ] **SwiftUIIntrospect** - Acesso a UIKit quando necessário +- [ ] **Lottie** - Animações complexas (opcional) +- [ ] **SwiftUICharts** ou **Charts (Apple)** - Gráficos para estatísticas + +### 1.4 Arquitetura +- [ ] **Padrão MVVM** (Model-View-ViewModel) +- [ ] **Combine** para gerenciamento de estado reativo +- [ ] **async/await** para operações assíncronas +- [ ] **Protocol-oriented programming** para abstrações + +### 1.5 Configuração de Ambiente +- [ ] Criar arquivo de configuração `Configuration.swift` +- [ ] Configurar variáveis: `API_BASE_URL`, `TMDB_API_KEY` +- [ ] Criar diferentes configurações para Debug/Release +- [ ] Usar `xcconfig` files para variáveis de ambiente + +### 1.6 Estrutura de Pastas +``` +Plotwist/ +├── App/ +│ ├── PlottwistApp.swift # Entry point +│ └── AppDelegate.swift # Lifecycle +├── Core/ +│ ├── Network/ # Networking layer +│ │ ├── APIClient.swift +│ │ ├── APIEndpoint.swift +│ │ └── APIError.swift +│ ├── Storage/ # Persistência +│ │ ├── UserDefaults/ +│ │ ├── Keychain/ +│ │ └── CoreData/ (opcional) +│ └── Extensions/ # Swift extensions +├── Models/ # Modelos de dados (Codable) +├── ViewModels/ # ViewModels (ObservableObject) +├── Views/ # SwiftUI Views +│ ├── Auth/ +│ ├── Movies/ +│ ├── Series/ +│ ├── Profile/ +│ ├── Lists/ +│ └── Components/ # Componentes reutilizáveis +├── Services/ # Serviços de negócio +│ ├── AuthService.swift +│ ├── MovieService.swift +│ ├── ReviewService.swift +│ └── ... +├── Utils/ # Utilitários +│ ├── Constants.swift +│ ├── Formatters.swift +│ └── Validators.swift +├── Resources/ +│ ├── Assets.xcassets # Imagens e cores +│ ├── Localizable/ # i18n strings +│ └── Fonts/ +└── Configuration/ + ├── Debug.xcconfig + └── Release.xcconfig +``` + +--- + +## 2. Autenticação + +### 2.1 Views de Auth +- [ ] **LoginView** + - [ ] TextField para login (email ou username) + - [ ] SecureField para senha com botão de toggle + - [ ] Botão de login com loading state + - [ ] NavigationLink para "Esqueci a senha" + - [ ] NavigationLink para cadastro + - [ ] Validação com Property Wrappers + +- [ ] **SignUpView** + - [ ] TextField para username com validação em tempo real + - [ ] TextField para email com validação + - [ ] SecureField para senha (mínimo 8 caracteres) + - [ ] Força da senha visual + - [ ] Toggle de termos de uso + - [ ] Validação inline + +- [ ] **ForgotPasswordView** + - [ ] TextField para email + - [ ] Botão de envio com confirmação + - [ ] Feedback de sucesso/erro + +- [ ] **ResetPasswordView** + - [ ] SecureField para nova senha + - [ ] SecureField para confirmação + - [ ] Validação de token via deep link + +### 2.2 ViewModels +- [ ] **AuthViewModel** + - [ ] `@Published var isAuthenticated: Bool` + - [ ] `@Published var currentUser: User?` + - [ ] `@Published var isLoading: Bool` + - [ ] `@Published var errorMessage: String?` + - [ ] Métodos: `login()`, `signUp()`, `logout()`, `refreshToken()` + +### 2.3 Gerenciamento de Sessão +- [ ] Armazenar JWT no Keychain via KeychainAccess +- [ ] Criar `AuthenticationManager` singleton +- [ ] Implementar auto-refresh de token +- [ ] Implementar logout com limpeza de dados +- [ ] Interceptor Alamofire para adicionar token automaticamente +- [ ] Proteção de rotas com `@EnvironmentObject` + +### 2.4 Biometria (Opcional) +- [ ] Face ID / Touch ID para login rápido +- [ ] LocalAuthentication framework +- [ ] Salvar preferência no UserDefaults + +--- + +## 3. Navegação + +### 3.1 Estrutura de Navegação +- [ ] **TabView Principal** + - [ ] Home + - [ ] Filmes + - [ ] Séries + - [ ] Busca + - [ ] Perfil + +- [ ] **NavigationStack** (iOS 16+) + - [ ] Stack de Autenticação + - [ ] Stack de Filmes (Lista, Detalhes) + - [ ] Stack de Séries (Lista, Detalhes, Temporadas, Episódios) + - [ ] Stack de Listas + - [ ] Stack de Perfil + +### 3.2 Deep Linking +- [ ] Configurar URL Schemes no Info.plist +- [ ] Configurar Universal Links (Associated Domains) +- [ ] Implementar `.onOpenURL()` modifier +- [ ] Rotas: + - [ ] `plotwist://movie/:id` + - [ ] `plotwist://series/:id` + - [ ] `plotwist://list/:id` + - [ ] `plotwist://user/:username` + +### 3.3 Coordenação +- [ ] Criar `Router` ou `Coordinator` para navegação complexa +- [ ] Implementar `NavigationPath` gerenciado + +--- + +## 4. Home/Dashboard + +### 4.1 Componentes da Home +- [ ] **Header** + - [ ] Logo (SF Symbol ou custom) + - [ ] Botão de busca (magnifyingglass.circle) + - [ ] AsyncImage para avatar do usuário + +- [ ] **LastUserReviewSection** + - [ ] Card customizado com última review + - [ ] NavigationLink para o item + - [ ] Skeleton loading + +- [ ] **PopularReviewsSection** + - [ ] ScrollView horizontal com LazyHStack + - [ ] Picker para filtros (hoje, semana, mês, todos) + - [ ] Pull to refresh + - [ ] Infinite scroll com `.onAppear` no último item + +- [ ] **NetworkActivityFeedSection** + - [ ] LazyVStack com atividades + - [ ] Tipos de atividade: + - [ ] Status change + - [ ] Nova review + - [ ] Nova lista + - [ ] Follow/Unfollow + - [ ] Episódios assistidos + - [ ] Likes + +- [ ] **SidebarPopularMovies** (iPad) + - [ ] Grid 3x1 de posters + - [ ] NavigationLink para lista completa + +- [ ] **SidebarPopularSeries** (iPad) + - [ ] Grid 3x1 de posters + - [ ] NavigationLink para lista completa + +### 4.2 ViewModel +- [ ] **HomeViewModel** + - [ ] Carregar dados em paralelo com `async let` + - [ ] Gerenciar estados de loading/error + - [ ] Pagination para reviews + +--- + +## 5. Catálogo de Filmes + +### 5.1 Views de Listagem +- [ ] **PopularMoviesView** + - [ ] LazyVGrid com posters + - [ ] Pull to refresh + - [ ] Infinite scroll + - [ ] Skeleton placeholders + +- [ ] **NowPlayingMoviesView** + - [ ] Lista de filmes em cartaz + - [ ] Badge "Em Cartaz" + +- [ ] **UpcomingMoviesView** + - [ ] Lista de lançamentos futuros + - [ ] Data de lançamento em destaque + +- [ ] **TopRatedMoviesView** + - [ ] Lista ordenada por rating + - [ ] Rating TMDB visível + +- [ ] **DiscoverMoviesView** + - [ ] Filtros avançados via Sheet: + - [ ] MultiSelector de gêneros + - [ ] Slider para ano (Date picker range) + - [ ] Slider para nota mínima + - [ ] Picker de ordenação + - [ ] MultiSelector de provedores de streaming + - [ ] Picker de região + +### 5.2 Componentes de Filme +- [ ] **MoviePosterCard** + - [ ] KFImage (Kingfisher) para poster + - [ ] VStack com título, ano, rating + - [ ] Gradient overlay + - [ ] Tap gesture para navegação + +- [ ] **MovieFiltersSheet** + - [ ] Sheet modal com ScrollView + - [ ] GenreChipGrid (FlowLayout) + - [ ] Custom Slider views + - [ ] Date picker para ano + - [ ] Botões "Aplicar" e "Limpar" + +### 5.3 ViewModels +- [ ] **MoviesListViewModel** + - [ ] `@Published var movies: [Movie]` + - [ ] `@Published var filters: MovieFilters` + - [ ] Métodos de fetch com paginação + +--- + +## 6. Catálogo de Séries + +### 6.1 Views de Listagem +- [ ] **PopularSeriesView** + - [ ] LazyVGrid com posters + - [ ] Infinite scroll + +- [ ] **AiringTodaySeriesView** + - [ ] Séries com episódios hoje + - [ ] Badge "Hoje" + +- [ ] **OnTheAirSeriesView** + - [ ] Séries em exibição + - [ ] Status de exibição + +- [ ] **TopRatedSeriesView** + - [ ] Lista ordenada por rating + +- [ ] **DiscoverSeriesView** + - [ ] Mesmos filtros dos filmes + - [ ] Filtro adicional: status (em andamento, finalizada) + +### 6.2 Categorias Especiais +- [ ] **AnimesView** + - [ ] Filtro pré-aplicado para animação japonesa + - [ ] Estilo visual customizado (opcional) + +- [ ] **DoramasView** + - [ ] Filtro pré-aplicado para séries coreanas + +### 6.3 ViewModels +- [ ] **SeriesListViewModel** + - [ ] Similar ao MoviesListViewModel + - [ ] Filtros específicos de séries + +--- + +## 7. Detalhes de Mídia + +### 7.1 MovieDetailView +- [ ] **Header com Backdrop** + - [ ] ZStack com KFImage + - [ ] LinearGradient overlay + - [ ] Botão de voltar customizado + - [ ] Parallax scroll effect (opcional) + +- [ ] **Informações Principais** + - [ ] HStack com poster + info + - [ ] Títulos (original e traduzido) + - [ ] Year, runtime, genres + - [ ] Sinopse expandível com "Ler mais" + - [ ] Rating TMDB com SF Symbols (star.fill) + +- [ ] **Ações do Usuário** + - [ ] Menu de Status (Watchlist, Watching, Watched, Dropped) + - [ ] Botão "Adicionar à Lista" + - [ ] Botão "Escrever Review" + - [ ] Animações de feedback + +- [ ] **Informações Adicionais** + - [ ] Diretor + - [ ] Elenco - ScrollView horizontal + - [ ] Orçamento e Receita formatados + - [ ] Idioma original + - [ ] Países de produção + +- [ ] **TabView para Seções** + - [ ] Reviews do app + - [ ] Elenco completo (List) + - [ ] Galeria de imagens (LazyVGrid) + - [ ] Vídeos (WebView ou Safari) + - [ ] Filmes relacionados (ScrollView) + - [ ] Onde assistir (provedores com logos) + +- [ ] **Seção de Coleção** + - [ ] Se pertence a coleção, exibir outros filmes + - [ ] ScrollView horizontal + +### 7.2 SeriesDetailView +- [ ] Todos os itens de MovieDetailView + +- [ ] **Lista de Temporadas** + - [ ] List ou LazyVStack + - [ ] SeasonCard com número de episódios + - [ ] ProgressView do assistidos + - [ ] NavigationLink para SeasonDetailView + +- [ ] **Progresso Geral** + - [ ] ProgressView customizada + - [ ] Texto "X de Y episódios" + +### 7.3 SeasonDetailView +- [ ] Header com informações da temporada +- [ ] Lista de episódios (List) +- [ ] EpisodeRow com: + - [ ] Thumbnail do episódio + - [ ] Número e título + - [ ] Duração + - [ ] Checkbox de assistido +- [ ] Botão "Marcar todos como assistidos" +- [ ] Picker de navegação entre temporadas + +### 7.4 EpisodeDetailView +- [ ] Banner do episódio +- [ ] Informações (número, título, duração) +- [ ] Sinopse +- [ ] Elenco convidado +- [ ] Toggle de marcar como assistido +- [ ] Seção de review (opcional) +- [ ] Botões de navegação (anterior/próximo) + +### 7.5 PersonDetailView (Ator/Diretor) +- [ ] Header com foto +- [ ] Nome +- [ ] Biografia (Text expandível) +- [ ] Data e local de nascimento +- [ ] Idade calculada +- [ ] Seção de Filmografia: + - [ ] Segmented control (Filmes/Séries) + - [ ] LazyVStack de participações + - [ ] Ordenado por data + +### 7.6 ViewModels +- [ ] **MovieDetailViewModel** +- [ ] **SeriesDetailViewModel** +- [ ] **SeasonDetailViewModel** +- [ ] **EpisodeDetailViewModel** +- [ ] **PersonDetailViewModel** + +--- + +## 8. Sistema de Reviews + +### 8.1 Componentes de Review +- [ ] **ReviewRowView** + - [ ] HStack com AsyncImage do avatar + - [ ] VStack com username (NavigationLink) + - [ ] RatingView (estrelas ou 0-10) + - [ ] Text da review (com spoiler blur) + - [ ] Data formatada (RelativeDateTimeFormatter) + - [ ] Badge "PRO" se aplicável + - [ ] HStack de ações: + - [ ] Botão de like (heart.fill animation) + - [ ] Contador de likes + - [ ] Botão de responder (bubble) + - [ ] Menu de ações (…) + +- [ ] **ReviewFormSheet** + - [ ] Sheet presentation + - [ ] RatingPicker customizado (Slider ou Stepper) + - [ ] TextEditor para review + - [ ] Toggle "Contém spoilers" + - [ ] Botão "Publicar" com loading + - [ ] Validação de campos + +- [ ] **ReviewRepliesView** + - [ ] List de respostas + - [ ] ReplyRow similar ao ReviewRow + - [ ] TextField para nova resposta + - [ ] Like em respostas + +### 8.2 Listagem de Reviews +- [ ] ReviewsListView genérico +- [ ] Filtros: + - [ ] Picker de idioma + - [ ] Picker de ordenação (data, likes) +- [ ] Pull to refresh +- [ ] Infinite scroll + +### 8.3 ViewModels +- [ ] **ReviewsViewModel** +- [ ] **ReviewFormViewModel** + +--- + +## 9. Listas Personalizadas + +### 9.1 Views de Listas +- [ ] **MyListsView** + - [ ] LazyVGrid de ListCard + - [ ] Botão + (plus.circle.fill) para criar + - [ ] Pull to refresh + - [ ] Empty state customizado + +- [ ] **DiscoverListsView** + - [ ] LazyVStack de listas públicas + - [ ] Toggle "Apenas com banner" + - [ ] Infinite scroll + +- [ ] **ListDetailView** + - [ ] Banner header (se existir) + - [ ] Título e descrição + - [ ] Creator com NavigationLink + - [ ] Contador de likes + botão + - [ ] ProgressView (assistidos/total) + - [ ] LazyVGrid de itens + - [ ] Modo edição: + - [ ] Drag & drop para reordenar + - [ ] Botão de remover item + - [ ] Botão + para adicionar item + +### 9.2 Formulário de Lista +- [ ] **ListFormView** + - [ ] TextField para título + - [ ] TextEditor para descrição + - [ ] Picker de visibilidade (Pública, Rede, Privada) + - [ ] PhotosPicker para banner + - [ ] ImageCropper (opcional, via library) + - [ ] Botões "Cancelar" e "Salvar" + +### 9.3 Adicionar Item à Lista +- [ ] **AddItemToListView** + - [ ] SearchBar + - [ ] Resultados de busca (filmes/séries) + - [ ] Checkboxes de listas + - [ ] Quick add via context menu na tela de detalhes + +### 9.4 ViewModels +- [ ] **ListsViewModel** +- [ ] **ListDetailViewModel** +- [ ] **ListFormViewModel** + +--- + +## 10. Perfil do Usuário + +### 10.1 ProfileView +- [ ] **Header** + - [ ] Banner (KFImage ou cor sólida) + - [ ] Avatar (Circle overlay) + - [ ] Username + - [ ] Badge PRO (se aplicável) + - [ ] Biografia (Text) + - [ ] Botões: + - [ ] Seguir/Deixar de seguir (outros perfis) + - [ ] Editar (próprio perfil) + +- [ ] **Estatísticas Resumidas** + - [ ] HStack com VStacks: + - [ ] Filmes assistidos + - [ ] Séries assistidas + - [ ] Seguidores (NavigationLink) + - [ ] Seguindo (NavigationLink) + +- [ ] **Links Sociais** + - [ ] HStack de ícones clicáveis + - [ ] SF Symbols ou custom icons + - [ ] Abrir com `.openURL()` + +- [ ] **TabView de Conteúdo** + - [ ] Atividades + - [ ] Coleção + - [ ] Listas + - [ ] Reviews + - [ ] Estatísticas + +### 10.2 Edição de Perfil +- [ ] **EditProfileView** + - [ ] PhotosPicker para avatar + - [ ] ImageCropper circular + - [ ] PhotosPicker para banner + - [ ] TextField para username (validação async) + - [ ] TextEditor para biografia + - [ ] TextFields para links sociais + - [ ] Botão "Salvar" com loading + +### 10.3 ViewModels +- [ ] **ProfileViewModel** +- [ ] **EditProfileViewModel** + +--- + +## 11. Coleção do Usuário + +### 11.1 CollectionView +- [ ] **Filtros** + - [ ] Picker de Status (Todos, Watchlist, Watching, Watched, Dropped) + - [ ] Picker de Tipo (Filmes, Séries, Ambos) + - [ ] Filtro de rating (Slider) + - [ ] Picker de ordenação + - [ ] Toggle "Apenas sem review" + +- [ ] **Grid de Itens** + - [ ] LazyVGrid adaptativo + - [ ] CollectionItemCard: + - [ ] Poster + - [ ] Badge de status + - [ ] Rating (se existir) + - [ ] Context menu: + - [ ] Alterar status + - [ ] Remover + - [ ] Ver detalhes + - [ ] Infinite scroll + +### 11.2 ViewModels +- [ ] **CollectionViewModel** + +--- + +## 12. Estatísticas + +### 12.1 StatsView +- [ ] **Total de Horas** + - [ ] Seção com ícone + - [ ] Cálculo de runtime total + - [ ] Formatação amigável (ex: "120h 30min") + +- [ ] **Contagem de Reviews** + - [ ] Número total de reviews + +- [ ] **Séries Mais Assistidas** + - [ ] Chart com BarMark (Apple Charts) + - [ ] Top 5 séries + - [ ] Ordenado por episódios + +- [ ] **Distribuição de Gêneros** + - [ ] PieChart ou BarChart + - [ ] Cores distintas + - [ ] Legenda + +- [ ] **Atores Mais Vistos** + - [ ] List ou LazyVStack + - [ ] Foto + nome + contagem + +- [ ] **Países de Produção** + - [ ] Map (MapKit) com pins (opcional) + - [ ] Ou lista simples com bandeiras (emoji ou SF Symbols) + +- [ ] **Melhores Avaliações** + - [ ] ScrollView horizontal de itens nota 10 + - [ ] Média geral do usuário + +- [ ] **Status das Mídias** + - [ ] PieChart + - [ ] Porcentagens + +### 12.2 ViewModels +- [ ] **StatsViewModel** + - [ ] Cálculos complexos + - [ ] Cache de dados pesados + +--- + +## 13. Sistema Social + +### 13.1 Followers/Following +- [ ] **FollowersListView** + - [ ] List de UserRowView + - [ ] Botão "Seguir de volta" + - [ ] Pull to refresh + - [ ] Infinite scroll + +- [ ] **FollowingListView** + - [ ] List de UserRowView + - [ ] Botão "Deixar de seguir" + - [ ] Confirmação de unfollow + +### 13.2 Busca de Usuários +- [ ] **UserSearchView** + - [ ] SearchBar com debounce + - [ ] Resultados em tempo real + - [ ] Indicador se já segue + - [ ] NavigationLink para perfil + +### 13.3 Likes +- [ ] LikeButton com animação +- [ ] Heart animation (scaleEffect + spring) +- [ ] Haptic feedback +- [ ] Sheet de "Curtido por" (lista de usuários) + +### 13.4 ViewModels +- [ ] **FollowersViewModel** +- [ ] **FollowingViewModel** +- [ ] **UserSearchViewModel** + +--- + +## 14. Busca + +### 14.1 SearchView +- [ ] **SearchBar** + - [ ] TextField com debounce (300ms) + - [ ] Botão de limpar (xmark.circle) + - [ ] SearchSuggestionsView com histórico + +- [ ] **Resultados Multi-tipo** + - [ ] List com Sections: + - [ ] Filmes + - [ ] Séries + - [ ] Pessoas + - [ ] NavigationLink "Ver todos" para cada seção + +### 14.2 Command Search (iOS Spotlight-like) +- [ ] Implementar via `.searchable()` modifier +- [ ] Sugestões inline +- [ ] Navegação por teclado (iPad + teclado externo) + +### 14.3 ViewModels +- [ ] **SearchViewModel** + - [ ] Combine para debounce + - [ ] Gerenciar múltiplas queries + +--- + +## 15. Configurações + +### 15.1 SettingsView +- [ ] **Preferências de Streaming** + - [ ] NavigationLink para StreamingProvidersView + - [ ] MultiSelector de provedores + - [ ] Picker de região + +- [ ] **Preferências de Exibição** + - [ ] Picker de tema (Light, Dark, System) + - [ ] Picker de idioma do app + - [ ] Picker de idioma TMDB + +- [ ] **Conta** + - [ ] NavigationLink para ChangePasswordView + - [ ] NavigationLink para NotificationsSettingsView + - [ ] NavigationLink para PrivacySettingsView + - [ ] Botão "Excluir Conta" (destructive) + - [ ] Botão "Logout" + +### 15.2 ViewModels +- [ ] **SettingsViewModel** + +--- + +## 16. Internacionalização + +### 16.1 Idiomas Suportados +- [ ] Português (pt-BR) +- [ ] Inglês (en-US) +- [ ] Espanhol (es-ES) +- [ ] Francês (fr-FR) +- [ ] Alemão (de-DE) +- [ ] Italiano (it-IT) +- [ ] Japonês (ja-JP) + +### 16.2 Implementação +- [ ] Criar `Localizable.strings` para cada idioma +- [ ] Converter JSON dos dicionários web para .strings +- [ ] Usar `NSLocalizedString()` ou String interpolation +- [ ] Criar enum `LocalizedStringKey` helper +- [ ] Persistir preferência no UserDefaults +- [ ] Criar `LanguageManager` para troca em runtime + +### 16.3 Formatação +- [ ] `NumberFormatter` para moeda +- [ ] `DateFormatter` para datas +- [ ] `RelativeDateTimeFormatter` para datas relativas +- [ ] `MeasurementFormatter` para horas + +--- + +## 17. Funcionalidades Premium (PRO) + +### 17.1 Features PRO +- [ ] Badge PRO no perfil +- [ ] Importação de dados externos +- [ ] [Outras features a definir] + +### 17.2 Integração com In-App Purchase +- [ ] **Configurar no App Store Connect** + - [ ] Criar produtos (assinatura mensal/anual) + - [ ] Configurar preços + +- [ ] **StoreKit 2** + - [ ] Implementar `StoreKitManager` + - [ ] Exibir produtos disponíveis + - [ ] Processar compras + - [ ] Validar recibos + - [ ] Restaurar compras + +- [ ] **PricingView** + - [ ] Design atraente + - [ ] Comparação de planos + - [ ] Botões de compra + - [ ] Loading states + +### 17.3 ViewModels +- [ ] **SubscriptionViewModel** + +--- + +## 18. Importação de Dados + +### 18.1 Provedores Suportados +- [ ] **MyAnimeList** + - [ ] UIDocumentPickerViewController para XML + - [ ] Parse XML com XMLParser + - [ ] Mapeamento para modelo interno + +- [ ] **Letterboxd** + - [ ] UIDocumentPickerViewController para CSV + - [ ] Parse CSV + - [ ] Mapeamento para modelo interno + +### 18.2 ImportView +- [ ] Picker de provedor (Segmented Control) +- [ ] Botão "Selecionar Arquivo" +- [ ] ProgressView durante importação +- [ ] ResultsView com sucesso/falha por item +- [ ] List de itens importados/falhados + +### 18.3 ViewModels +- [ ] **ImportViewModel** + - [ ] Processar arquivo em background + - [ ] Progress tracking + +--- + +## 🎨 Componentes UI Reutilizáveis (SwiftUI) + +### Componentes Base +- [ ] **CustomButton** (variantes: primary, secondary, outline, destructive) +- [ ] **CustomTextField** +- [ ] **CustomSecureField** +- [ ] **CustomTextEditor** +- [ ] **CustomPicker** +- [ ] **CustomToggle** +- [ ] **CustomSlider** +- [ ] **AvatarView** (AsyncImage circular) +- [ ] **BadgeView** +- [ ] **CardView** (com sombra e corner radius) +- [ ] **SkeletonView** (shimmer effect) +- [ ] **ToastView** (overlay com animação) +- [ ] **LoadingView** (ProgressView customizado) +- [ ] **EmptyStateView** +- [ ] **ErrorView** + +### Componentes de Mídia +- [ ] **PosterCard** +- [ ] **PosterGrid** (LazyVGrid wrapper) +- [ ] **BannerView** +- [ ] **PersonCard** +- [ ] **RatingView** (estrelas ou 0-10) +- [ ] **StatusBadge** +- [ ] **GenreChip** + +### Componentes de Interação +- [ ] **LikeButton** (com animação de coração) +- [ ] **FollowButton** +- [ ] **StatusMenu** (Menu com opções) +- [ ] **AddToListButton** +- [ ] **ShareButton** (usar UIActivityViewController) + +### Layouts Customizados +- [ ] **FlowLayout** (para chips de gêneros) +- [ ] **WaterfallLayout** (para grids irregulares) + +--- + +## 📱 Considerações iOS-Specific + +### UX Nativa +- [ ] **Gestos Nativos** + - [ ] Swipe back para navegação + - [ ] Pull to refresh em Lists + - [ ] Context menus (long press) + - [ ] Drag & drop para reordenar + +- [ ] **Haptic Feedback** + - [ ] `UIImpactFeedbackGenerator` para ações + - [ ] `UINotificationFeedbackGenerator` para sucesso/erro + - [ ] `UISelectionFeedbackGenerator` para seleções + +- [ ] **Launch Screen** + - [ ] Storyboard ou Asset + - [ ] Logo centralizado + +- [ ] **App Icon** + - [ ] Asset Catalog com todos os tamanhos + - [ ] Design consistente + +### Performance +- [ ] **Lazy Loading** + - [ ] LazyVStack/LazyHStack/LazyVGrid + - [ ] `.task()` modifier para carregar dados + +- [ ] **Image Caching** + - [ ] Kingfisher com configurações otimizadas + - [ ] Downsampling automático + +- [ ] **List Optimization** + - [ ] Identificadores estáveis (.id()) + - [ ] Evitar renders desnecessários + +- [ ] **Memory Management** + - [ ] Weak references em closures + - [ ] Deallocação adequada + +### Offline +- [ ] **Cache Strategy** + - [ ] URLCache configurado + - [ ] Core Data ou Realm para persistência offline + - [ ] Queue de ações offline para sincronizar + +- [ ] **Network Monitoring** + - [ ] NWPathMonitor (Network framework) + - [ ] Indicador de modo offline + - [ ] Retry automático quando conectar + +### Push Notifications (Futuro) +- [ ] **APNs Setup** + - [ ] Certificados no Apple Developer + - [ ] Backend: enviar device token + +- [ ] **Notificações** + - [ ] Novo seguidor + - [ ] Like na review + - [ ] Resposta na review + - [ ] Lançamento de filme/série na watchlist + +- [ ] **Local Notifications** + - [ ] Lembrete de episódio novo + - [ ] Lembrete de filme estreando + +### Widgets (iOS 14+) +- [ ] **WidgetKit** + - [ ] Widget de estatísticas + - [ ] Widget de próximos lançamentos + - [ ] Widget de últimas reviews + - [ ] Timelines para atualização + +### App Clips (Opcional) +- [ ] App Clip para visualização rápida de filme/série +- [ ] QR Codes para compartilhamento + +### Siri Shortcuts (Opcional) +- [ ] Adicionar à watchlist via Siri +- [ ] Marcar como assistido via Siri +- [ ] Buscar filme/série via Siri + +--- + +## 📊 Estimativa de Complexidade + +| Módulo | Complexidade | Prioridade | +|--------|--------------|------------| +| Setup Inicial | Baixa | Alta | +| Autenticação | Média | Alta | +| Navegação | Média | Alta | +| Catálogo de Filmes | Média | Alta | +| Catálogo de Séries | Média | Alta | +| Detalhes de Mídia | Alta | Alta | +| Sistema de Reviews | Alta | Alta | +| Listas | Alta | Média | +| Perfil | Média | Alta | +| Coleção | Média | Média | +| Estatísticas | Alta | Baixa | +| Sistema Social | Média | Média | +| Busca | Baixa | Alta | +| Configurações | Baixa | Baixa | +| i18n | Média | Média | +| Premium/IAP | Alta | Baixa | +| Importação | Alta | Baixa | + +--- + +## 🚀 Sugestão de Sprints + +### Sprint 1 - MVP Base (2-3 semanas) +- Setup inicial do projeto Xcode +- Arquitetura base (MVVM + Network Layer) +- Autenticação (login/cadastro) +- Navegação básica (TabView + NavigationStack) +- Catálogo de filmes (popular, detalhes básicos) +- Busca simples + +### Sprint 2 - Core Features (2-3 semanas) +- Catálogo de séries +- Sistema de status (watchlist, watched, etc) +- Perfil básico +- Coleção do usuário +- Deep linking + +### Sprint 3 - Social Features (2 semanas) +- Sistema de reviews completo +- Likes com animações +- Follow/Unfollow +- Feed de atividades +- Review replies + +### Sprint 4 - Listas e Polish (2 semanas) +- Listas personalizadas (criar, editar, adicionar itens) +- Detalhes de temporadas/episódios +- Internacionalização +- Performance optimization +- Dark mode polish + +### Sprint 5 - Extras (1-2 semanas) +- Estatísticas com gráficos +- Configurações avançadas +- In-App Purchases (PRO) +- Importação de dados +- Widgets básicos + +### Sprint 6 - QA & Publicação (1 semana) +- Testes em dispositivos reais +- Correção de bugs +- App Store assets (screenshots, descrição) +- Submissão para App Review + +--- + +## 📚 Referências + +### Backend +- **API Backend**: `apps/api/` - Mesma API usada pelo web +- **Schemas Gerados**: `apps/web/src/api/endpoints.schemas.ts` (referência para modelos Codable) + +### Web (Referência UI/UX) +- **Dicionários i18n**: `apps/web/public/dictionaries/` → converter para .strings +- **Componentes Web**: `apps/web/src/components/` (referência de design) +- **Serviços TMDB**: `apps/web/src/services/tmdb.ts` (referência de lógica) + +### iOS Resources +- **Human Interface Guidelines**: https://developer.apple.com/design/human-interface-guidelines/ +- **Swift Style Guide**: https://google.github.io/swift/ +- **SwiftUI by Example**: https://www.hackingwithswift.com/quick-start/swiftui + +### Bibliotecas Recomendadas +- **Alamofire**: https://github.com/Alamofire/Alamofire +- **Kingfisher**: https://github.com/onevcat/Kingfisher +- **KeychainAccess**: https://github.com/kishikawakatsumi/KeychainAccess +- **SwiftLint**: https://github.com/realm/SwiftLint + +--- + +## 🛠 Ferramentas de Desenvolvimento + +### Xcode Tools +- [ ] Configurar Instruments para profiling +- [ ] Usar Memory Graph Debugger +- [ ] View Hierarchy Debugger para debug de UI + +### Testing +- [ ] XCTest para testes unitários +- [ ] XCUITest para testes de UI +- [ ] Quick + Nimble (opcional) +- [ ] Code coverage mínima de 70% + +### CI/CD +- [ ] Xcode Cloud ou Fastlane +- [ ] Automação de builds +- [ ] TestFlight para beta testing + +--- + +*Documento gerado em: Janeiro 2026* +*Versão do projeto web: 0.1.0* +*Plataforma: iOS 16.0+* +*Linguagem: Swift 5.9+* +*Framework: SwiftUI* diff --git a/apps/ios/.gitignore b/apps/ios/.gitignore new file mode 100644 index 00000000..8aa0d953 --- /dev/null +++ b/apps/ios/.gitignore @@ -0,0 +1,93 @@ +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## User settings +xcuserdata/ + +## Compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) +*.xcscmblueprint +*.xccheckout + +## Compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) +build/ +DerivedData/ +*.moved-aside +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 + +## Obj-C/Swift specific +*.hmap + +## App packaging +*.ipa +*.dSYM.zip +*.dSYM + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +# +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +Packages/ +Package.pins +Package.resolved +# +# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata +# hence it is not needed unless you have added a package configuration file to your project +.swiftpm + +.build/ + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +Pods/ +# +# Add this line if you want to avoid checking in source code from the Xcode workspace +*.xcworkspace + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +Carthage/Checkouts + +Carthage/Build/ + +# Accio dependency management +Dependencies/ +.accio/ + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. +# Instead, use fastlane to re-generate the screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output + +# Code Injection +# +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ + +# Configuration files with secrets +*.xcconfig +!Default.xcconfig diff --git a/apps/ios/.swiftlint.yml b/apps/ios/.swiftlint.yml new file mode 100644 index 00000000..beb5f43d --- /dev/null +++ b/apps/ios/.swiftlint.yml @@ -0,0 +1,50 @@ +disabled_rules: + - trailing_whitespace + - line_length + - force_cast + - force_try + +opt_in_rules: + - empty_count + - empty_string + - closure_spacing + - contains_over_first_not_nil + - first_where + - sorted_first_last + - modifier_order + - redundant_type_annotation + +excluded: + - Pods + - .build + - DerivedData + +line_length: + warning: 120 + error: 200 + ignores_comments: true + +file_length: + warning: 500 + error: 1000 + +type_body_length: + warning: 300 + error: 500 + +function_body_length: + warning: 50 + error: 100 + +identifier_name: + min_length: + warning: 2 + max_length: + warning: 40 + error: 50 + excluded: + - id + - URL + - url + +reporter: "xcode" diff --git a/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj b/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj new file mode 100644 index 00000000..389069ac --- /dev/null +++ b/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj @@ -0,0 +1,329 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXFileReference section */ + BE1232732F129895003F1FBA /* Plotwist.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Plotwist.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + BE1232752F129895003F1FBA /* Plotwist */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = Plotwist; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + BE1232702F129895003F1FBA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + BE12326A2F129895003F1FBA = { + isa = PBXGroup; + children = ( + BE1232752F129895003F1FBA /* Plotwist */, + BE1232742F129895003F1FBA /* Products */, + ); + sourceTree = ""; + }; + BE1232742F129895003F1FBA /* Products */ = { + isa = PBXGroup; + children = ( + BE1232732F129895003F1FBA /* Plotwist.app */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + BE1232722F129895003F1FBA /* Plotwist */ = { + isa = PBXNativeTarget; + buildConfigurationList = BE12327E2F129897003F1FBA /* Build configuration list for PBXNativeTarget "Plotwist" */; + buildPhases = ( + BE12326F2F129895003F1FBA /* Sources */, + BE1232702F129895003F1FBA /* Frameworks */, + BE1232712F129895003F1FBA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + BE1232752F129895003F1FBA /* Plotwist */, + ); + name = Plotwist; + packageProductDependencies = ( + ); + productName = Plotwist; + productReference = BE1232732F129895003F1FBA /* Plotwist.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BE12326B2F129895003F1FBA /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1640; + LastUpgradeCheck = 1640; + TargetAttributes = { + BE1232722F129895003F1FBA = { + CreatedOnToolsVersion = 16.4; + }; + }; + }; + buildConfigurationList = BE12326E2F129895003F1FBA /* Build configuration list for PBXProject "Plotwist" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = BE12326A2F129895003F1FBA; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = BE1232742F129895003F1FBA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + BE1232722F129895003F1FBA /* Plotwist */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + BE1232712F129895003F1FBA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + BE12326F2F129895003F1FBA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + BE12327C2F129897003F1FBA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 54XPVTP5PA; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + BE12327D2F129897003F1FBA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 54XPVTP5PA; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + BE12327F2F129897003F1FBA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 54XPVTP5PA; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = henrique.Plotwist; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + BE1232802F129897003F1FBA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 54XPVTP5PA; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = henrique.Plotwist; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + BE12326E2F129895003F1FBA /* Build configuration list for PBXProject "Plotwist" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BE12327C2F129897003F1FBA /* Debug */, + BE12327D2F129897003F1FBA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BE12327E2F129897003F1FBA /* Build configuration list for PBXNativeTarget "Plotwist" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BE12327F2F129897003F1FBA /* Debug */, + BE1232802F129897003F1FBA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BE12326B2F129895003F1FBA /* Project object */; +} diff --git a/apps/ios/Plotwist/Plotwist/Assets.xcassets/AccentColor.colorset/Contents.json b/apps/ios/Plotwist/Plotwist/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 00000000..eb878970 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/Contents.json b/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..23058801 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/apps/ios/Plotwist/Plotwist/Assets.xcassets/Contents.json b/apps/ios/Plotwist/Plotwist/Assets.xcassets/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/apps/ios/Plotwist/Plotwist/ContentView.swift b/apps/ios/Plotwist/Plotwist/ContentView.swift new file mode 100644 index 00000000..7c71c72f --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/ContentView.swift @@ -0,0 +1,24 @@ +// +// ContentView.swift +// Plotwist +// +// Created by Luiz Henrique Delfino on 10/01/26. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundStyle(.tint) + Text("Hello, world!") + } + .padding() + } +} + +#Preview { + ContentView() +} diff --git a/apps/ios/Plotwist/Plotwist/PlotwistApp.swift b/apps/ios/Plotwist/Plotwist/PlotwistApp.swift new file mode 100644 index 00000000..fb001069 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/PlotwistApp.swift @@ -0,0 +1,17 @@ +// +// PlotwistApp.swift +// Plotwist +// +// Created by Luiz Henrique Delfino on 10/01/26. +// + +import SwiftUI + +@main +struct PlotwistApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/apps/ios/README.md b/apps/ios/README.md new file mode 100644 index 00000000..213303ad --- /dev/null +++ b/apps/ios/README.md @@ -0,0 +1,182 @@ +# 📱 Plotwist iOS + +Native iOS application for Plotwist - Track your favorite movies and series. + +## 🎯 Overview + +This is a native iOS application built with **Swift** and **SwiftUI**, following the **MVVM** architecture pattern. + +## 📋 Requirements + +- iOS 16.0+ +- Xcode 15.0+ +- Swift 5.9+ + +## 🏗️ Architecture + +### MVVM Pattern + +The app follows the Model-View-ViewModel architecture: + +- **Models**: Data structures (Codable) +- **Views**: SwiftUI views +- **ViewModels**: Business logic (ObservableObject) +- **Services**: API and data services + +### Project Structure + +``` +ios/ +├── Plotwist/ # Main app target +│ ├── App/ # App entry point & main views +│ │ ├── PlottwistApp.swift +│ │ ├── ContentView.swift +│ │ └── MainTabView.swift +│ ├── Core/ # Core functionality +│ │ ├── Network/ # API client, endpoints, errors +│ │ └── Storage/ # Keychain, UserDefaults +│ ├── Models/ # Data models (Codable) +│ ├── ViewModels/ # ViewModels (ObservableObject) +│ ├── Views/ # SwiftUI views +│ │ ├── Auth/ # Login, SignUp, ForgotPassword +│ │ ├── Movies/ # Movie screens +│ │ ├── Series/ # Series screens +│ │ ├── Profile/ # Profile screens +│ │ ├── Lists/ # Lists screens +│ │ └── Components/ # Reusable components +│ ├── Services/ # Business services +│ ├── Utils/ # Utilities & Constants +│ ├── Configuration/ # App configuration +│ ├── Resources/ # Assets.xcassets +│ └── Info.plist # App configuration +├── Plotwist.xcodeproj/ # Xcode project (criar via Xcode) +├── SETUP.md # Setup guide +├── README.md # This file +└── .gitignore # Git ignore +``` + +## 📦 Dependencies + +Using **Swift Package Manager (SPM)**. + +Currently using native iOS frameworks only: + +- URLSession for networking +- Native Keychain for secure storage +- SwiftUI for UI + +**Planned dependencies** (to be added as needed): + +- [Kingfisher](https://github.com/onevcat/Kingfisher) - Image loading & caching +- [SwiftUI-Introspect](https://github.com/siteline/SwiftUI-Introspect) - UIKit access (optional) + +## 🚀 Getting Started + +### Setup + +**IMPORTANTE**: O projeto ainda não tem o arquivo `.xcodeproj`. Você precisa criá-lo primeiro! + +Siga o guia completo em [`SETUP.md`](./SETUP.md) para criar o projeto Xcode. + +### Resumo rápido: + +1. Abra o Xcode +2. Crie um novo projeto iOS App com SwiftUI +3. Configure conforme instruções no `SETUP.md` +4. Adicione os arquivos existentes ao projeto +5. Configure sua TMDB API Key em `Configuration.swift` +6. Build e run! + +### Configuração da API + +Edite `Plotwist/Configuration/Configuration.swift` e adicione sua TMDB API Key: + +```swift +static var tmdbAPIKey: String { + return "SUA_API_KEY_AQUI" +} +``` + +## 🔐 Authentication + +The app uses JWT tokens stored securely in the iOS Keychain via KeychainAccess library. + +## 🌐 API Integration + +The app communicates with the same backend API used by the web application. + +Base URL: + +- Debug: `http://localhost:3333` +- Release: `https://api.plotwist.app` + +## 🎨 Design System + +Following iOS Human Interface Guidelines with: + +- Native iOS components +- Dark mode support +- Dynamic Type support +- Accessibility features + +## 📱 Features + +### Implemented + +- ✅ Basic project structure (22 Swift files) +- ✅ Authentication (Login/Sign Up/Forgot Password) +- ✅ Networking layer (native URLSession with async/await) +- ✅ Keychain integration (secure token storage) +- ✅ Main navigation (TabView with 5 tabs) +- ✅ Theme management (Dark Mode support) +- ✅ MVVM architecture + +### In Progress + +- 🚧 Movie catalog +- 🚧 Series catalog +- 🚧 Search +- 🚧 User profile +- 🚧 Reviews system +- 🚧 Lists +- 🚧 Collection +- 🚧 Statistics +- 🚧 Social features + +## 🧪 Testing + +Tests will be added in future iterations. For now, focus on building the core features. + +## 📝 Code Style + +Using SwiftLint for code style enforcement. Configuration in `.swiftlint.yml`. + +## 🌍 Localization + +Supported languages: + +- Portuguese (pt-BR) +- English (en-US) +- Spanish (es-ES) +- French (fr-FR) +- German (de-DE) +- Italian (it-IT) +- Japanese (ja-JP) + +## 📄 License + +Same license as the main Plotwist project. + +## 🤝 Contributing + +See [CONTRIBUTING.md](../../CONTRIBUTING.MD) for contribution guidelines. + +## 📚 Resources + +- [iOS Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/) +- [SwiftUI Documentation](https://developer.apple.com/documentation/swiftui) +- [Swift API Design Guidelines](https://swift.org/documentation/api-design-guidelines/) + +--- + +For more details, see [IOS_TASKS.md](../../IOS_TASKS.md) for the complete task list and roadmap. diff --git a/apps/ios/SETUP.md b/apps/ios/SETUP.md new file mode 100644 index 00000000..f16340bc --- /dev/null +++ b/apps/ios/SETUP.md @@ -0,0 +1,191 @@ +# 🚀 Setup do Projeto iOS - Plotwist + +Este guia explica como criar o projeto Xcode para o app Plotwist iOS. + +## 📋 Pré-requisitos + +- macOS 13.0 ou superior +- Xcode 15.0 ou superior +- iOS 16.0+ como target mínimo + +## 🛠️ Criando o Projeto Xcode + +### Passo 1: Abrir o Xcode + +1. Abra o **Xcode** +2. Selecione **"Create a new Xcode project"** ou vá em **File > New > Project** + +### Passo 2: Escolher o Template + +1. Selecione a plataforma **iOS** +2. Escolha o template **App** +3. Clique em **Next** + +### Passo 3: Configurar o Projeto + +Preencha os campos conforme abaixo: + +- **Product Name**: `Plotwist` +- **Team**: (Selecione seu time/conta de desenvolvedor) +- **Organization Identifier**: `app.plotwist` (ou seu identificador) +- **Bundle Identifier**: Será `app.plotwist.Plotwist` automaticamente +- **Interface**: **SwiftUI** +- **Language**: **Swift** +- **Storage**: Não marque "Use Core Data" +- **Include Tests**: Não marque esta opção + +### Passo 4: Salvar o Projeto + +1. Clique em **Next** +2. **IMPORTANTE**: Navegue até `/Users/henrique/dev/plotwist/apps/` +3. **ATENÇÃO**: Quando salvar, DESMARQUE "Create Git repository on my Mac" +4. Nomeie como `ios-temp` (vamos mover os arquivos depois) +5. Clique em **Create** + +### Passo 5: Substituir os Arquivos + +Agora vamos substituir os arquivos gerados pelo Xcode com nossos arquivos customizados: + +1. **Feche o Xcode** + +2. No Terminal, execute: + +```bash +cd /Users/henrique/dev/plotwist/apps + +# Copiar o arquivo .xcodeproj +cp -R ios-temp/Plotwist.xcodeproj ios/ + +# Copiar o arquivo .xcworkspace se existir +if [ -d "ios-temp/Plotwist.xcworkspace" ]; then + cp -R ios-temp/Plotwist.xcworkspace ios/ +fi + +# Remover o projeto temporário +rm -rf ios-temp +``` + +3. **Abra o projeto**: + +```bash +cd ios +open Plotwist.xcodeproj +``` + +### Passo 6: Ajustar Referências no Xcode + +Com o projeto aberto no Xcode: + +1. **Remover referências antigas** (se houver arquivos duplicados): + + - No Project Navigator (⌘+1), selecione arquivos duplicados + - Clique com botão direito > Delete + - Escolha "Remove Reference" (NÃO "Move to Trash") + +2. **Adicionar arquivos ao projeto**: + + - Clique com botão direito na pasta "Plotwist" no Project Navigator + - Selecione "Add Files to 'Plotwist'..." + - Navegue até a pasta `Plotwist/` com todo o código + - **Marque**: "Copy items if needed" (DESMARQUE esta opção) + - **Marque**: "Create groups" + - **Marque**: "Add to targets: Plotwist" + - Clique em "Add" + +3. **Verificar o Info.plist**: + + - Selecione o target "Plotwist" no Project Navigator + - Vá em "Build Settings" + - Busque por "Info.plist" + - Certifique-se que aponta para `Plotwist/Info.plist` + +4. **Configurar Assets**: + - Vá em "Build Settings" + - Busque por "Asset Catalog" + - Certifique-se que aponta para `Plotwist/Resources/Assets.xcassets` + +### Passo 7: Configurar Build Settings + +1. Selecione o projeto "Plotwist" no Project Navigator +2. Selecione o target "Plotwist" +3. Vá em **"Build Settings"** +4. Busque por "iOS Deployment Target" +5. Configure para **iOS 16.0** + +### Passo 8: Configurar Capabilities (Opcional) + +Se você for usar recursos específicos: + +1. Selecione o target "Plotwist" +2. Vá em **"Signing & Capabilities"** +3. Adicione capabilities conforme necessário: + - **Keychain Sharing** (para armazenamento seguro) + - **Push Notifications** (para notificações futuras) + +### Passo 9: Build e Run + +1. Selecione um simulador (iPhone 15, por exemplo) +2. Pressione **⌘+B** para compilar +3. Se tudo estiver OK, pressione **⌘+R** para rodar + +## 🎯 Estrutura Final + +Depois de configurado, a estrutura deve estar assim: + +``` +ios/ +├── Plotwist.xcodeproj/ +├── Plotwist.xcworkspace/ (se usar CocoaPods/Carthage) +├── Plotwist/ +│ ├── App/ +│ ├── Core/ +│ ├── Models/ +│ ├── ViewModels/ +│ ├── Views/ +│ ├── Services/ +│ ├── Utils/ +│ ├── Configuration/ +│ ├── Resources/ +│ └── Info.plist +├── README.md +├── SETUP.md +└── .gitignore +``` + +## 🐛 Troubleshooting + +### Erro: "No such module 'Plotwist'" + +1. Verifique se todos os arquivos estão no target correto +2. Limpe o build: **Product > Clean Build Folder** (⌘+Shift+K) +3. Feche e reabra o Xcode + +### Erro: "Signing for 'Plotwist' requires a development team" + +1. Vá em **Signing & Capabilities** +2. Selecione seu time ou use "Automatically manage signing" +3. Faça login com sua Apple ID em **Xcode > Settings > Accounts** + +### Arquivos não aparecem no Project Navigator + +1. Certifique-se que adicionou como "Create groups" e não "Create folder references" +2. Verifique se os arquivos estão fisicamente na pasta correta + +## ✅ Próximos Passos + +Após configurar o projeto: + +1. Adicione sua TMDB API Key em `Configuration.swift` +2. Configure o Bundle ID correto +3. Adicione ícones do app em `Assets.xcassets/AppIcon.appiconset/` +4. Comece a desenvolver as features seguindo o `IOS_TASKS.md` + +## 📚 Recursos + +- [Documentação Swift](https://docs.swift.org) +- [SwiftUI Tutorials](https://developer.apple.com/tutorials/swiftui) +- [Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/) + +--- + +_Última atualização: Janeiro 2026_ diff --git a/apps/mobile/.env.example b/apps/mobile/.env.example deleted file mode 100644 index 46db151d..00000000 --- a/apps/mobile/.env.example +++ /dev/null @@ -1,5 +0,0 @@ -# API Configuration -EXPO_PUBLIC_API_URL=http://localhost:3333 - -# TMDB Configuration -EXPO_PUBLIC_TMDB_API_KEY=your_tmdb_api_key_here diff --git a/apps/mobile/.gitignore b/apps/mobile/.gitignore deleted file mode 100644 index d914c328..00000000 --- a/apps/mobile/.gitignore +++ /dev/null @@ -1,41 +0,0 @@ -# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files - -# dependencies -node_modules/ - -# Expo -.expo/ -dist/ -web-build/ -expo-env.d.ts - -# Native -.kotlin/ -*.orig.* -*.jks -*.p8 -*.p12 -*.key -*.mobileprovision - -# Metro -.metro-health-check* - -# debug -npm-debug.* -yarn-debug.* -yarn-error.* - -# macOS -.DS_Store -*.pem - -# local env files -.env*.local - -# typescript -*.tsbuildinfo - -# generated native folders -/ios -/android diff --git a/apps/mobile/.vscode/extensions.json b/apps/mobile/.vscode/extensions.json deleted file mode 100644 index b7ed8377..00000000 --- a/apps/mobile/.vscode/extensions.json +++ /dev/null @@ -1 +0,0 @@ -{ "recommendations": ["expo.vscode-expo-tools"] } diff --git a/apps/mobile/.vscode/settings.json b/apps/mobile/.vscode/settings.json deleted file mode 100644 index e2798e42..00000000 --- a/apps/mobile/.vscode/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "editor.codeActionsOnSave": { - "source.fixAll": "explicit", - "source.organizeImports": "explicit", - "source.sortMembers": "explicit" - } -} diff --git a/apps/mobile/app.json b/apps/mobile/app.json deleted file mode 100644 index d45809f3..00000000 --- a/apps/mobile/app.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "expo": { - "name": "Plotwist", - "slug": "plotwist", - "version": "1.0.0", - "orientation": "portrait", - "icon": "./assets/images/icon.png", - "scheme": "plotwist", - "userInterfaceStyle": "dark", - "newArchEnabled": true, - "backgroundColor": "#000000", - "splash": { - "backgroundColor": "#000000" - }, - "ios": { - "supportsTablet": true, - "bundleIdentifier": "app.plotwist.mobile", - "backgroundColor": "#000000", - "infoPlist": { - "ITSAppUsesNonExemptEncryption": false - }, - }, - "android": { - "adaptiveIcon": { - "foregroundImage": "./assets/images/adaptive-icon.png", - "backgroundColor": "#000000" - }, - "package": "app.plotwist.mobile", - "backgroundColor": "#000000" - }, - "web": { - "bundler": "metro", - "output": "single", - "favicon": "./assets/images/favicon.png" - }, - "plugins": [ - "expo-router", - "expo-font", - [ - "expo-system-ui", - { - "backgroundColor": "#000000" - } - ] - ], - "experiments": { - "typedRoutes": true - } - } -} diff --git a/apps/mobile/app/_layout.tsx b/apps/mobile/app/_layout.tsx deleted file mode 100644 index 920aa555..00000000 --- a/apps/mobile/app/_layout.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import "../global.css"; - -import { Slot } from "expo-router"; -import * as SplashScreen from "expo-splash-screen"; -import { StatusBar } from "expo-status-bar"; -import { View } from "react-native"; -import { SafeAreaProvider, SafeAreaView } from "react-native-safe-area-context"; -import { GestureHandlerRootView } from "react-native-gesture-handler"; -import { - useFonts, - SpaceGrotesk_400Regular, - SpaceGrotesk_500Medium, - SpaceGrotesk_600SemiBold, - SpaceGrotesk_700Bold, -} from "@expo-google-fonts/space-grotesk"; -import { useEffect, useState } from "react"; - -export { ErrorBoundary } from "expo-router"; - -SplashScreen.preventAutoHideAsync(); - -export default function RootLayout() { - const [appIsReady, setAppIsReady] = useState(false); - - const [fontsLoaded] = useFonts({ - SpaceGrotesk_400Regular, - SpaceGrotesk_500Medium, - SpaceGrotesk_600SemiBold, - SpaceGrotesk_700Bold, - }); - - useEffect(() => { - async function prepare() { - if (fontsLoaded) { - await new Promise((resolve) => setTimeout(resolve, 1000)); - setAppIsReady(true); - } - } - prepare(); - }, [fontsLoaded]); - - useEffect(() => { - if (appIsReady) { - SplashScreen.hideAsync(); - } - }, [appIsReady]); - - if (!fontsLoaded || !appIsReady) { - return ; - } - - return ( - - - - - - - - - ); -} diff --git a/apps/mobile/app/index.tsx b/apps/mobile/app/index.tsx deleted file mode 100644 index 961c6b0d..00000000 --- a/apps/mobile/app/index.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { View, Text } from "react-native"; -import { SvgXml } from "react-native-svg"; - -import { logoSvg } from "../assets/logo"; - -export default function App() { - return ( - - - - Plotwist - - - ); -} diff --git a/apps/mobile/assets/images/adaptive-icon.png b/apps/mobile/assets/images/adaptive-icon.png deleted file mode 100644 index 4008e38a817f722d20449d1439ee3ec832c5e96a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16479 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 - - - - - - -`; diff --git a/apps/mobile/babel.config.js b/apps/mobile/babel.config.js deleted file mode 100644 index 2ee68d6d..00000000 --- a/apps/mobile/babel.config.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = (api) => { - api.cache(true); - return { - presets: [ - ["babel-preset-expo", { jsxImportSource: "nativewind" }], - "nativewind/babel", - ], - plugins: [ - // NOTE: This must be listed last - "react-native-reanimated/plugin", - ], - }; -}; diff --git a/apps/mobile/eas.json b/apps/mobile/eas.json deleted file mode 100644 index 70e502c5..00000000 --- a/apps/mobile/eas.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "cli": { - "version": ">= 16.17.4", - "appVersionSource": "remote" - }, - "build": { - "development": { - "developmentClient": true, - "distribution": "internal" - }, - "preview": { - "distribution": "internal" - }, - "production": { - "autoIncrement": true - } - }, - "submit": { - "production": {} - } -} diff --git a/apps/mobile/global.css b/apps/mobile/global.css deleted file mode 100644 index b5c61c95..00000000 --- a/apps/mobile/global.css +++ /dev/null @@ -1,3 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/apps/mobile/metro.config.js b/apps/mobile/metro.config.js deleted file mode 100644 index b0963fe7..00000000 --- a/apps/mobile/metro.config.js +++ /dev/null @@ -1,6 +0,0 @@ -const { getDefaultConfig } = require("expo/metro-config"); -const { withNativeWind } = require("nativewind/metro"); - -const config = getDefaultConfig(__dirname); - -module.exports = withNativeWind(config, { input: "./global.css" }); diff --git a/apps/mobile/nativewind-env.d.ts b/apps/mobile/nativewind-env.d.ts deleted file mode 100644 index a13e3136..00000000 --- a/apps/mobile/nativewind-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/apps/mobile/package-lock.json b/apps/mobile/package-lock.json deleted file mode 100644 index 9363f5d8..00000000 --- a/apps/mobile/package-lock.json +++ /dev/null @@ -1,10188 +0,0 @@ -{ - "name": "@plotwist/mobile", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@plotwist/mobile", - "version": "1.0.0", - "dependencies": { - "@expo-google-fonts/space-grotesk": "^0.2.3", - "@react-navigation/native": "^7.1.8", - "expo": "~54.0.31", - "expo-font": "~14.0.10", - "expo-linking": "~8.0.11", - "expo-router": "~6.0.21", - "expo-splash-screen": "~31.0.13", - "expo-status-bar": "~3.0.9", - "nativewind": "^4.2.1", - "react": "19.1.0", - "react-dom": "19.1.0", - "react-native": "0.81.5", - "react-native-reanimated": "~4.1.1", - "react-native-safe-area-context": "~5.6.0", - "react-native-screens": "~4.16.0", - "react-native-svg": "^15.15.1", - "react-native-web": "~0.21.0", - "react-native-worklets": "0.5.1", - "tailwindcss": "^3.3.2" - }, - "devDependencies": { - "@types/react": "~19.1.0", - "typescript": "~5.9.2" - } - }, - "node_modules/@0no-co/graphql.web": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.2.0.tgz", - "integrity": "sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==", - "license": "MIT", - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" - }, - "peerDependenciesMeta": { - "graphql": { - "optional": true - } - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", - "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", - "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", - "license": "MIT", - "dependencies": { - "@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/helpers": "^7.28.4", - "@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.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", - "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", - "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.3" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", - "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.28.5", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", - "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "regexpu-core": "^6.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", - "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "debug": "^4.4.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.22.10" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", - "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", - "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", - "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-wrap-function": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", - "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.27.1", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", - "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", - "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", - "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", - "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.5" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", - "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-decorators": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz", - "integrity": "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", - "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.27.1.tgz", - "integrity": "sha512-eBC/3KSekshx19+N40MzjWqJd7KTEdOoLesAfa4IDFI8eRz5a47i5Oszus6zG/cwIXN63YhgLOMSSNJx49sENg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", - "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", - "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", - "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", - "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", - "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", - "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", - "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-globals": "^7.28.0", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.28.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", - "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/template": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", - "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", - "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", - "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-flow": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", - "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", - "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", - "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", - "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", - "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", - "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", - "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", - "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/traverse": "^7.28.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", - "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", - "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", - "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", - "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", - "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", - "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", - "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", - "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", - "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", - "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", - "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", - "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", - "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", - "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", - "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", - "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-create-class-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", - "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", - "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-transform-react-display-name": "^7.28.0", - "@babel/plugin-transform-react-jsx": "^7.27.1", - "@babel/plugin-transform-react-jsx-development": "^7.27.1", - "@babel/plugin-transform-react-pure-annotations": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", - "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-typescript": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", - "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", - "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse--for-generate-function-map": { - "name": "@babel/traverse", - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", - "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", - "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@expo-google-fonts/space-grotesk": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@expo-google-fonts/space-grotesk/-/space-grotesk-0.2.3.tgz", - "integrity": "sha512-UYEMIrzegR02pauH7gVMI7j6cUroTtJug6dH/aQFjMNz0UwZe6GUcrEtJDmsUHJjEZdxbYgHhaiIwswWVo0CMA==", - "license": "MIT" - }, - "node_modules/@expo/code-signing-certificates": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.6.tgz", - "integrity": "sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==", - "license": "MIT", - "dependencies": { - "node-forge": "^1.3.3" - } - }, - "node_modules/@expo/config": { - "version": "12.0.13", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-12.0.13.tgz", - "integrity": "sha512-Cu52arBa4vSaupIWsF0h7F/Cg//N374nYb7HAxV0I4KceKA7x2UXpYaHOL7EEYYvp7tZdThBjvGpVmr8ScIvaQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~54.0.4", - "@expo/config-types": "^54.0.10", - "@expo/json-file": "^10.0.8", - "deepmerge": "^4.3.1", - "getenv": "^2.0.0", - "glob": "^13.0.0", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "resolve-workspace-root": "^2.0.0", - "semver": "^7.6.0", - "slugify": "^1.3.4", - "sucrase": "~3.35.1" - } - }, - "node_modules/@expo/config-plugins": { - "version": "54.0.4", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-54.0.4.tgz", - "integrity": "sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q==", - "license": "MIT", - "dependencies": { - "@expo/config-types": "^54.0.10", - "@expo/json-file": "~10.0.8", - "@expo/plist": "^0.4.8", - "@expo/sdk-runtime-versions": "^1.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.5", - "getenv": "^2.0.0", - "glob": "^13.0.0", - "resolve-from": "^5.0.0", - "semver": "^7.5.4", - "slash": "^3.0.0", - "slugify": "^1.6.6", - "xcode": "^3.0.1", - "xml2js": "0.6.0" - } - }, - "node_modules/@expo/config-plugins/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/config-types": { - "version": "54.0.10", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-54.0.10.tgz", - "integrity": "sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA==", - "license": "MIT" - }, - "node_modules/@expo/config/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@expo/config/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/devcert": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.2.1.tgz", - "integrity": "sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==", - "license": "MIT", - "dependencies": { - "@expo/sudo-prompt": "^9.3.1", - "debug": "^3.1.0" - } - }, - "node_modules/@expo/devcert/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@expo/devtools": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@expo/devtools/-/devtools-0.1.8.tgz", - "integrity": "sha512-SVLxbuanDjJPgc0sy3EfXUMLb/tXzp6XIHkhtPVmTWJAp+FOr6+5SeiCfJrCzZFet0Ifyke2vX3sFcKwEvCXwQ==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/@expo/env": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-2.0.8.tgz", - "integrity": "sha512-5VQD6GT8HIMRaSaB5JFtOXuvfDVU80YtZIuUT/GDhUF782usIXY13Tn3IdDz1Tm/lqA9qnRZQ1BF4t7LlvdJPA==", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "debug": "^4.3.4", - "dotenv": "~16.4.5", - "dotenv-expand": "~11.0.6", - "getenv": "^2.0.0" - } - }, - "node_modules/@expo/fingerprint": { - "version": "0.15.4", - "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.15.4.tgz", - "integrity": "sha512-eYlxcrGdR2/j2M6pEDXo9zU9KXXF1vhP+V+Tl+lyY+bU8lnzrN6c637mz6Ye3em2ANy8hhUR03Raf8VsT9Ogng==", - "license": "MIT", - "dependencies": { - "@expo/spawn-async": "^1.7.2", - "arg": "^5.0.2", - "chalk": "^4.1.2", - "debug": "^4.3.4", - "getenv": "^2.0.0", - "glob": "^13.0.0", - "ignore": "^5.3.1", - "minimatch": "^9.0.0", - "p-limit": "^3.1.0", - "resolve-from": "^5.0.0", - "semver": "^7.6.0" - }, - "bin": { - "fingerprint": "bin/cli.js" - } - }, - "node_modules/@expo/fingerprint/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/image-utils": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.8.8.tgz", - "integrity": "sha512-HHHaG4J4nKjTtVa1GG9PCh763xlETScfEyNxxOvfTRr8IKPJckjTyqSLEtdJoFNJ1vqiABEjW7tqGhqGibZLeA==", - "license": "MIT", - "dependencies": { - "@expo/spawn-async": "^1.7.2", - "chalk": "^4.0.0", - "getenv": "^2.0.0", - "jimp-compact": "0.16.1", - "parse-png": "^2.1.0", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0", - "semver": "^7.6.0", - "temp-dir": "~2.0.0", - "unique-string": "~2.0.0" - } - }, - "node_modules/@expo/image-utils/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/json-file": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-10.0.8.tgz", - "integrity": "sha512-9LOTh1PgKizD1VXfGQ88LtDH0lRwq9lsTb4aichWTWSWqy3Ugfkhfm3BhzBIkJJfQQ5iJu3m/BoRlEIjoCGcnQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^2.2.3" - } - }, - "node_modules/@expo/json-file/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@expo/metro": { - "version": "54.2.0", - "resolved": "https://registry.npmjs.org/@expo/metro/-/metro-54.2.0.tgz", - "integrity": "sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==", - "license": "MIT", - "dependencies": { - "metro": "0.83.3", - "metro-babel-transformer": "0.83.3", - "metro-cache": "0.83.3", - "metro-cache-key": "0.83.3", - "metro-config": "0.83.3", - "metro-core": "0.83.3", - "metro-file-map": "0.83.3", - "metro-minify-terser": "0.83.3", - "metro-resolver": "0.83.3", - "metro-runtime": "0.83.3", - "metro-source-map": "0.83.3", - "metro-symbolicate": "0.83.3", - "metro-transform-plugins": "0.83.3", - "metro-transform-worker": "0.83.3" - } - }, - "node_modules/@expo/metro-config": { - "version": "54.0.13", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-54.0.13.tgz", - "integrity": "sha512-RRufMCgLR2Za1WGsh02OatIJo5qZFt31yCnIOSfoubNc3Qqe92Z41pVsbrFnmw5CIaisv1NgdBy05DHe7pEyuw==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.20.0", - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.5", - "@expo/config": "~12.0.13", - "@expo/env": "~2.0.8", - "@expo/json-file": "~10.0.8", - "@expo/metro": "~54.2.0", - "@expo/spawn-async": "^1.7.2", - "browserslist": "^4.25.0", - "chalk": "^4.1.0", - "debug": "^4.3.2", - "dotenv": "~16.4.5", - "dotenv-expand": "~11.0.6", - "getenv": "^2.0.0", - "glob": "^13.0.0", - "hermes-parser": "^0.29.1", - "jsc-safe-url": "^0.2.4", - "lightningcss": "^1.30.1", - "minimatch": "^9.0.0", - "postcss": "~8.4.32", - "resolve-from": "^5.0.0" - }, - "peerDependencies": { - "expo": "*" - }, - "peerDependenciesMeta": { - "expo": { - "optional": true - } - } - }, - "node_modules/@expo/metro-runtime": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-6.1.2.tgz", - "integrity": "sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g==", - "license": "MIT", - "dependencies": { - "anser": "^1.4.9", - "pretty-format": "^29.7.0", - "stacktrace-parser": "^0.1.10", - "whatwg-fetch": "^3.0.0" - }, - "peerDependencies": { - "expo": "*", - "react": "*", - "react-dom": "*", - "react-native": "*" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/@expo/osascript": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.3.8.tgz", - "integrity": "sha512-/TuOZvSG7Nn0I8c+FcEaoHeBO07yu6vwDgk7rZVvAXoeAK5rkA09jRyjYsZo+0tMEFaToBeywA6pj50Mb3ny9w==", - "license": "MIT", - "dependencies": { - "@expo/spawn-async": "^1.7.2", - "exec-async": "^2.2.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@expo/package-manager": { - "version": "1.9.9", - "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.9.9.tgz", - "integrity": "sha512-Nv5THOwXzPprMJwbnXU01iXSrCp3vJqly9M4EJ2GkKko9Ifer2ucpg7x6OUsE09/lw+npaoUnHMXwkw7gcKxlg==", - "license": "MIT", - "dependencies": { - "@expo/json-file": "^10.0.8", - "@expo/spawn-async": "^1.7.2", - "chalk": "^4.0.0", - "npm-package-arg": "^11.0.0", - "ora": "^3.4.0", - "resolve-workspace-root": "^2.0.0" - } - }, - "node_modules/@expo/plist": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.4.8.tgz", - "integrity": "sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==", - "license": "MIT", - "dependencies": { - "@xmldom/xmldom": "^0.8.8", - "base64-js": "^1.2.3", - "xmlbuilder": "^15.1.1" - } - }, - "node_modules/@expo/prebuild-config": { - "version": "54.0.8", - "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-54.0.8.tgz", - "integrity": "sha512-EA7N4dloty2t5Rde+HP0IEE+nkAQiu4A/+QGZGT9mFnZ5KKjPPkqSyYcRvP5bhQE10D+tvz6X0ngZpulbMdbsg==", - "license": "MIT", - "dependencies": { - "@expo/config": "~12.0.13", - "@expo/config-plugins": "~54.0.4", - "@expo/config-types": "^54.0.10", - "@expo/image-utils": "^0.8.8", - "@expo/json-file": "^10.0.8", - "@react-native/normalize-colors": "0.81.5", - "debug": "^4.3.1", - "resolve-from": "^5.0.0", - "semver": "^7.6.0", - "xml2js": "0.6.0" - }, - "peerDependencies": { - "expo": "*" - } - }, - "node_modules/@expo/prebuild-config/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/schema-utils": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@expo/schema-utils/-/schema-utils-0.1.8.tgz", - "integrity": "sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A==", - "license": "MIT" - }, - "node_modules/@expo/sdk-runtime-versions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", - "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", - "license": "MIT" - }, - "node_modules/@expo/spawn-async": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz", - "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@expo/sudo-prompt": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@expo/sudo-prompt/-/sudo-prompt-9.3.2.tgz", - "integrity": "sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==", - "license": "MIT" - }, - "node_modules/@expo/vector-icons": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-15.0.3.tgz", - "integrity": "sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA==", - "license": "MIT", - "peerDependencies": { - "expo-font": ">=14.0.4", - "react": "*", - "react-native": "*" - } - }, - "node_modules/@expo/ws-tunnel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@expo/ws-tunnel/-/ws-tunnel-1.0.6.tgz", - "integrity": "sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==", - "license": "MIT" - }, - "node_modules/@expo/xcpretty": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.2.tgz", - "integrity": "sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/code-frame": "7.10.4", - "chalk": "^4.1.0", - "find-up": "^5.0.0", - "js-yaml": "^4.1.0" - }, - "bin": { - "excpretty": "build/cli.js" - } - }, - "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@expo/xcpretty/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/@expo/xcpretty/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/xcpretty/node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@expo/xcpretty/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/xcpretty/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "license": "MIT", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@isaacs/ttlcache": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", - "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/create-cache-key-function": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", - "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", - "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", - "license": "MIT" - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", - "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", - "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", - "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", - "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.0.tgz", - "integrity": "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", - "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", - "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", - "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", - "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", - "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@react-native/assets-registry": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.81.5.tgz", - "integrity": "sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w==", - "license": "MIT", - "engines": { - "node": ">= 20.19.4" - } - }, - "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.81.5.tgz", - "integrity": "sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.3", - "@react-native/codegen": "0.81.5" - }, - "engines": { - "node": ">= 20.19.4" - } - }, - "node_modules/@react-native/babel-preset": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.81.5.tgz", - "integrity": "sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-proposal-export-default-from": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-default-from": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.4", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.25.4", - "@babel/plugin-transform-classes": "^7.25.4", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-flow-strip-types": "^7.25.2", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.25.2", - "@babel/plugin-transform-react-jsx-self": "^7.24.7", - "@babel/plugin-transform-react-jsx-source": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-runtime": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-typescript": "^7.25.2", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/template": "^7.25.0", - "@react-native/babel-plugin-codegen": "0.81.5", - "babel-plugin-syntax-hermes-parser": "0.29.1", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": ">= 20.19.4" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/@react-native/codegen": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.81.5.tgz", - "integrity": "sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.2", - "@babel/parser": "^7.25.3", - "glob": "^7.1.1", - "hermes-parser": "0.29.1", - "invariant": "^2.2.4", - "nullthrows": "^1.1.1", - "yargs": "^17.6.2" - }, - "engines": { - "node": ">= 20.19.4" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/@react-native/codegen/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@react-native/codegen/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@react-native/codegen/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@react-native/community-cli-plugin": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.81.5.tgz", - "integrity": "sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw==", - "license": "MIT", - "dependencies": { - "@react-native/dev-middleware": "0.81.5", - "debug": "^4.4.0", - "invariant": "^2.2.4", - "metro": "^0.83.1", - "metro-config": "^0.83.1", - "metro-core": "^0.83.1", - "semver": "^7.1.3" - }, - "engines": { - "node": ">= 20.19.4" - }, - "peerDependencies": { - "@react-native-community/cli": "*", - "@react-native/metro-config": "*" - }, - "peerDependenciesMeta": { - "@react-native-community/cli": { - "optional": true - }, - "@react-native/metro-config": { - "optional": true - } - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@react-native/debugger-frontend": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.81.5.tgz", - "integrity": "sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 20.19.4" - } - }, - "node_modules/@react-native/dev-middleware": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.81.5.tgz", - "integrity": "sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==", - "license": "MIT", - "dependencies": { - "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.81.5", - "chrome-launcher": "^0.15.2", - "chromium-edge-launcher": "^0.2.0", - "connect": "^3.6.5", - "debug": "^4.4.0", - "invariant": "^2.2.4", - "nullthrows": "^1.1.1", - "open": "^7.0.3", - "serve-static": "^1.16.2", - "ws": "^6.2.3" - }, - "engines": { - "node": ">= 20.19.4" - } - }, - "node_modules/@react-native/dev-middleware/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@react-native/gradle-plugin": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.81.5.tgz", - "integrity": "sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg==", - "license": "MIT", - "engines": { - "node": ">= 20.19.4" - } - }, - "node_modules/@react-native/js-polyfills": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.81.5.tgz", - "integrity": "sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w==", - "license": "MIT", - "engines": { - "node": ">= 20.19.4" - } - }, - "node_modules/@react-native/normalize-colors": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.81.5.tgz", - "integrity": "sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==", - "license": "MIT" - }, - "node_modules/@react-navigation/bottom-tabs": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.9.0.tgz", - "integrity": "sha512-024FWdHp3ZsE5rP8tmGI4vh+1z3wg8u8E9Frep8eeGoYo1h9rQhvgofQDGxknmrKsb7t8o8Dim+IZSvl57cPFQ==", - "license": "MIT", - "dependencies": { - "@react-navigation/elements": "^2.9.3", - "color": "^4.2.3", - "sf-symbols-typescript": "^2.1.0" - }, - "peerDependencies": { - "@react-navigation/native": "^7.1.26", - "react": ">= 18.2.0", - "react-native": "*", - "react-native-safe-area-context": ">= 4.0.0", - "react-native-screens": ">= 4.0.0" - } - }, - "node_modules/@react-navigation/core": { - "version": "7.13.7", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.13.7.tgz", - "integrity": "sha512-k2ABo3250vq1ovOh/iVwXS6Hwr5PVRGXoPh/ewVFOOuEKTvOx9i//OBzt8EF+HokBxS2HBRlR2b+aCOmscRqBw==", - "license": "MIT", - "dependencies": { - "@react-navigation/routers": "^7.5.3", - "escape-string-regexp": "^4.0.0", - "fast-deep-equal": "^3.1.3", - "nanoid": "^3.3.11", - "query-string": "^7.1.3", - "react-is": "^19.1.0", - "use-latest-callback": "^0.2.4", - "use-sync-external-store": "^1.5.0" - }, - "peerDependencies": { - "react": ">= 18.2.0" - } - }, - "node_modules/@react-navigation/elements": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.3.tgz", - "integrity": "sha512-3+eyvWiVPIEf6tN9UdduhOEHcTuNe3R5WovgiVkfH9+jApHMTZDc2loePTpY/i2HDJhObhhChpJzO6BVjrpdYQ==", - "license": "MIT", - "dependencies": { - "color": "^4.2.3", - "use-latest-callback": "^0.2.4", - "use-sync-external-store": "^1.5.0" - }, - "peerDependencies": { - "@react-native-masked-view/masked-view": ">= 0.2.0", - "@react-navigation/native": "^7.1.26", - "react": ">= 18.2.0", - "react-native": "*", - "react-native-safe-area-context": ">= 4.0.0" - }, - "peerDependenciesMeta": { - "@react-native-masked-view/masked-view": { - "optional": true - } - } - }, - "node_modules/@react-navigation/native": { - "version": "7.1.26", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.26.tgz", - "integrity": "sha512-RhKmeD0E2ejzKS6z8elAfdfwShpcdkYY8zJzvHYLq+wv183BBcElTeyMLcIX6wIn7QutXeI92Yi21t7aUWfqNQ==", - "license": "MIT", - "dependencies": { - "@react-navigation/core": "^7.13.7", - "escape-string-regexp": "^4.0.0", - "fast-deep-equal": "^3.1.3", - "nanoid": "^3.3.11", - "use-latest-callback": "^0.2.4" - }, - "peerDependencies": { - "react": ">= 18.2.0", - "react-native": "*" - } - }, - "node_modules/@react-navigation/native-stack": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.9.0.tgz", - "integrity": "sha512-C/mNPhI0Pnerl7C2cB+6fAkdgSmfKECMERrbyfjx3P6JmEuTC54o+GV1c62FUmlRaRUassVHbtw4EeaY2uLh0g==", - "license": "MIT", - "dependencies": { - "@react-navigation/elements": "^2.9.3", - "color": "^4.2.3", - "sf-symbols-typescript": "^2.1.0", - "warn-once": "^0.1.1" - }, - "peerDependencies": { - "@react-navigation/native": "^7.1.26", - "react": ">= 18.2.0", - "react-native": "*", - "react-native-safe-area-context": ">= 4.0.0", - "react-native-screens": ">= 4.0.0" - } - }, - "node_modules/@react-navigation/routers": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.5.3.tgz", - "integrity": "sha512-1tJHg4KKRJuQ1/EvJxatrMef3NZXEPzwUIUZ3n1yJ2t7Q97siwRtbynRpQG9/69ebbtiZ8W3ScOZF/OmhvM4Rg==", - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/node": { - "version": "25.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", - "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", - "license": "MIT", - "dependencies": { - "undici-types": "~7.16.0" - } - }, - "node_modules/@types/react": { - "version": "19.1.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.17.tgz", - "integrity": "sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "license": "MIT" - }, - "node_modules/@types/yargs": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", - "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "license": "MIT" - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, - "node_modules/@urql/core": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@urql/core/-/core-5.2.0.tgz", - "integrity": "sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==", - "license": "MIT", - "dependencies": { - "@0no-co/graphql.web": "^1.0.13", - "wonka": "^6.3.2" - } - }, - "node_modules/@urql/exchange-retry": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-1.3.2.tgz", - "integrity": "sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg==", - "license": "MIT", - "dependencies": { - "@urql/core": "^5.1.2", - "wonka": "^6.3.2" - }, - "peerDependencies": { - "@urql/core": "^5.0.0" - } - }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", - "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/anser": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", - "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", - "license": "MIT" - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "license": "MIT" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-hidden": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", - "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/array-timsort": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "license": "MIT" - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "license": "MIT" - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "license": "MIT" - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-react-compiler": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz", - "integrity": "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.0" - } - }, - "node_modules/babel-plugin-react-native-web": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.21.2.tgz", - "integrity": "sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==", - "license": "MIT" - }, - "node_modules/babel-plugin-syntax-hermes-parser": { - "version": "0.29.1", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.29.1.tgz", - "integrity": "sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==", - "license": "MIT", - "dependencies": { - "hermes-parser": "0.29.1" - } - }, - "node_modules/babel-plugin-transform-flow-enums": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", - "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==", - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-flow": "^7.12.1" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", - "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/babel-preset-expo": { - "version": "54.0.9", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-54.0.9.tgz", - "integrity": "sha512-8J6hRdgEC2eJobjoft6mKJ294cLxmi3khCUy2JJQp4htOYYkllSLUq6vudWJkTJiIuGdVR4bR6xuz2EvJLWHNg==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/plugin-proposal-decorators": "^7.12.9", - "@babel/plugin-proposal-export-default-from": "^7.24.7", - "@babel/plugin-syntax-export-default-from": "^7.24.7", - "@babel/plugin-transform-class-static-block": "^7.27.1", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-flow-strip-types": "^7.25.2", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-runtime": "^7.24.7", - "@babel/preset-react": "^7.22.15", - "@babel/preset-typescript": "^7.23.0", - "@react-native/babel-preset": "0.81.5", - "babel-plugin-react-compiler": "^1.0.0", - "babel-plugin-react-native-web": "~0.21.0", - "babel-plugin-syntax-hermes-parser": "^0.29.1", - "babel-plugin-transform-flow-enums": "^0.0.2", - "debug": "^4.3.4", - "resolve-from": "^5.0.0" - }, - "peerDependencies": { - "@babel/runtime": "^7.20.0", - "expo": "*", - "react-refresh": ">=0.14.0 <1.0.0" - }, - "peerDependenciesMeta": { - "@babel/runtime": { - "optional": true - }, - "expo": { - "optional": true - } - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/baseline-browser-mapping": { - "version": "2.9.13", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.13.tgz", - "integrity": "sha512-WhtvB2NG2wjr04+h77sg3klAIwrgOqnjS49GGudnUPGFFgg7G17y7Qecqp+2Dr5kUDxNRBca0SK7cG8JwzkWDQ==", - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.js" - } - }, - "node_modules/better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", - "license": "MIT", - "dependencies": { - "open": "^8.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/better-opn/node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "license": "Unlicense", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" - }, - "node_modules/bplist-creator": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", - "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", - "license": "MIT", - "dependencies": { - "stream-buffers": "2.2.x" - } - }, - "node_modules/bplist-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", - "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", - "license": "MIT", - "dependencies": { - "big-integer": "1.6.x" - }, - "engines": { - "node": ">= 5.10.0" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001763", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001763.tgz", - "integrity": "sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/chrome-launcher": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", - "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", - "license": "Apache-2.0", - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - }, - "bin": { - "print-chrome-path": "bin/print-chrome-path.js" - }, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/chromium-edge-launcher": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", - "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", - "license": "Apache-2.0", - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0", - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "license": "MIT" - }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT" - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/comment-json": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.5.1.tgz", - "integrity": "sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==", - "license": "MIT", - "dependencies": { - "array-timsort": "^1.0.3", - "core-util-is": "^1.0.3", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", - "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.1.0", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/compression/node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, - "node_modules/core-js-compat": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", - "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/cross-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", - "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.7.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/css-in-js-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz", - "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==", - "license": "MIT", - "dependencies": { - "hyphenate-style-name": "^1.0.3" - } - }, - "node_modules/css-select": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", - "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", - "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "license": "MIT" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "license": "Apache-2.0" - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "license": "MIT" - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dotenv": { - "version": "16.4.7", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dotenv-expand": { - "version": "11.0.7", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", - "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", - "license": "BSD-2-Clause", - "dependencies": { - "dotenv": "^16.4.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.267", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", - "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-editor": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", - "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "license": "MIT", - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/exec-async": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", - "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==", - "license": "MIT" - }, - "node_modules/expo": { - "version": "54.0.31", - "resolved": "https://registry.npmjs.org/expo/-/expo-54.0.31.tgz", - "integrity": "sha512-kQ3RDqA/a59I7y+oqQGyrPbbYlgPMUdKBOgvFLpoHbD2bCM+F75i4N0mUijy7dG5F/CUCu2qHmGGUCXBbMDkCg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.0", - "@expo/cli": "54.0.21", - "@expo/config": "~12.0.13", - "@expo/config-plugins": "~54.0.4", - "@expo/devtools": "0.1.8", - "@expo/fingerprint": "0.15.4", - "@expo/metro": "~54.2.0", - "@expo/metro-config": "54.0.13", - "@expo/vector-icons": "^15.0.3", - "@ungap/structured-clone": "^1.3.0", - "babel-preset-expo": "~54.0.9", - "expo-asset": "~12.0.12", - "expo-constants": "~18.0.13", - "expo-file-system": "~19.0.21", - "expo-font": "~14.0.10", - "expo-keep-awake": "~15.0.8", - "expo-modules-autolinking": "3.0.24", - "expo-modules-core": "3.0.29", - "pretty-format": "^29.7.0", - "react-refresh": "^0.14.2", - "whatwg-url-without-unicode": "8.0.0-3" - }, - "bin": { - "expo": "bin/cli", - "expo-modules-autolinking": "bin/autolinking", - "fingerprint": "bin/fingerprint" - }, - "peerDependencies": { - "@expo/dom-webview": "*", - "@expo/metro-runtime": "*", - "react": "*", - "react-native": "*", - "react-native-webview": "*" - }, - "peerDependenciesMeta": { - "@expo/dom-webview": { - "optional": true - }, - "@expo/metro-runtime": { - "optional": true - }, - "react-native-webview": { - "optional": true - } - } - }, - "node_modules/expo-asset": { - "version": "12.0.12", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-12.0.12.tgz", - "integrity": "sha512-CsXFCQbx2fElSMn0lyTdRIyKlSXOal6ilLJd+yeZ6xaC7I9AICQgscY5nj0QcwgA+KYYCCEQEBndMsmj7drOWQ==", - "license": "MIT", - "dependencies": { - "@expo/image-utils": "^0.8.8", - "expo-constants": "~18.0.12" - }, - "peerDependencies": { - "expo": "*", - "react": "*", - "react-native": "*" - } - }, - "node_modules/expo-constants": { - "version": "18.0.13", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-18.0.13.tgz", - "integrity": "sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ==", - "license": "MIT", - "dependencies": { - "@expo/config": "~12.0.13", - "@expo/env": "~2.0.8" - }, - "peerDependencies": { - "expo": "*", - "react-native": "*" - } - }, - "node_modules/expo-file-system": { - "version": "19.0.21", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-19.0.21.tgz", - "integrity": "sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg==", - "license": "MIT", - "peerDependencies": { - "expo": "*", - "react-native": "*" - } - }, - "node_modules/expo-font": { - "version": "14.0.10", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-14.0.10.tgz", - "integrity": "sha512-UqyNaaLKRpj4pKAP4HZSLnuDQqueaO5tB1c/NWu5vh1/LF9ulItyyg2kF/IpeOp0DeOLk0GY0HrIXaKUMrwB+Q==", - "license": "MIT", - "dependencies": { - "fontfaceobserver": "^2.1.0" - }, - "peerDependencies": { - "expo": "*", - "react": "*", - "react-native": "*" - } - }, - "node_modules/expo-keep-awake": { - "version": "15.0.8", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-15.0.8.tgz", - "integrity": "sha512-YK9M1VrnoH1vLJiQzChZgzDvVimVoriibiDIFLbQMpjYBnvyfUeHJcin/Gx1a+XgupNXy92EQJLgI/9ZuXajYQ==", - "license": "MIT", - "peerDependencies": { - "expo": "*", - "react": "*" - } - }, - "node_modules/expo-linking": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-8.0.11.tgz", - "integrity": "sha512-+VSaNL5om3kOp/SSKO5qe6cFgfSIWnnQDSbA7XLs3ECkYzXRquk5unxNS3pg7eK5kNUmQ4kgLI7MhTggAEUBLA==", - "license": "MIT", - "dependencies": { - "expo-constants": "~18.0.12", - "invariant": "^2.2.4" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/expo-modules-autolinking": { - "version": "3.0.24", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-3.0.24.tgz", - "integrity": "sha512-TP+6HTwhL7orDvsz2VzauyQlXJcAWyU3ANsZ7JGL4DQu8XaZv/A41ZchbtAYLfozNA2Ya1Hzmhx65hXryBMjaQ==", - "license": "MIT", - "dependencies": { - "@expo/spawn-async": "^1.7.2", - "chalk": "^4.1.0", - "commander": "^7.2.0", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0" - }, - "bin": { - "expo-modules-autolinking": "bin/expo-modules-autolinking.js" - } - }, - "node_modules/expo-modules-core": { - "version": "3.0.29", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-3.0.29.tgz", - "integrity": "sha512-LzipcjGqk8gvkrOUf7O2mejNWugPkf3lmd9GkqL9WuNyeN2fRwU0Dn77e3ZUKI3k6sI+DNwjkq4Nu9fNN9WS7Q==", - "license": "MIT", - "dependencies": { - "invariant": "^2.2.4" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/expo-router": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-6.0.21.tgz", - "integrity": "sha512-wjTUjrnWj6gRYjaYl1kYfcRnNE4ZAQ0kz0+sQf6/mzBd/OU6pnOdD7WrdAW3pTTpm52Q8sMoeX98tNQEddg2uA==", - "license": "MIT", - "dependencies": { - "@expo/metro-runtime": "^6.1.2", - "@expo/schema-utils": "^0.1.8", - "@radix-ui/react-slot": "1.2.0", - "@radix-ui/react-tabs": "^1.1.12", - "@react-navigation/bottom-tabs": "^7.4.0", - "@react-navigation/native": "^7.1.8", - "@react-navigation/native-stack": "^7.3.16", - "client-only": "^0.0.1", - "debug": "^4.3.4", - "escape-string-regexp": "^4.0.0", - "expo-server": "^1.0.5", - "fast-deep-equal": "^3.1.3", - "invariant": "^2.2.4", - "nanoid": "^3.3.8", - "query-string": "^7.1.3", - "react-fast-compare": "^3.2.2", - "react-native-is-edge-to-edge": "^1.1.6", - "semver": "~7.6.3", - "server-only": "^0.0.1", - "sf-symbols-typescript": "^2.1.0", - "shallowequal": "^1.1.0", - "use-latest-callback": "^0.2.1", - "vaul": "^1.1.2" - }, - "peerDependencies": { - "@expo/metro-runtime": "^6.1.2", - "@react-navigation/drawer": "^7.5.0", - "@testing-library/react-native": ">= 12.0.0", - "expo": "*", - "expo-constants": "^18.0.12", - "expo-linking": "^8.0.11", - "react": "*", - "react-dom": "*", - "react-native": "*", - "react-native-gesture-handler": "*", - "react-native-reanimated": "*", - "react-native-safe-area-context": ">= 5.4.0", - "react-native-screens": "*", - "react-native-web": "*", - "react-server-dom-webpack": "~19.0.3 || ~19.1.4 || ~19.2.3" - }, - "peerDependenciesMeta": { - "@react-navigation/drawer": { - "optional": true - }, - "@testing-library/react-native": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-native-gesture-handler": { - "optional": true - }, - "react-native-reanimated": { - "optional": true - }, - "react-native-web": { - "optional": true - }, - "react-server-dom-webpack": { - "optional": true - } - } - }, - "node_modules/expo-router/node_modules/@radix-ui/react-collection": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", - "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/expo-router/node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/expo-router/node_modules/@radix-ui/react-presence": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", - "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/expo-router/node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/expo-router/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/expo-router/node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", - "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/expo-router/node_modules/@radix-ui/react-tabs": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", - "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/expo-router/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/expo-server": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/expo-server/-/expo-server-1.0.5.tgz", - "integrity": "sha512-IGR++flYH70rhLyeXF0Phle56/k4cee87WeQ4mamS+MkVAVP+dDlOHf2nN06Z9Y2KhU0Gp1k+y61KkghF7HdhA==", - "license": "MIT", - "engines": { - "node": ">=20.16.0" - } - }, - "node_modules/expo-splash-screen": { - "version": "31.0.13", - "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-31.0.13.tgz", - "integrity": "sha512-1epJLC1cDlwwj089R2h8cxaU5uk4ONVAC+vzGiTZH4YARQhL4Stlz1MbR6yAS173GMosvkE6CAeihR7oIbCkDA==", - "license": "MIT", - "dependencies": { - "@expo/prebuild-config": "^54.0.8" - }, - "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo-status-bar": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-3.0.9.tgz", - "integrity": "sha512-xyYyVg6V1/SSOZWh4Ni3U129XHCnFHBTcUo0dhWtFDrZbNp/duw5AGsQfb2sVeU0gxWHXSY1+5F0jnKYC7WuOw==", - "license": "MIT", - "dependencies": { - "react-native-is-edge-to-edge": "^1.2.1" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/expo/node_modules/@expo/cli": { - "version": "54.0.21", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-54.0.21.tgz", - "integrity": "sha512-L/FdpyZDsg/Nq6xW6kfiyF9DUzKfLZCKFXEVZcDqCNar6bXxQVotQyvgexRvtUF5nLinuT/UafLOdC3FUALUmA==", - "license": "MIT", - "dependencies": { - "@0no-co/graphql.web": "^1.0.8", - "@expo/code-signing-certificates": "^0.0.6", - "@expo/config": "~12.0.13", - "@expo/config-plugins": "~54.0.4", - "@expo/devcert": "^1.2.1", - "@expo/env": "~2.0.8", - "@expo/image-utils": "^0.8.8", - "@expo/json-file": "^10.0.8", - "@expo/metro": "~54.2.0", - "@expo/metro-config": "~54.0.13", - "@expo/osascript": "^2.3.8", - "@expo/package-manager": "^1.9.9", - "@expo/plist": "^0.4.8", - "@expo/prebuild-config": "^54.0.8", - "@expo/schema-utils": "^0.1.8", - "@expo/spawn-async": "^1.7.2", - "@expo/ws-tunnel": "^1.0.1", - "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "0.81.5", - "@urql/core": "^5.0.6", - "@urql/exchange-retry": "^1.3.0", - "accepts": "^1.3.8", - "arg": "^5.0.2", - "better-opn": "~3.0.2", - "bplist-creator": "0.1.0", - "bplist-parser": "^0.3.1", - "chalk": "^4.0.0", - "ci-info": "^3.3.0", - "compression": "^1.7.4", - "connect": "^3.7.0", - "debug": "^4.3.4", - "env-editor": "^0.4.1", - "expo-server": "^1.0.5", - "freeport-async": "^2.0.0", - "getenv": "^2.0.0", - "glob": "^13.0.0", - "lan-network": "^0.1.6", - "minimatch": "^9.0.0", - "node-forge": "^1.3.3", - "npm-package-arg": "^11.0.0", - "ora": "^3.4.0", - "picomatch": "^3.0.1", - "pretty-bytes": "^5.6.0", - "pretty-format": "^29.7.0", - "progress": "^2.0.3", - "prompts": "^2.3.2", - "qrcode-terminal": "0.11.0", - "require-from-string": "^2.0.2", - "requireg": "^0.2.2", - "resolve": "^1.22.2", - "resolve-from": "^5.0.0", - "resolve.exports": "^2.0.3", - "semver": "^7.6.0", - "send": "^0.19.0", - "slugify": "^1.3.4", - "source-map-support": "~0.5.21", - "stacktrace-parser": "^0.1.10", - "structured-headers": "^0.4.1", - "tar": "^7.5.2", - "terminal-link": "^2.1.1", - "undici": "^6.18.2", - "wrap-ansi": "^7.0.0", - "ws": "^8.12.1" - }, - "bin": { - "expo-internal": "build/bin/cli" - }, - "peerDependencies": { - "expo": "*", - "expo-router": "*", - "react-native": "*" - }, - "peerDependenciesMeta": { - "expo-router": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/expo/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/expo/node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/expo/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/expo/node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", - "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", - "license": "Apache-2.0" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fbjs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", - "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", - "license": "MIT", - "dependencies": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^1.0.35" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", - "license": "MIT" - }, - "node_modules/fbjs/node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "license": "MIT", - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flow-enums-runtime": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", - "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==", - "license": "MIT" - }, - "node_modules/fontfaceobserver": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", - "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==", - "license": "BSD-2-Clause" - }, - "node_modules/freeport-async": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", - "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/getenv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-2.0.0.tgz", - "integrity": "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/glob": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", - "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.1.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", - "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hermes-estree": { - "version": "0.29.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.29.1.tgz", - "integrity": "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==", - "license": "MIT" - }, - "node_modules/hermes-parser": { - "version": "0.29.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.29.1.tgz", - "integrity": "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==", - "license": "MIT", - "dependencies": { - "hermes-estree": "0.29.1" - } - }, - "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/hyphenate-style-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", - "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==", - "license": "BSD-3-Clause" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", - "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", - "license": "MIT", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=16.x" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/inline-style-prefixer": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-7.0.1.tgz", - "integrity": "sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw==", - "license": "MIT", - "dependencies": { - "css-in-js-utils": "^3.1.0" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", - "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jimp-compact": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", - "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==", - "license": "MIT" - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsc-safe-url": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", - "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==", - "license": "0BSD" - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lan-network": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/lan-network/-/lan-network-0.1.7.tgz", - "integrity": "sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==", - "license": "MIT", - "bin": { - "lan-network": "dist/lan-network-cli.js" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lighthouse-logger": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", - "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", - "license": "Apache-2.0", - "dependencies": { - "debug": "^2.6.9", - "marky": "^1.2.2" - } - }, - "node_modules/lighthouse-logger/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/lighthouse-logger/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/lightningcss": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", - "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.30.2", - "lightningcss-darwin-arm64": "1.30.2", - "lightningcss-darwin-x64": "1.30.2", - "lightningcss-freebsd-x64": "1.30.2", - "lightningcss-linux-arm-gnueabihf": "1.30.2", - "lightningcss-linux-arm64-gnu": "1.30.2", - "lightningcss-linux-arm64-musl": "1.30.2", - "lightningcss-linux-x64-gnu": "1.30.2", - "lightningcss-linux-x64-musl": "1.30.2", - "lightningcss-win32-arm64-msvc": "1.30.2", - "lightningcss-win32-x64-msvc": "1.30.2" - } - }, - "node_modules/lightningcss-android-arm64": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", - "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", - "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", - "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", - "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", - "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", - "cpu": [ - "arm" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", - "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", - "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", - "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", - "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", - "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", - "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "license": "MIT", - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/log-symbols/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/marky": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", - "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", - "license": "Apache-2.0" - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "license": "CC0-1.0" - }, - "node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/metro": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.3.tgz", - "integrity": "sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/core": "^7.25.2", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.3", - "@babel/types": "^7.25.2", - "accepts": "^1.3.7", - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "connect": "^3.6.5", - "debug": "^4.4.0", - "error-stack-parser": "^2.0.6", - "flow-enums-runtime": "^0.0.6", - "graceful-fs": "^4.2.4", - "hermes-parser": "0.32.0", - "image-size": "^1.0.2", - "invariant": "^2.2.4", - "jest-worker": "^29.7.0", - "jsc-safe-url": "^0.2.2", - "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.83.3", - "metro-cache": "0.83.3", - "metro-cache-key": "0.83.3", - "metro-config": "0.83.3", - "metro-core": "0.83.3", - "metro-file-map": "0.83.3", - "metro-resolver": "0.83.3", - "metro-runtime": "0.83.3", - "metro-source-map": "0.83.3", - "metro-symbolicate": "0.83.3", - "metro-transform-plugins": "0.83.3", - "metro-transform-worker": "0.83.3", - "mime-types": "^2.1.27", - "nullthrows": "^1.1.1", - "serialize-error": "^2.1.0", - "source-map": "^0.5.6", - "throat": "^5.0.0", - "ws": "^7.5.10", - "yargs": "^17.6.2" - }, - "bin": { - "metro": "src/cli.js" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-babel-transformer": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.3.tgz", - "integrity": "sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.2", - "flow-enums-runtime": "^0.0.6", - "hermes-parser": "0.32.0", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-babel-transformer/node_modules/hermes-estree": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz", - "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==", - "license": "MIT" - }, - "node_modules/metro-babel-transformer/node_modules/hermes-parser": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz", - "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==", - "license": "MIT", - "dependencies": { - "hermes-estree": "0.32.0" - } - }, - "node_modules/metro-cache": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.3.tgz", - "integrity": "sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==", - "license": "MIT", - "dependencies": { - "exponential-backoff": "^3.1.1", - "flow-enums-runtime": "^0.0.6", - "https-proxy-agent": "^7.0.5", - "metro-core": "0.83.3" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-cache-key": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.3.tgz", - "integrity": "sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==", - "license": "MIT", - "dependencies": { - "flow-enums-runtime": "^0.0.6" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-config": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.3.tgz", - "integrity": "sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==", - "license": "MIT", - "dependencies": { - "connect": "^3.6.5", - "flow-enums-runtime": "^0.0.6", - "jest-validate": "^29.7.0", - "metro": "0.83.3", - "metro-cache": "0.83.3", - "metro-core": "0.83.3", - "metro-runtime": "0.83.3", - "yaml": "^2.6.1" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-core": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.3.tgz", - "integrity": "sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==", - "license": "MIT", - "dependencies": { - "flow-enums-runtime": "^0.0.6", - "lodash.throttle": "^4.1.1", - "metro-resolver": "0.83.3" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-file-map": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.3.tgz", - "integrity": "sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "fb-watchman": "^2.0.0", - "flow-enums-runtime": "^0.0.6", - "graceful-fs": "^4.2.4", - "invariant": "^2.2.4", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "nullthrows": "^1.1.1", - "walker": "^1.0.7" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-minify-terser": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.3.tgz", - "integrity": "sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==", - "license": "MIT", - "dependencies": { - "flow-enums-runtime": "^0.0.6", - "terser": "^5.15.0" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-resolver": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.3.tgz", - "integrity": "sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==", - "license": "MIT", - "dependencies": { - "flow-enums-runtime": "^0.0.6" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-runtime": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.3.tgz", - "integrity": "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.0", - "flow-enums-runtime": "^0.0.6" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-source-map": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.3.tgz", - "integrity": "sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.3", - "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", - "@babel/types": "^7.25.2", - "flow-enums-runtime": "^0.0.6", - "invariant": "^2.2.4", - "metro-symbolicate": "0.83.3", - "nullthrows": "^1.1.1", - "ob1": "0.83.3", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-symbolicate": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.3.tgz", - "integrity": "sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==", - "license": "MIT", - "dependencies": { - "flow-enums-runtime": "^0.0.6", - "invariant": "^2.2.4", - "metro-source-map": "0.83.3", - "nullthrows": "^1.1.1", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - }, - "bin": { - "metro-symbolicate": "src/index.js" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-transform-plugins": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.3.tgz", - "integrity": "sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.2", - "@babel/generator": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.3", - "flow-enums-runtime": "^0.0.6", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro-transform-worker": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.3.tgz", - "integrity": "sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.2", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", - "@babel/types": "^7.25.2", - "flow-enums-runtime": "^0.0.6", - "metro": "0.83.3", - "metro-babel-transformer": "0.83.3", - "metro-cache": "0.83.3", - "metro-cache-key": "0.83.3", - "metro-minify-terser": "0.83.3", - "metro-source-map": "0.83.3", - "metro-transform-plugins": "0.83.3", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/metro/node_modules/hermes-estree": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz", - "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==", - "license": "MIT" - }, - "node_modules/metro/node_modules/hermes-parser": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz", - "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==", - "license": "MIT", - "dependencies": { - "hermes-estree": "0.32.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minizlib": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", - "license": "MIT", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nativewind": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/nativewind/-/nativewind-4.2.1.tgz", - "integrity": "sha512-10uUB2Dlli3MH3NDL5nMHqJHz1A3e/E6mzjTj6cl7hHECClJ7HpE6v+xZL+GXdbwQSnWE+UWMIMsNz7yOQkAJQ==", - "license": "MIT", - "dependencies": { - "comment-json": "^4.2.5", - "debug": "^4.3.7", - "react-native-css-interop": "0.2.1" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "tailwindcss": ">3.3.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/nested-error-stacks": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", - "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", - "license": "MIT" - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", - "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", - "license": "ISC", - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nullthrows": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", - "license": "MIT" - }, - "node_modules/ob1": { - "version": "0.83.3", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.3.tgz", - "integrity": "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==", - "license": "MIT", - "dependencies": { - "flow-enums-runtime": "^0.0.6" - }, - "engines": { - "node": ">=20.19.4" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", - "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/ora/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ora/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-png": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", - "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", - "license": "MIT", - "dependencies": { - "pngjs": "^3.3.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/plist": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", - "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", - "license": "MIT", - "dependencies": { - "@xmldom/xmldom": "^0.8.8", - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - }, - "engines": { - "node": ">=10.4.0" - } - }, - "node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", - "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", - "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.1.1" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "jiti": ">=1.21.0", - "postcss": ">=8.0.9", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, - "node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "license": "MIT", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qrcode-terminal": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", - "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==", - "bin": { - "qrcode-terminal": "bin/qrcode-terminal.js" - } - }, - "node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-devtools-core": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-6.1.5.tgz", - "integrity": "sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==", - "license": "MIT", - "dependencies": { - "shell-quote": "^1.6.1", - "ws": "^7" - } - }, - "node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.0" - } - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "license": "MIT" - }, - "node_modules/react-freeze": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz", - "integrity": "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">=17.0.0" - } - }, - "node_modules/react-is": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.3.tgz", - "integrity": "sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==", - "license": "MIT" - }, - "node_modules/react-native": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.81.5.tgz", - "integrity": "sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw==", - "license": "MIT", - "dependencies": { - "@jest/create-cache-key-function": "^29.7.0", - "@react-native/assets-registry": "0.81.5", - "@react-native/codegen": "0.81.5", - "@react-native/community-cli-plugin": "0.81.5", - "@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", - "abort-controller": "^3.0.0", - "anser": "^1.4.9", - "ansi-regex": "^5.0.0", - "babel-jest": "^29.7.0", - "babel-plugin-syntax-hermes-parser": "0.29.1", - "base64-js": "^1.5.1", - "commander": "^12.0.0", - "flow-enums-runtime": "^0.0.6", - "glob": "^7.1.1", - "invariant": "^2.2.4", - "jest-environment-node": "^29.7.0", - "memoize-one": "^5.0.0", - "metro-runtime": "^0.83.1", - "metro-source-map": "^0.83.1", - "nullthrows": "^1.1.1", - "pretty-format": "^29.7.0", - "promise": "^8.3.0", - "react-devtools-core": "^6.1.5", - "react-refresh": "^0.14.0", - "regenerator-runtime": "^0.13.2", - "scheduler": "0.26.0", - "semver": "^7.1.3", - "stacktrace-parser": "^0.1.10", - "whatwg-fetch": "^3.0.0", - "ws": "^6.2.3", - "yargs": "^17.6.2" - }, - "bin": { - "react-native": "cli.js" - }, - "engines": { - "node": ">= 20.19.4" - }, - "peerDependencies": { - "@types/react": "^19.1.0", - "react": "^19.1.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-native-css-interop": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/react-native-css-interop/-/react-native-css-interop-0.2.1.tgz", - "integrity": "sha512-B88f5rIymJXmy1sNC/MhTkb3xxBej1KkuAt7TiT9iM7oXz3RM8Bn+7GUrfR02TvSgKm4cg2XiSuLEKYfKwNsjA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.3.7", - "lightningcss": "~1.27.0", - "semver": "^7.6.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": ">=18", - "react-native": "*", - "react-native-reanimated": ">=3.6.2", - "tailwindcss": "~3" - }, - "peerDependenciesMeta": { - "react-native-safe-area-context": { - "optional": true - }, - "react-native-svg": { - "optional": true - } - } - }, - "node_modules/react-native-css-interop/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "license": "Apache-2.0", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.27.0.tgz", - "integrity": "sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==", - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.27.0", - "lightningcss-darwin-x64": "1.27.0", - "lightningcss-freebsd-x64": "1.27.0", - "lightningcss-linux-arm-gnueabihf": "1.27.0", - "lightningcss-linux-arm64-gnu": "1.27.0", - "lightningcss-linux-arm64-musl": "1.27.0", - "lightningcss-linux-x64-gnu": "1.27.0", - "lightningcss-linux-x64-musl": "1.27.0", - "lightningcss-win32-arm64-msvc": "1.27.0", - "lightningcss-win32-x64-msvc": "1.27.0" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-darwin-arm64": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.27.0.tgz", - "integrity": "sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-darwin-x64": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.27.0.tgz", - "integrity": "sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-freebsd-x64": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.27.0.tgz", - "integrity": "sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.27.0.tgz", - "integrity": "sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==", - "cpu": [ - "arm" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.27.0.tgz", - "integrity": "sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-linux-arm64-musl": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.27.0.tgz", - "integrity": "sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-linux-x64-gnu": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.27.0.tgz", - "integrity": "sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-linux-x64-musl": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.27.0.tgz", - "integrity": "sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.27.0.tgz", - "integrity": "sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-win32-x64-msvc": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.27.0.tgz", - "integrity": "sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-native-is-edge-to-edge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.2.1.tgz", - "integrity": "sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==", - "license": "MIT", - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/react-native-reanimated": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.1.6.tgz", - "integrity": "sha512-F+ZJBYiok/6Jzp1re75F/9aLzkgoQCOh4yxrnwATa8392RvM3kx+fiXXFvwcgE59v48lMwd9q0nzF1oJLXpfxQ==", - "license": "MIT", - "dependencies": { - "react-native-is-edge-to-edge": "^1.2.1", - "semver": "7.7.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0", - "react": "*", - "react-native": "*", - "react-native-worklets": ">=0.5.0" - } - }, - "node_modules/react-native-reanimated/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-native-safe-area-context": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.6.2.tgz", - "integrity": "sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg==", - "license": "MIT", - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/react-native-screens": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.16.0.tgz", - "integrity": "sha512-yIAyh7F/9uWkOzCi1/2FqvNvK6Wb9Y1+Kzn16SuGfN9YFJDTbwlzGRvePCNTOX0recpLQF3kc2FmvMUhyTCH1Q==", - "license": "MIT", - "dependencies": { - "react-freeze": "^1.0.0", - "react-native-is-edge-to-edge": "^1.2.1", - "warn-once": "^0.1.0" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/react-native-svg": { - "version": "15.15.1", - "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.15.1.tgz", - "integrity": "sha512-ZUD1xwc3Hwo4cOmOLumjJVoc7lEf9oQFlHnLmgccLC19fNm6LVEdtB+Cnip6gEi0PG3wfvVzskViEtrySQP8Fw==", - "license": "MIT", - "dependencies": { - "css-select": "^5.1.0", - "css-tree": "^1.1.3", - "warn-once": "0.1.1" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/react-native-web": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.21.2.tgz", - "integrity": "sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.6", - "@react-native/normalize-colors": "^0.74.1", - "fbjs": "^3.0.4", - "inline-style-prefixer": "^7.0.1", - "memoize-one": "^6.0.0", - "nullthrows": "^1.1.1", - "postcss-value-parser": "^4.2.0", - "styleq": "^0.1.3" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-native-web/node_modules/@react-native/normalize-colors": { - "version": "0.74.89", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.89.tgz", - "integrity": "sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg==", - "license": "MIT" - }, - "node_modules/react-native-web/node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", - "license": "MIT" - }, - "node_modules/react-native-worklets": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/react-native-worklets/-/react-native-worklets-0.5.1.tgz", - "integrity": "sha512-lJG6Uk9YuojjEX/tQrCbcbmpdLCSFxDK1rJlkDhgqkVi1KZzG7cdcBFQRqyNOOzR9Y0CXNuldmtWTGOyM0k0+w==", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-arrow-functions": "^7.0.0-0", - "@babel/plugin-transform-class-properties": "^7.0.0-0", - "@babel/plugin-transform-classes": "^7.0.0-0", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", - "@babel/plugin-transform-optional-chaining": "^7.0.0-0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", - "@babel/plugin-transform-template-literals": "^7.0.0-0", - "@babel/plugin-transform-unicode-regex": "^7.0.0-0", - "@babel/preset-typescript": "^7.16.7", - "convert-source-map": "^2.0.0", - "semver": "7.7.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0", - "react": "*", - "react-native": "*" - } - }, - "node_modules/react-native-worklets/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-native/node_modules/@react-native/virtualized-lists": { - "version": "0.81.5", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.81.5.tgz", - "integrity": "sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw==", - "license": "MIT", - "dependencies": { - "invariant": "^2.2.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 20.19.4" - }, - "peerDependencies": { - "@types/react": "^19.1.0", - "react": "*", - "react-native": "*" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-native/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/react-native/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/react-native/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/react-native/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/react-native/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-native/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-remove-scroll": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", - "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", - "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "license": "MIT" - }, - "node_modules/regexpu-core": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", - "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.2", - "regjsgen": "^0.8.0", - "regjsparser": "^0.13.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.2.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.1.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requireg": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", - "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", - "dependencies": { - "nested-error-stacks": "~2.0.1", - "rc": "~1.2.7", - "resolve": "~1.7.1" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/requireg/node_modules/resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "license": "MIT", - "dependencies": { - "path-parse": "^1.0.5" - } - }, - "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", - "license": "MIT", - "dependencies": { - "global-dirs": "^0.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-workspace-root": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/resolve-workspace-root/-/resolve-workspace-root-2.0.1.tgz", - "integrity": "sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w==", - "license": "MIT" - }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "license": "MIT", - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/sax": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", - "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=11.0.0" - } - }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", - "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.4.1", - "range-parser": "~1.2.1", - "statuses": "~2.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serialize-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/serve-static": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", - "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "~0.19.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-static/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/server-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", - "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==", - "license": "MIT" - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/sf-symbols-typescript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sf-symbols-typescript/-/sf-symbols-typescript-2.2.0.tgz", - "integrity": "sha512-TPbeg0b7ylrswdGCji8FRGFAKuqbpQlLbL8SOle3j1iHSs5Ob5mhvMAxWN2UItOjgALAB5Zp3fmMfj8mbWvXKw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/simple-plist": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", - "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", - "license": "MIT", - "dependencies": { - "bplist-creator": "0.1.0", - "bplist-parser": "0.3.1", - "plist": "^3.0.5" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", - "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slugify": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", - "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "license": "MIT" - }, - "node_modules/stacktrace-parser": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", - "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.7.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==", - "license": "Unlicense", - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/structured-headers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", - "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==", - "license": "MIT" - }, - "node_modules/styleq": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/styleq/-/styleq-0.1.3.tgz", - "integrity": "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==", - "license": "MIT" - }, - "node_modules/sucrase": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", - "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "tinyglobby": "^0.2.11", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", - "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.7", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tar": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz", - "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.1.0", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.44.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", - "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "license": "MIT" - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "license": "BSD-3-Clause" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "license": "Apache-2.0" - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/ua-parser-js": { - "version": "1.0.41", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.41.tgz", - "integrity": "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "license": "MIT", - "bin": { - "ua-parser-js": "script/cli.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/undici": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", - "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, - "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "license": "MIT" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", - "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", - "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-latest-callback": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.6.tgz", - "integrity": "sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg==", - "license": "MIT", - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", - "license": "MIT", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vaul": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vaul/-/vaul-1.1.2.tgz", - "integrity": "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-dialog": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" - } - }, - "node_modules/vaul/node_modules/@radix-ui/react-dialog": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", - "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/vaul/node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", - "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-escape-keydown": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/vaul/node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", - "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/vaul/node_modules/@radix-ui/react-portal": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", - "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/vaul/node_modules/@radix-ui/react-presence": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", - "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/vaul/node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/vaul/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/vlq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", - "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", - "license": "MIT" - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/warn-once": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz", - "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==", - "license": "MIT" - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-fetch": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/whatwg-url-without-unicode": { - "version": "8.0.0-3", - "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz", - "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==", - "license": "MIT", - "dependencies": { - "buffer": "^5.4.3", - "punycode": "^2.1.1", - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/whatwg-url-without-unicode/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wonka": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.5.tgz", - "integrity": "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==", - "license": "MIT" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "license": "Apache-2.0", - "dependencies": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/xml2js": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", - "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==", - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xml2js/node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "license": "MIT", - "engines": { - "node": ">=8.0" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/apps/mobile/package.json b/apps/mobile/package.json deleted file mode 100644 index d7f50a7c..00000000 --- a/apps/mobile/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "@plotwist/mobile", - "main": "expo-router/entry", - "version": "1.0.0", - "private": true, - "scripts": { - "start": "expo start", - "dev": "expo start", - "android": "expo start --android", - "ios": "expo start --ios", - "web": "expo start --web" - }, - "dependencies": { - "@expo-google-fonts/space-grotesk": "^0.2.3", - "@react-navigation/native": "^7.1.8", - "expo": "~54.0.31", - "expo-dev-client": "~6.0.20", - "expo-font": "~14.0.10", - "expo-linking": "~8.0.11", - "expo-router": "~6.0.21", - "expo-splash-screen": "~31.0.13", - "expo-status-bar": "~3.0.9", - "expo-system-ui": "~6.0.9", - "nativewind": "^4.1.23", - "react": "19.1.0", - "react-dom": "19.1.0", - "react-native": "0.81.5", - "react-native-css-interop": "0.1.22", - "react-native-gesture-handler": "~2.28.0", - "react-native-reanimated": "~4.1.1", - "react-native-safe-area-context": "~5.6.0", - "react-native-screens": "~4.16.0", - "react-native-svg": "^15.15.1", - "react-native-web": "~0.21.0", - "react-native-worklets": "0.5.1", - "tailwindcss": "^3.4.17" - }, - "devDependencies": { - "@types/react": "~19.1.0", - "typescript": "~5.9.2" - } -} diff --git a/apps/mobile/tailwind.config.js b/apps/mobile/tailwind.config.js deleted file mode 100644 index 75c05c8e..00000000 --- a/apps/mobile/tailwind.config.js +++ /dev/null @@ -1,75 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -const plugin = require("tailwindcss/plugin"); - -module.exports = { - content: ["./{app,components}/**/*.{js,jsx,ts,tsx}"], - presets: [require("nativewind/preset")], - theme: { - extend: { - colors: { - background: "rgb(var(--color-background) / )", - foreground: "rgb(var(--color-foreground) / )", - primary: { - DEFAULT: "rgb(var(--color-primary) / )", - foreground: "rgb(var(--color-primary-foreground) / )", - }, - secondary: { - DEFAULT: "rgb(var(--color-secondary) / )", - foreground: "rgb(var(--color-secondary-foreground) / )", - }, - muted: { - DEFAULT: "rgb(var(--color-muted) / )", - foreground: "rgb(var(--color-muted-foreground) / )", - }, - accent: { - DEFAULT: "rgb(var(--color-accent) / )", - foreground: "rgb(var(--color-accent-foreground) / )", - }, - destructive: { - DEFAULT: "rgb(var(--color-destructive) / )", - foreground: - "rgb(var(--color-destructive-foreground) / )", - }, - border: "rgb(var(--color-border) / )", - input: "rgb(var(--color-input) / )", - ring: "rgb(var(--color-ring) / )", - card: { - DEFAULT: "rgb(var(--color-card) / )", - foreground: "rgb(var(--color-card-foreground) / )", - }, - }, - fontFamily: { - "space-grotesk": ["SpaceGrotesk_400Regular"], - "space-grotesk-medium": ["SpaceGrotesk_500Medium"], - "space-grotesk-semibold": ["SpaceGrotesk_600SemiBold"], - "space-grotesk-bold": ["SpaceGrotesk_700Bold"], - }, - }, - }, - plugins: [ - plugin(({ addBase }) => { - addBase({ - ":root": { - // Dark theme colors (RGB values) - "--color-background": "9 9 11", // #09090b - "--color-foreground": "250 250 250", // #fafafa - "--color-primary": "250 250 250", // #fafafa - "--color-primary-foreground": "24 24 27", // #18181b - "--color-secondary": "39 39 42", // #27272a - "--color-secondary-foreground": "250 250 250", // #fafafa - "--color-muted": "39 39 42", // #27272a - "--color-muted-foreground": "161 161 170", // #a1a1aa - "--color-accent": "39 39 42", // #27272a - "--color-accent-foreground": "250 250 250", // #fafafa - "--color-destructive": "127 29 29", // #7f1d1d - "--color-destructive-foreground": "250 250 250", // #fafafa - "--color-border": "39 39 42", // #27272a - "--color-input": "39 39 42", // #27272a - "--color-ring": "212 212 216", // #d4d4d8 - "--color-card": "9 9 11", // #09090b - "--color-card-foreground": "250 250 250", // #fafafa - }, - }); - }), - ], -}; diff --git a/apps/mobile/tsconfig.json b/apps/mobile/tsconfig.json deleted file mode 100644 index 3ae54f8b..00000000 --- a/apps/mobile/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "expo/tsconfig.base", - "compilerOptions": { - "strict": true, - "paths": { - "@/*": ["./*"], - "@/src/*": ["./src/*"] - } - }, - "include": [ - "**/*.ts", - "**/*.tsx", - ".expo/types/**/*.ts", - "expo-env.d.ts", - "nativewind-env.d.ts" - ] -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b9b5af6..ea920bcf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,13 +28,13 @@ importers: dependencies: '@aws-sdk/client-s3': specifier: ^3.962.0 - version: 3.962.0 + version: 3.966.0 '@aws-sdk/client-sqs': specifier: ^3.962.0 - version: 3.962.0 + version: 3.966.0 '@aws-sdk/lib-storage': specifier: ^3.962.0 - version: 3.962.0(@aws-sdk/client-s3@3.962.0) + version: 3.966.0(@aws-sdk/client-s3@3.966.0) '@fastify/cors': specifier: ^11.2.0 version: 11.2.0 @@ -58,7 +58,7 @@ importers: version: 0.2.5(@swc/core@1.15.8)(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2) '@react-email/components': specifier: ^1.0.3 - version: 1.0.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.0.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@swc/core': specifier: ^1.15.8 version: 1.15.8 @@ -94,10 +94,10 @@ importers: version: 4.1.0 drizzle-orm: specifier: ^0.45.1 - version: 0.45.1(postgres@3.4.7) + version: 0.45.1(postgres@3.4.8) drizzle-zod: specifier: ^0.8.3 - version: 0.8.3(drizzle-orm@0.45.1(postgres@3.4.7))(zod@4.3.5) + version: 0.8.3(drizzle-orm@0.45.1(postgres@3.4.8))(zod@4.3.5) env-paths: specifier: ^3.0.0 version: 3.0.0 @@ -115,22 +115,22 @@ importers: version: 1.0.0 ioredis: specifier: ^5.8.2 - version: 5.8.2 + version: 5.9.1 node-cron: specifier: ^4.2.1 version: 4.2.1 openai: specifier: ^6.15.0 - version: 6.15.0(ws@8.18.3)(zod@4.3.5) + version: 6.16.0(ws@8.19.0)(zod@4.3.5) pino: specifier: ^10.1.0 - version: 10.1.0 + version: 10.1.1 pino-pretty: specifier: ^13.1.3 version: 13.1.3 postgres: specifier: ^3.4.7 - version: 3.4.7 + version: 3.4.8 puppeteer: specifier: ^24.34.0 version: 24.34.0(typescript@5.9.3) @@ -142,10 +142,10 @@ importers: version: 19.2.3(react@19.2.3) resend: specifier: ^6.6.0 - version: 6.6.0(@react-email/render@2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + version: 6.7.0(@react-email/render@2.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) stripe: specifier: ^20.1.0 - version: 20.1.0(@types/node@25.0.3) + version: 20.1.2(@types/node@25.0.3) typeid-js: specifier: ^1.2.0 version: 1.2.0 @@ -164,7 +164,7 @@ importers: version: 6.0.0 '@types/ioredis-mock': specifier: ^8.2.6 - version: 8.2.6(ioredis@5.8.2) + version: 8.2.6(ioredis@5.9.1) '@types/node': specifier: ^25.0.3 version: 25.0.3 @@ -179,13 +179,13 @@ importers: version: 0.31.8 ioredis-mock: specifier: ^8.13.1 - version: 8.13.1(@types/ioredis-mock@8.2.6(ioredis@5.8.2))(ioredis@5.8.2) + version: 8.13.1(@types/ioredis-mock@8.2.6(ioredis@5.9.1))(ioredis@5.9.1) localstack: specifier: ^1.0.0 version: 1.0.0 react-email: specifier: ^5.1.1 - version: 5.1.1 + version: 5.2.1 tsup: specifier: ^8.5.1 version: 8.5.1(@swc/core@1.15.8)(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) @@ -197,10 +197,10 @@ importers: version: 5.9.3 unplugin-swc: specifier: ^1.5.9 - version: 1.5.9(@swc/core@1.15.8)(rollup@4.54.0) + version: 1.5.9(@swc/core@1.15.8)(rollup@4.55.1) vite-tsconfig-paths: specifier: ^6.0.3 - version: 6.0.3(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 6.0.4(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) vitest: specifier: ^4.0.16 version: 4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) @@ -215,74 +215,74 @@ importers: version: 0.2.3 '@react-navigation/native': specifier: ^7.1.8 - version: 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo: specifier: ~54.0.31 - version: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-dev-client: specifier: ~6.0.20 version: 6.0.20(expo@54.0.31) expo-font: specifier: ~14.0.10 - version: 14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-linking: specifier: ~8.0.11 - version: 8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-router: specifier: ~6.0.21 - version: 6.0.21(eb22c47db85bc856ec4297cb0d259d8e) + version: 6.0.21(ed0173313472e3a4d9a27b966543cc3e) expo-splash-screen: specifier: ~31.0.13 version: 31.0.13(expo@54.0.31) expo-status-bar: specifier: ~3.0.9 - version: 3.0.9(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 3.0.9(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-system-ui: specifier: ~6.0.9 - version: 6.0.9(expo@54.0.31)(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)(@types/react@19.1.17)(react@19.1.0)) + version: 6.0.9(expo@54.0.31)(react-native-web@0.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1)) nativewind: specifier: ^4.1.23 - version: 4.1.23(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17) + 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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)) react: - specifier: 19.1.0 - version: 19.1.0 + specifier: 18.3.1 + version: 18.3.1 react-dom: - specifier: 19.1.0 - version: 19.1.0(react@19.1.0) + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) react-native: specifier: 0.81.5 - version: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + version: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) react-native-css-interop: specifier: 0.1.22 - version: 0.1.22(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17) + version: 0.1.22(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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)) react-native-gesture-handler: specifier: ~2.28.0 - version: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) react-native-reanimated: specifier: ~4.1.1 - 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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) react-native-safe-area-context: specifier: ~5.6.0 - version: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) react-native-screens: specifier: ~4.16.0 - version: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) react-native-svg: specifier: ^15.15.1 - version: 15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) react-native-web: specifier: ~0.21.0 - version: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 0.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 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)(@types/react@19.1.17)(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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) tailwindcss: specifier: ^3.4.17 - version: 3.4.17 + version: 3.4.19(tsx@4.21.0)(yaml@2.8.2) devDependencies: '@types/react': - specifier: ~19.1.0 - version: 19.1.17 + specifier: ~18.3.12 + version: 18.3.27 typescript: specifier: ~5.9.2 version: 5.9.3 @@ -303,7 +303,7 @@ importers: version: 3.2.2(react@19.2.3) '@formatjs/intl-localematcher': specifier: ^0.7.4 - version: 0.7.4 + version: 0.7.5 '@hookform/resolvers': specifier: ^5.2.2 version: 5.2.2(react-hook-form@7.70.0(react@19.2.3)) @@ -390,7 +390,7 @@ importers: version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@stripe/stripe-js': specifier: ^8.6.0 - version: 8.6.0 + version: 8.6.1 '@tanstack/react-query': specifier: ^5.90.16 version: 5.90.16(react@19.2.3) @@ -399,7 +399,7 @@ importers: version: 8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/react-virtual': specifier: ^3.13.16 - version: 3.13.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 3.13.18(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@types/mdx': specifier: ^2.0.13 version: 2.0.13 @@ -429,10 +429,10 @@ importers: version: 17.2.3 framer-motion: specifier: ^12.23.26 - version: 12.23.26(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 12.25.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) i18next: specifier: ^25.7.3 - version: 25.7.3(typescript@5.9.3) + version: 25.7.4(typescript@5.9.3) jose: specifier: ^6.1.3 version: 6.1.3 @@ -492,7 +492,7 @@ importers: version: 7.70.0(react@19.2.3) react-i18next: specifier: ^16.5.1 - version: 16.5.1(i18next@25.7.3(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + version: 16.5.1(i18next@25.7.4(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) react-intersection-observer: specifier: ^10.0.0 version: 10.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -519,7 +519,7 @@ importers: version: 2.0.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) stripe: specifier: ^20.1.0 - version: 20.1.0(@types/node@25.0.3) + version: 20.1.2(@types/node@25.0.3) tailwind-variants: specifier: ^3.2.2 version: 3.2.2(tailwind-merge@3.4.0)(tailwindcss@4.1.18) @@ -568,7 +568,7 @@ importers: version: 3.0.6 '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.3.0(@types/node@25.0.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.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/coverage-istanbul': specifier: ^4.0.16 version: 4.0.16(vitest@4.0.16) @@ -717,7 +717,7 @@ importers: version: 8.6.0(react@19.2.3) framer-motion: specifier: ^12.23.26 - version: 12.23.26(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 12.25.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) input-otp: specifier: ^1.4.2 version: 1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -741,7 +741,7 @@ importers: version: 7.70.0(react@19.2.3) react-resizable-panels: specifier: ^4.2.1 - version: 4.2.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 4.3.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) recharts: specifier: ^3.6.0 version: 3.6.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.3)(react@19.2.3)(redux@5.0.1) @@ -784,7 +784,7 @@ importers: version: 8.5.6 postcss-load-config: specifier: ^6.0.1 - version: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2) + version: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2) tailwindcss: specifier: ^3.4.17 version: 3.4.19(tsx@4.21.0)(yaml@2.8.2) @@ -860,145 +860,145 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.962.0': - resolution: {integrity: sha512-I2/1McBZCcM3PfM4ck8D6gnZR3K7+yl1fGkwTq/3ThEn9tdLjNwcdgTbPfxfX6LoecLrH9Ekoo+D9nmQ0T261w==} + '@aws-sdk/client-s3@3.966.0': + resolution: {integrity: sha512-IckVv+A6irQyXTiJrNpfi63ZtPuk6/Iu70TnMq2DTRFK/4bD2bOvqL1IHZ2WGmZMoeWd5LI8Fn6pIwdK6g4QJQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-sqs@3.962.0': - resolution: {integrity: sha512-egPwNtyL5Sz3bZOKp4Uk56JBSUcU/BnrWGDMhCcHLWBLavnGstBNe2nPetX/RP1zHO2XRnApuVjusqwcsKrfVA==} + '@aws-sdk/client-sqs@3.966.0': + resolution: {integrity: sha512-qiZphYzjauELP7Dgnz9Ywnk98nzFZuIFY8izEXksd+jRyrUSkoLKmaKnUTOExX/o+XYL64wGPSYwihf46WHu7g==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-sso@3.958.0': - resolution: {integrity: sha512-6qNCIeaMzKzfqasy2nNRuYnMuaMebCcCPP4J2CVGkA8QYMbIVKPlkn9bpB20Vxe6H/r3jtCCLQaOJjVTx/6dXg==} + '@aws-sdk/client-sso@3.966.0': + resolution: {integrity: sha512-hQZDQgqRJclALDo9wK+bb5O+VpO8JcjImp52w9KPSz9XveNRgE9AYfklRJd8qT2Bwhxe6IbnqYEino2wqUMA1w==} engines: {node: '>=18.0.0'} - '@aws-sdk/core@3.957.0': - resolution: {integrity: sha512-DrZgDnF1lQZv75a52nFWs6MExihJF2GZB6ETZRqr6jMwhrk2kbJPUtvgbifwcL7AYmVqHQDJBrR/MqkwwFCpiw==} + '@aws-sdk/core@3.966.0': + resolution: {integrity: sha512-QaRVBHD1prdrFXIeFAY/1w4b4S0EFyo/ytzU+rCklEjMRT7DKGXGoHXTWLGz+HD7ovlS5u+9cf8a/LeSOEMzww==} engines: {node: '>=18.0.0'} - '@aws-sdk/crc64-nvme@3.957.0': - resolution: {integrity: sha512-qSwSfI+qBU9HDsd6/4fM9faCxYJx2yDuHtj+NVOQ6XYDWQzFab/hUdwuKZ77Pi6goLF1pBZhJ2azaC2w7LbnTA==} + '@aws-sdk/crc64-nvme@3.965.0': + resolution: {integrity: sha512-9FbIyJ/Zz1AdEIrb0+Pn7wRi+F/0Y566ooepg0hDyHUzRV3ZXKjOlu3wJH3YwTz2UkdwQmldfUos2yDJps7RyA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-env@3.957.0': - resolution: {integrity: sha512-475mkhGaWCr+Z52fOOVb/q2VHuNvqEDixlYIkeaO6xJ6t9qR0wpLt4hOQaR6zR1wfZV0SlE7d8RErdYq/PByog==} + '@aws-sdk/credential-provider-env@3.966.0': + resolution: {integrity: sha512-sxVKc9PY0SH7jgN/8WxhbKQ7MWDIgaJv1AoAKJkhJ+GM5r09G5Vb2Vl8ALYpsy+r8b+iYpq5dGJj8k2VqxoQMg==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-http@3.957.0': - resolution: {integrity: sha512-8dS55QHRxXgJlHkEYaCGZIhieCs9NU1HU1BcqQ4RfUdSsfRdxxktqUKgCnBnOOn0oD3PPA8cQOCAVgIyRb3Rfw==} + '@aws-sdk/credential-provider-http@3.966.0': + resolution: {integrity: sha512-VTJDP1jOibVtc5pn5TNE12rhqOO/n10IjkoJi8fFp9BMfmh3iqo70Ppvphz/Pe/R9LcK5Z3h0Z4EB9IXDR6kag==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-ini@3.962.0': - resolution: {integrity: sha512-h0kVnXLW2d3nxbcrR/Pfg3W/+YoCguasWz7/3nYzVqmdKarGrpJzaFdoZtLgvDSZ8VgWUC4lWOTcsDMV0UNqUQ==} + '@aws-sdk/credential-provider-ini@3.966.0': + resolution: {integrity: sha512-4oQKkYMCUx0mffKuH8LQag1M4Fo5daKVmsLAnjrIqKh91xmCrcWlAFNMgeEYvI1Yy125XeNSaFMfir6oNc2ODA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-login@3.962.0': - resolution: {integrity: sha512-kHYH6Av2UifG3mPkpPUNRh/PuX6adaAcpmsclJdHdxlixMCRdh8GNeEihq480DC0GmfqdpoSf1w2CLmLLPIS6w==} + '@aws-sdk/credential-provider-login@3.966.0': + resolution: {integrity: sha512-wD1KlqLyh23Xfns/ZAPxebwXixoJJCuDbeJHFrLDpP4D4h3vA2S8nSFgBSFR15q9FhgRfHleClycf6g5K4Ww6w==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-node@3.962.0': - resolution: {integrity: sha512-CS78NsWRxLa+nWqeWBEYMZTLacMFIXs1C5WJuM9kD05LLiWL32ksljoPsvNN24Bc7rCSQIIMx/U3KGvkDVZMVg==} + '@aws-sdk/credential-provider-node@3.966.0': + resolution: {integrity: sha512-7QCOERGddMw7QbjE+LSAFgwOBpPv4px2ty0GCK7ZiPJGsni2EYmM4TtYnQb9u1WNHmHqIPWMbZR0pKDbyRyHlQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-process@3.957.0': - resolution: {integrity: sha512-/KIz9kadwbeLy6SKvT79W81Y+hb/8LMDyeloA2zhouE28hmne+hLn0wNCQXAAupFFlYOAtZR2NTBs7HBAReJlg==} + '@aws-sdk/credential-provider-process@3.966.0': + resolution: {integrity: sha512-q5kCo+xHXisNbbPAh/DiCd+LZX4wdby77t7GLk0b2U0/mrel4lgy6o79CApe+0emakpOS1nPZS7voXA7vGPz4w==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-sso@3.958.0': - resolution: {integrity: sha512-CBYHJ5ufp8HC4q+o7IJejCUctJXWaksgpmoFpXerbjAso7/Fg7LLUu9inXVOxlHKLlvYekDXjIUBXDJS2WYdgg==} + '@aws-sdk/credential-provider-sso@3.966.0': + resolution: {integrity: sha512-Rv5aEfbpqsQZzxpX2x+FbSyVFOE3Dngome+exNA8jGzc00rrMZEUnm3J3yAsLp/I2l7wnTfI0r2zMe+T9/nZAQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-web-identity@3.958.0': - resolution: {integrity: sha512-dgnvwjMq5Y66WozzUzxNkCFap+umHUtqMMKlr8z/vl9NYMLem/WUbWNpFFOVFWquXikc+ewtpBMR4KEDXfZ+KA==} + '@aws-sdk/credential-provider-web-identity@3.966.0': + resolution: {integrity: sha512-Yv1lc9iic9xg3ywMmIAeXN1YwuvfcClLVdiF2y71LqUgIOupW8B8my84XJr6pmOQuKzZa++c2znNhC9lGsbKyw==} engines: {node: '>=18.0.0'} - '@aws-sdk/lib-storage@3.962.0': - resolution: {integrity: sha512-Ai5gWRQkzsUMQ6NPoZZoiLXoQ6/yPRcR4oracIVjyWcu48TfBpsRgbqY/5zNOM55ag1wPX9TtJJGOhK3TNk45g==} + '@aws-sdk/lib-storage@3.966.0': + resolution: {integrity: sha512-hI+tsvfbIIyA/4Z3uIQYpmsZCe2Nd/FbJEhUhT4AubxABQcJt3LZ9e2vo9ukJAqVh+p1gBgnSpriVxWgknRSDA==} engines: {node: '>=18.0.0'} peerDependencies: - '@aws-sdk/client-s3': ^3.962.0 + '@aws-sdk/client-s3': ^3.966.0 - '@aws-sdk/middleware-bucket-endpoint@3.957.0': - resolution: {integrity: sha512-iczcn/QRIBSpvsdAS/rbzmoBpleX1JBjXvCynMbDceVLBIcVrwT1hXECrhtIC2cjh4HaLo9ClAbiOiWuqt+6MA==} + '@aws-sdk/middleware-bucket-endpoint@3.966.0': + resolution: {integrity: sha512-KMPZ7gtFXErd9pMpXJMBwFlxxlGIaIQrUBfj3ea7rlrNtoVHnSI4qsoldLq5l9/Ho64KoCiICH4+qXjze8JTDQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-expect-continue@3.957.0': - resolution: {integrity: sha512-AlbK3OeVNwZZil0wlClgeI/ISlOt/SPUxBsIns876IFaVu/Pj3DgImnYhpcJuFRek4r4XM51xzIaGQXM6GDHGg==} + '@aws-sdk/middleware-expect-continue@3.965.0': + resolution: {integrity: sha512-UBxVytsmhEmFwkBnt+aV0eAJ7uc+ouNokCqMBrQ7Oc5A77qhlcHfOgXIKz2SxqsiYTsDq+a0lWFM/XpyRWraqA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.957.0': - resolution: {integrity: sha512-iJpeVR5V8se1hl2pt+k8bF/e9JO4KWgPCMjg8BtRspNtKIUGy7j6msYvbDixaKZaF2Veg9+HoYcOhwnZumjXSA==} + '@aws-sdk/middleware-flexible-checksums@3.966.0': + resolution: {integrity: sha512-0/ofXeceTH/flKhg4EGGYr4cDtaLVkR/2RI05J/hxrHIls+iM6j8++GO0TocxmZYK+8B+7XKSaV9LU26nboTUQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-host-header@3.957.0': - resolution: {integrity: sha512-BBgKawVyfQZglEkNTuBBdC3azlyqNXsvvN4jPkWAiNYcY0x1BasaJFl+7u/HisfULstryweJq/dAvIZIxzlZaA==} + '@aws-sdk/middleware-host-header@3.965.0': + resolution: {integrity: sha512-SfpSYqoPOAmdb3DBsnNsZ0vix+1VAtkUkzXM79JL3R5IfacpyKE2zytOgVAQx/FjhhlpSTwuXd+LRhUEVb3MaA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-location-constraint@3.957.0': - resolution: {integrity: sha512-y8/W7TOQpmDJg/fPYlqAhwA4+I15LrS7TwgUEoxogtkD8gfur9wFMRLT8LCyc9o4NMEcAnK50hSb4+wB0qv6tQ==} + '@aws-sdk/middleware-location-constraint@3.965.0': + resolution: {integrity: sha512-07T1rwAarQs33mVg5U28AsSdLB5JUXu9yBTBmspFGajKVsEahIyntf53j9mAXF1N2KR0bNdP0J4A0kst4t43UQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-logger@3.957.0': - resolution: {integrity: sha512-w1qfKrSKHf9b5a8O76yQ1t69u6NWuBjr5kBX+jRWFx/5mu6RLpqERXRpVJxfosbep7k3B+DSB5tZMZ82GKcJtQ==} + '@aws-sdk/middleware-logger@3.965.0': + resolution: {integrity: sha512-gjUvJRZT1bUABKewnvkj51LAynFrfz2h5DYAg5/2F4Utx6UOGByTSr9Rq8JCLbURvvzAbCtcMkkIJRxw+8Zuzw==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-recursion-detection@3.957.0': - resolution: {integrity: sha512-D2H/WoxhAZNYX+IjkKTdOhOkWQaK0jjJrDBj56hKjU5c9ltQiaX/1PqJ4dfjHntEshJfu0w+E6XJ+/6A6ILBBA==} + '@aws-sdk/middleware-recursion-detection@3.965.0': + resolution: {integrity: sha512-6dvD+18Ni14KCRu+tfEoNxq1sIGVp9tvoZDZ7aMvpnA7mDXuRLrOjRQ/TAZqXwr9ENKVGyxcPl0cRK8jk1YWjA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-sdk-s3@3.957.0': - resolution: {integrity: sha512-5B2qY2nR2LYpxoQP0xUum5A1UNvH2JQpLHDH1nWFNF/XetV7ipFHksMxPNhtJJ6ARaWhQIDXfOUj0jcnkJxXUg==} + '@aws-sdk/middleware-sdk-s3@3.966.0': + resolution: {integrity: sha512-9N9zncsY5ydDCRatKdrPZcdCwNWt7TdHmqgwQM52PuA5gs1HXWwLLNDy/51H+9RTHi7v6oly+x9utJ/qypCh2g==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-sdk-sqs@3.957.0': - resolution: {integrity: sha512-3A1V2oSV/NzWukwDBwnf/ng+n+8zU32jRml0lbYiP9PzBgc6D6Y4Z/RCbPp7g+PO8XrCRrZg6QKspO3cLpGnOw==} + '@aws-sdk/middleware-sdk-sqs@3.966.0': + resolution: {integrity: sha512-P0Lr5XPyaIWQidf23PLTE8J8JC+Jp0EaizmCa671szUh5v+HGlReQXF9d7vE7zH3m4cKWjOgLXSH/MAI88eNFA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-ssec@3.957.0': - resolution: {integrity: sha512-qwkmrK0lizdjNt5qxl4tHYfASh8DFpHXM1iDVo+qHe+zuslfMqQEGRkzxS8tJq/I+8F0c6v3IKOveKJAfIvfqQ==} + '@aws-sdk/middleware-ssec@3.965.0': + resolution: {integrity: sha512-dke++CTw26y+a2D1DdVuZ4+2TkgItdx6TeuE0zOl4lsqXGvTBUG4eaIZalt7ZOAW5ys2pbDOk1bPuh4opoD3pQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-user-agent@3.957.0': - resolution: {integrity: sha512-50vcHu96XakQnIvlKJ1UoltrFODjsq2KvtTgHiPFteUS884lQnK5VC/8xd1Msz/1ONpLMzdCVproCQqhDTtMPQ==} + '@aws-sdk/middleware-user-agent@3.966.0': + resolution: {integrity: sha512-MvGoy0vhMluVpSB5GaGJbYLqwbZfZjwEZhneDHdPhgCgQqmCtugnYIIjpUw7kKqWGsmaMQmNEgSFf1zYYmwOyg==} engines: {node: '>=18.0.0'} - '@aws-sdk/nested-clients@3.958.0': - resolution: {integrity: sha512-/KuCcS8b5TpQXkYOrPLYytrgxBhv81+5pChkOlhegbeHttjM69pyUpQVJqyfDM/A7wPLnDrzCAnk4zaAOkY0Nw==} + '@aws-sdk/nested-clients@3.966.0': + resolution: {integrity: sha512-FRzAWwLNoKiaEWbYhnpnfartIdOgiaBLnPcd3uG1Io+vvxQUeRPhQIy4EfKnT3AuA+g7gzSCjMG2JKoJOplDtQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/region-config-resolver@3.957.0': - resolution: {integrity: sha512-V8iY3blh8l2iaOqXWW88HbkY5jDoWjH56jonprG/cpyqqCnprvpMUZWPWYJoI8rHRf2bqzZeql1slxG6EnKI7A==} + '@aws-sdk/region-config-resolver@3.965.0': + resolution: {integrity: sha512-RoMhu9ly2B0coxn8ctXosPP2WmDD0MkQlZGLjoYHQUOCBmty5qmCxOqBmBDa6wbWbB8xKtMQ/4VXloQOgzjHXg==} engines: {node: '>=18.0.0'} - '@aws-sdk/signature-v4-multi-region@3.957.0': - resolution: {integrity: sha512-t6UfP1xMUigMMzHcb7vaZcjv7dA2DQkk9C/OAP1dKyrE0vb4lFGDaTApi17GN6Km9zFxJthEMUbBc7DL0hq1Bg==} + '@aws-sdk/signature-v4-multi-region@3.966.0': + resolution: {integrity: sha512-VNSpyfKtDiBg/nPwSXDvnjISaDE9mI8zhOK3C4/obqh8lK1V6j04xDlwyIWbbIM0f6VgV1FVixlghtJB79eBqA==} engines: {node: '>=18.0.0'} - '@aws-sdk/token-providers@3.958.0': - resolution: {integrity: sha512-UCj7lQXODduD1myNJQkV+LYcGYJ9iiMggR8ow8Hva1g3A/Na5imNXzz6O67k7DAee0TYpy+gkNw+SizC6min8Q==} + '@aws-sdk/token-providers@3.966.0': + resolution: {integrity: sha512-8k5cBTicTGYJHhKaweO4gL4fud1KDnLS5fByT6/Xbiu59AxYM4E/h3ds+3jxDMnniCE3gIWpEnyfM9khtmw2lA==} engines: {node: '>=18.0.0'} - '@aws-sdk/types@3.957.0': - resolution: {integrity: sha512-wzWC2Nrt859ABk6UCAVY/WYEbAd7FjkdrQL6m24+tfmWYDNRByTJ9uOgU/kw9zqLCAwb//CPvrJdhqjTznWXAg==} + '@aws-sdk/types@3.965.0': + resolution: {integrity: sha512-jvodoJdMavvg8faN7co58vVJRO5MVep4JFPRzUNCzpJ98BDqWDk/ad045aMJcmxkLzYLS2UAnUmqjJ/tUPNlzQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-arn-parser@3.957.0': - resolution: {integrity: sha512-Aj6m+AyrhWyg8YQ4LDPg2/gIfGHCEcoQdBt5DeSFogN5k9mmJPOJ+IAmNSWmWRjpOxEy6eY813RNDI6qS97M0g==} + '@aws-sdk/util-arn-parser@3.966.0': + resolution: {integrity: sha512-WcCLdKBK2nHhtOPE8du5XjOXaOToxGF3Ge8rgK2jaRpjkzjS0/mO+Jp2H4+25hOne3sP2twBu5BrvD9KoXQ5LQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-endpoints@3.957.0': - resolution: {integrity: sha512-xwF9K24mZSxcxKS3UKQFeX/dPYkEps9wF1b+MGON7EvnbcucrJGyQyK1v1xFPn1aqXkBTFi+SZaMRx5E5YCVFw==} + '@aws-sdk/util-endpoints@3.965.0': + resolution: {integrity: sha512-WqSCB0XIsGUwZWvrYkuoofi2vzoVHqyeJ2kN+WyoOsxPLTiQSBIoqm/01R/qJvoxwK/gOOF7su9i84Vw2NQQpQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-locate-window@3.957.0': - resolution: {integrity: sha512-nhmgKHnNV9K+i9daumaIz8JTLsIIML9PE/HUks5liyrjUzenjW/aHoc7WJ9/Td/gPZtayxFnXQSJRb/fDlBuJw==} + '@aws-sdk/util-locate-window@3.965.0': + resolution: {integrity: sha512-9LJFand4bIoOjOF4x3wx0UZYiFZRo4oUauxQSiEX2dVg+5qeBOJSjp2SeWykIE6+6frCZ5wvWm2fGLK8D32aJw==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-user-agent-browser@3.957.0': - resolution: {integrity: sha512-exueuwxef0lUJRnGaVkNSC674eAiWU07ORhxBnevFFZEKisln+09Qrtw823iyv5I1N8T+wKfh95xvtWQrNKNQw==} + '@aws-sdk/util-user-agent-browser@3.965.0': + resolution: {integrity: sha512-Xiza/zMntQGpkd2dETQeAK8So1pg5+STTzpcdGWxj5q0jGO5ayjqT/q1Q7BrsX5KIr6PvRkl9/V7lLCv04wGjQ==} - '@aws-sdk/util-user-agent-node@3.957.0': - resolution: {integrity: sha512-ycbYCwqXk4gJGp0Oxkzf2KBeeGBdTxz559D41NJP8FlzSej1Gh7Rk40Zo6AyTfsNWkrl/kVi1t937OIzC5t+9Q==} + '@aws-sdk/util-user-agent-node@3.966.0': + resolution: {integrity: sha512-vPPe8V0GLj+jVS5EqFz2NUBgWH35favqxliUOvhp8xBdNRkEjiZm5TqitVtFlxS4RrLY3HOndrWbrP5ejbwl1Q==} engines: {node: '>=18.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -1006,12 +1006,12 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.957.0': - resolution: {integrity: sha512-Ai5iiQqS8kJ5PjzMhWcLKN0G2yasAkvpnPlq2EnqlIMdB48HsizElt62qcktdxp4neRMyGkFq4NzgmDbXnhRiA==} + '@aws-sdk/xml-builder@3.965.0': + resolution: {integrity: sha512-Tcod25/BTupraQwtb+Q+GX8bmEZfxIFjjJ/AvkhUZsZlkPeVluzq1uu3Oeqf145DCdMjzLIN6vab5MrykbDP+g==} engines: {node: '>=18.0.0'} - '@aws/lambda-invoke-store@0.2.2': - resolution: {integrity: sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg==} + '@aws/lambda-invoke-store@0.2.3': + resolution: {integrity: sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==} engines: {node: '>=18.0.0'} '@babel/code-frame@7.10.4': @@ -1794,8 +1794,8 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-syntax-patches-for-csstree@1.0.22': - resolution: {integrity: sha512-qBcx6zYlhleiFfdtzkRgwNC7VVoAwfK76Vmsw5t+PbvtdknO9StgRk7ROvq9so1iqbdW4uLIDAsXRsTfUrIoOw==} + '@csstools/css-syntax-patches-for-csstree@1.0.23': + resolution: {integrity: sha512-YEmgyklR6l/oKUltidNVYdjSmLSW88vMsKx0pmiS3r71s8ZZRpd8A0Yf0U+6p/RzElmMnPBv27hNWjDQMSZRtQ==} engines: {node: '>=18'} '@csstools/css-tokenizer@3.0.4': @@ -2500,14 +2500,14 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@formatjs/fast-memoize@3.0.2': - resolution: {integrity: sha512-YFApUDWFmjpPwAE7VcY7PYVjm6JaLZOAo0UfCQj1/OGi/1QtduG9kIBHmVC551M6AI01qvuP5kjbDebrZOT4Vg==} + '@formatjs/fast-memoize@3.0.3': + resolution: {integrity: sha512-CArYtQKGLAOruCMeq5/RxCg6vUXFx3OuKBdTm30Wn/+gCefehmZ8Y2xSMxMrO2iel7hRyE3HKfV56t3vAU6D4Q==} - '@formatjs/intl-localematcher@0.7.4': - resolution: {integrity: sha512-AWsSZupIBMU/y04Nj24CjohyNVyfItMJPxSzX5OJwedDEIbGLOHkPxCjAeLeiLF2dw4xmQA8psktdi9MaebBQw==} + '@formatjs/intl-localematcher@0.7.5': + resolution: {integrity: sha512-7/nd90cn5CT7SVF71/ybUKAcnvBlr9nZlJJp8O8xIZHXFgYOC4SXExZlSdgHv2l6utjw1byidL06QzChvQMHwA==} - '@gerrit0/mini-shiki@3.20.0': - resolution: {integrity: sha512-Wa57i+bMpK6PGJZ1f2myxo3iO+K/kZikcyvH8NIqNNZhQUbDav7V9LQmWOXhf946mz5c1NZ19WMsGYiDKTryzQ==} + '@gerrit0/mini-shiki@3.21.0': + resolution: {integrity: sha512-9PrsT5DjZA+w3lur/aOIx3FlDeHdyCEFlv9U+fmsVyjPZh61G5SYURQ/1ebe2U63KbDmI2V8IhIUegWb8hjOyg==} '@hookform/resolvers@5.2.2': resolution: {integrity: sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==} @@ -2697,9 +2697,6 @@ packages: '@ioredis/as-callback@3.0.0': resolution: {integrity: sha512-Kqv1rZ3WbgOrS+hgzJ5xG5WQuhvzzSTRYvNeyPMLOAM78MHSnuKI20JeJGbpuAt//LCuP0vsexZcorqW7kWhJg==} - '@ioredis/commands@1.4.0': - resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} - '@ioredis/commands@1.5.0': resolution: {integrity: sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==} @@ -3656,8 +3653,8 @@ packages: peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc - '@react-email/components@1.0.3': - resolution: {integrity: sha512-RbleOT35XSCWM54Rs76/BgfPA0Son55OH4awBYlkHZgLw0AdbPwobhE7izNDFqY4nHW7+omLfe3CByWbsg/hEw==} + '@react-email/components@1.0.4': + resolution: {integrity: sha512-XpSs/mN0APMD9E3TYZnj8N6kRXqb6WBl9WrE+IHyB4PdgLNqXe7uZ5+5oZkKSE8Tskzw/K2vDJUqSZ2v+sRjUA==} engines: {node: '>=20.0.0'} peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc @@ -3722,8 +3719,8 @@ packages: peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc - '@react-email/render@2.0.1': - resolution: {integrity: sha512-eYNL4+SSrV1+58MIcT4znarX4YTMuYBr1uzhI6U8fBFvRMZPryxNOnD7jnZ/Ser3MtJEquQNbXjrAP+RVkfLbg==} + '@react-email/render@2.0.2': + resolution: {integrity: sha512-AGuNo86TP9Y2JBUwFcT+z0frPDML4WLIFlnCi7laCPYJA+43kdim0y+qRNPxRxZkJiUz1JMPnE2M5HaNYhWwIg==} engines: {node: '>=20.0.0'} peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc @@ -3917,130 +3914,145 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.54.0': - resolution: {integrity: sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==} + '@rollup/rollup-android-arm-eabi@4.55.1': + resolution: {integrity: sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.54.0': - resolution: {integrity: sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==} + '@rollup/rollup-android-arm64@4.55.1': + resolution: {integrity: sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.54.0': - resolution: {integrity: sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==} + '@rollup/rollup-darwin-arm64@4.55.1': + resolution: {integrity: sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.54.0': - resolution: {integrity: sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==} + '@rollup/rollup-darwin-x64@4.55.1': + resolution: {integrity: sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.54.0': - resolution: {integrity: sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==} + '@rollup/rollup-freebsd-arm64@4.55.1': + resolution: {integrity: sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.54.0': - resolution: {integrity: sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==} + '@rollup/rollup-freebsd-x64@4.55.1': + resolution: {integrity: sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.54.0': - resolution: {integrity: sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.55.1': + resolution: {integrity: sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.54.0': - resolution: {integrity: sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==} + '@rollup/rollup-linux-arm-musleabihf@4.55.1': + resolution: {integrity: sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.54.0': - resolution: {integrity: sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==} + '@rollup/rollup-linux-arm64-gnu@4.55.1': + resolution: {integrity: sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.54.0': - resolution: {integrity: sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==} + '@rollup/rollup-linux-arm64-musl@4.55.1': + resolution: {integrity: sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.54.0': - resolution: {integrity: sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==} + '@rollup/rollup-linux-loong64-gnu@4.55.1': + resolution: {integrity: sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.54.0': - resolution: {integrity: sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==} + '@rollup/rollup-linux-loong64-musl@4.55.1': + resolution: {integrity: sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.55.1': + resolution: {integrity: sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.55.1': + resolution: {integrity: sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.54.0': - resolution: {integrity: sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==} + '@rollup/rollup-linux-riscv64-gnu@4.55.1': + resolution: {integrity: sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.54.0': - resolution: {integrity: sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==} + '@rollup/rollup-linux-riscv64-musl@4.55.1': + resolution: {integrity: sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.54.0': - resolution: {integrity: sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==} + '@rollup/rollup-linux-s390x-gnu@4.55.1': + resolution: {integrity: sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.54.0': - resolution: {integrity: sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==} + '@rollup/rollup-linux-x64-gnu@4.55.1': + resolution: {integrity: sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.54.0': - resolution: {integrity: sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==} + '@rollup/rollup-linux-x64-musl@4.55.1': + resolution: {integrity: sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.54.0': - resolution: {integrity: sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==} + '@rollup/rollup-openbsd-x64@4.55.1': + resolution: {integrity: sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.55.1': + resolution: {integrity: sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.54.0': - resolution: {integrity: sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==} + '@rollup/rollup-win32-arm64-msvc@4.55.1': + resolution: {integrity: sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.54.0': - resolution: {integrity: sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==} + '@rollup/rollup-win32-ia32-msvc@4.55.1': + resolution: {integrity: sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.54.0': - resolution: {integrity: sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==} + '@rollup/rollup-win32-x64-gnu@4.55.1': + resolution: {integrity: sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.54.0': - resolution: {integrity: sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==} + '@rollup/rollup-win32-x64-msvc@4.55.1': + resolution: {integrity: sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==} cpu: [x64] os: [win32] '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@shikijs/engine-oniguruma@3.20.0': - resolution: {integrity: sha512-Yx3gy7xLzM0ZOjqoxciHjA7dAt5tyzJE3L4uQoM83agahy+PlW244XJSrmJRSBvGYELDhYXPacD4R/cauV5bzQ==} + '@shikijs/engine-oniguruma@3.21.0': + resolution: {integrity: sha512-OYknTCct6qiwpQDqDdf3iedRdzj6hFlOPv5hMvI+hkWfCKs5mlJ4TXziBG9nyabLwGulrUjHiCq3xCspSzErYQ==} - '@shikijs/langs@3.20.0': - resolution: {integrity: sha512-le+bssCxcSHrygCWuOrYJHvjus6zhQ2K7q/0mgjiffRbkhM4o1EWu2m+29l0yEsHDbWaWPNnDUTRVVBvBBeKaA==} + '@shikijs/langs@3.21.0': + resolution: {integrity: sha512-g6mn5m+Y6GBJ4wxmBYqalK9Sp0CFkUqfNzUy2pJglUginz6ZpWbaWjDB4fbQ/8SHzFjYbtU6Ddlp1pc+PPNDVA==} - '@shikijs/themes@3.20.0': - resolution: {integrity: sha512-U1NSU7Sl26Q7ErRvJUouArxfM2euWqq1xaSrbqMu2iqa+tSp0D1Yah8216sDYbdDHw4C8b75UpE65eWorm2erQ==} + '@shikijs/themes@3.21.0': + resolution: {integrity: sha512-BAE4cr9EDiZyYzwIHEk7JTBJ9CzlPuM4PchfcA5ao1dWXb25nv6hYsoDiBq2aZK9E3dlt3WB78uI96UESD+8Mw==} - '@shikijs/types@3.20.0': - resolution: {integrity: sha512-lhYAATn10nkZcBQ0BlzSbJA3wcmL5MXUUF8d2Zzon6saZDlToKaiRX60n2+ZaHJCmXEcZRWNzn+k9vplr8Jhsw==} + '@shikijs/types@3.21.0': + resolution: {integrity: sha512-zGrWOxZ0/+0ovPY7PvBU2gIS9tmhSUUt30jAcNV0Bq0gb2S98gwfjIs1vxlmH5zM7/4YxLamT6ChlqqAJmPPjA==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -4070,8 +4082,8 @@ packages: resolution: {integrity: sha512-HAGoUAFYsUkoSckuKbCPayECeMim8pOu+yLy1zOxt1sifzEbrsRpYa+mKcMdiHKMeiqOibyPG0sFJnmaV/OGEg==} engines: {node: '>=18.0.0'} - '@smithy/core@3.20.0': - resolution: {integrity: sha512-WsSHCPq/neD5G/MkK4csLI5Y5Pkd9c1NMfpYEKeghSGaD4Ja1qLIohRQf2D5c1Uy5aXp76DeKHkzWZ9KAlHroQ==} + '@smithy/core@3.20.2': + resolution: {integrity: sha512-nc99TseyTwL1bg+T21cyEA5oItNy1XN4aUeyOlXJnvyRW5VSK1oRKRoSM/Iq0KFPuqZMxjBemSZHZCOZbSyBMw==} engines: {node: '>=18.0.0'} '@smithy/credential-provider-imds@4.2.7': @@ -4134,12 +4146,12 @@ packages: resolution: {integrity: sha512-GszfBfCcvt7kIbJ41LuNa5f0wvQCHhnGx/aDaZJCCT05Ld6x6U2s0xsc/0mBFONBZjQJp2U/0uSJ178OXOwbhg==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.4.1': - resolution: {integrity: sha512-gpLspUAoe6f1M6H0u4cVuFzxZBrsGZmjx2O9SigurTx4PbntYa4AJ+o0G0oGm1L2oSX6oBhcGHwrfJHup2JnJg==} + '@smithy/middleware-endpoint@4.4.3': + resolution: {integrity: sha512-Zb8R35hjBhp1oFhiaAZ9QhClpPHdEDmNDC2UrrB2fqV0oNDUUPH12ovZHB5xi/Rd+pg/BJHOR1q+SfsieSKPQg==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.4.17': - resolution: {integrity: sha512-MqbXK6Y9uq17h+4r0ogu/sBT6V/rdV+5NvYL7ZV444BKfQygYe8wAhDrVXagVebN6w2RE0Fm245l69mOsPGZzg==} + '@smithy/middleware-retry@4.4.19': + resolution: {integrity: sha512-QtisFIjIw2tjMm/ESatjWFVIQb5Xd093z8xhxq/SijLg7Mgo2C2wod47Ib/AHpBLFhwYXPzd7Hp2+JVXfeZyMQ==} engines: {node: '>=18.0.0'} '@smithy/middleware-serde@4.2.8': @@ -4186,8 +4198,8 @@ packages: resolution: {integrity: sha512-9oNUlqBlFZFOSdxgImA6X5GFuzE7V2H7VG/7E70cdLhidFbdtvxxt81EHgykGK5vq5D3FafH//X+Oy31j3CKOg==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.10.2': - resolution: {integrity: sha512-D5z79xQWpgrGpAHb054Fn2CCTQZpog7JELbVQ6XAvXs5MNKWf28U9gzSBlJkOyMl9LA1TZEjRtwvGXfP0Sl90g==} + '@smithy/smithy-client@4.10.4': + resolution: {integrity: sha512-rHig+BWjhjlHlah67ryaW9DECYixiJo5pQCTEwsJyarRBAwHMMC3iYz5MXXAHXe64ZAMn1NhTUSTFIu1T6n6jg==} engines: {node: '>=18.0.0'} '@smithy/types@4.11.0': @@ -4222,12 +4234,12 @@ packages: resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.3.16': - resolution: {integrity: sha512-/eiSP3mzY3TsvUOYMeL4EqUX6fgUOj2eUOU4rMMgVbq67TiRLyxT7Xsjxq0bW3OwuzK009qOwF0L2OgJqperAQ==} + '@smithy/util-defaults-mode-browser@4.3.18': + resolution: {integrity: sha512-Ao1oLH37YmLyHnKdteMp6l4KMCGBeZEAN68YYe00KAaKFijFELDbRQRm3CNplz7bez1HifuBV0l5uR6eVJLhIg==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.2.19': - resolution: {integrity: sha512-3a4+4mhf6VycEJyHIQLypRbiwG6aJvbQAeRAVXydMmfweEPnLLabRbdyo/Pjw8Rew9vjsh5WCdhmDaHkQnhhhA==} + '@smithy/util-defaults-mode-node@4.2.21': + resolution: {integrity: sha512-e21ASJDirE96kKXZLcYcnn4Zt0WGOvMYc1P8EK0gQeQ3I8PbJWqBKx9AUr/YeFpDkpYwEu1RsPe4UXk2+QL7IA==} engines: {node: '>=18.0.0'} '@smithy/util-endpoints@3.2.7': @@ -4358,8 +4370,8 @@ packages: resolution: {integrity: sha512-JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==} engines: {node: '>=10.8'} - '@stripe/stripe-js@8.6.0': - resolution: {integrity: sha512-EB0/GGgs4hfezzkiMkinlRgWtjz8fSdwVQhwYS7Sg/RQrSvuNOz+ssPjD+lAzqaYTCB0zlbrt0fcqVziLJrufQ==} + '@stripe/stripe-js@8.6.1': + resolution: {integrity: sha512-UJ05U2062XDgydbUcETH1AoRQLNhigQ2KmDn1BG8sC3xfzu6JKg95Qt6YozdzFpxl1Npii/02m2LEWFt1RYjVA==} engines: {node: '>=12.16'} '@svgr/babel-plugin-add-jsx-attribute@8.0.0': @@ -4572,8 +4584,8 @@ packages: react: '>=16.8' react-dom: '>=16.8' - '@tanstack/react-virtual@3.13.16': - resolution: {integrity: sha512-y4xLKvLu6UZWiGdNcgk3yYlzCznYIV0m8dSyUzr3eAC0dHLos5V74qhUHxutYddFGgGU8sWLkp6H5c2RCrsrXw==} + '@tanstack/react-virtual@3.13.18': + resolution: {integrity: sha512-dZkhyfahpvlaV0rIKnvQiVoWPyURppl6w4m9IwMDpuIjcJ1sD9YGWrt0wISvgU7ewACXx2Ct46WPgI6qAD4v6A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -4582,8 +4594,8 @@ packages: resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} engines: {node: '>=12'} - '@tanstack/virtual-core@3.13.16': - resolution: {integrity: sha512-njazUC8mDkrxWmyZmn/3eXrDcP8Msb3chSr4q6a65RmwdSbMlMCdnOphv6/8mLO7O3Fuza5s4M4DclmvAO5w0w==} + '@tanstack/virtual-core@3.13.18': + resolution: {integrity: sha512-Mx86Hqu1k39icq2Zusq+Ey2J6dDWTjDvEv43PJtRCoEYTLyfaPnxIQ6iy7YAOK0NV/qOEmZQ/uCufrppZxTgcg==} '@testing-library/dom@10.4.1': resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} @@ -4748,9 +4760,6 @@ packages: '@types/node-cron@3.0.11': resolution: {integrity: sha512-0ikrnug3/IyneSHqCBeslAhlK2aBfYek1fGo4bP4QnZPmiqSGRK+Oy7ZMisLWkesffJvQ1cqAcBnJC+8+nxIAg==} - '@types/node@22.19.3': - resolution: {integrity: sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==} - '@types/node@24.10.4': resolution: {integrity: sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==} @@ -4760,6 +4769,9 @@ packages: '@types/nprogress@0.2.3': resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: @@ -4768,8 +4780,8 @@ packages: '@types/react-simple-maps@3.0.6': resolution: {integrity: sha512-hR01RXt6VvsE41FxDd+Bqm1PPGdKbYjCYVtCgh38YeBPt46z3SwmWPWu2L3EdCAP6bd6VYEgztucihRw1C0Klg==} - '@types/react@19.1.17': - resolution: {integrity: sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==} + '@types/react@18.3.27': + resolution: {integrity: sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==} '@types/react@19.2.7': resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} @@ -5200,8 +5212,8 @@ packages: resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} engines: {node: ^4.5.0 || >= 5.9} - baseline-browser-mapping@2.9.11: - resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==} + baseline-browser-mapping@2.9.14: + resolution: {integrity: sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==} hasBin: true basic-ftp@5.1.0: @@ -5274,6 +5286,9 @@ packages: buffer@5.6.0: resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + bundle-require@5.1.0: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -5319,8 +5334,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001762: - resolution: {integrity: sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==} + caniuse-lite@1.0.30001763: + resolution: {integrity: sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==} canvas-confetti@1.9.4: resolution: {integrity: sha512-yxQbJkAVrFXWNbTUjPqjF7G+g6pDotOUHGbkZq2NELZUMDpiJ85rIEazVb8GTaAptNW2miJAXbs1BtioA251Pw==} @@ -5635,8 +5650,8 @@ packages: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - cssstyle@5.3.6: - resolution: {integrity: sha512-legscpSpgSAeGEe0TNcai97DKt9Vd9AsAdOL7Uoetb52Ar/8eJm3LIa39qpv8wWzLFlNG4vVvppQM+teaMPj3A==} + cssstyle@5.3.7: + resolution: {integrity: sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==} engines: {node: '>=20'} csstype@3.2.3: @@ -5850,6 +5865,11 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -6152,9 +6172,6 @@ packages: es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - es6-promise@4.2.8: - resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - esast-util-from-estree@2.0.0: resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} @@ -6613,8 +6630,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.25.0: + resolution: {integrity: sha512-mlWqd0rApIjeyhTCSNCqPYsUAEhkcUukZxH3ke6KbstBRPcxhEpuIjmiUQvB+1E9xkEm5SpNHBgHCapH/QHTWg==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -6873,8 +6890,8 @@ packages: hyphenate-style-name@1.1.0: resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} - i18next@25.7.3: - resolution: {integrity: sha512-2XaT+HpYGuc2uTExq9TVRhLsso+Dxym6PWaKpn36wfBmTI779OQ7iP/XaZHzrnGyzU4SHpFrTYLKfVyBfAhVNA==} + i18next@25.7.4: + resolution: {integrity: sha512-hRkpEblXXcXSNbw8mBNq9042OEetgyB/ahc/X17uV/khPwzV+uB8RHceHh3qavyrkPJvmXFKXME2Sy1E0KjAfw==} peerDependencies: typescript: ^5 peerDependenciesMeta: @@ -6960,8 +6977,8 @@ packages: '@types/ioredis-mock': ^8 ioredis: ^5 - ioredis@5.8.2: - resolution: {integrity: sha512-C6uC+kleiIMmjViJINWk80sOQw5lEzse1ZmvD+S/s8p8CWapftSaC+kocGTx6xrbrJ4WmYQGC08ffHLr6ToR6Q==} + ioredis@5.9.1: + resolution: {integrity: sha512-BXNqFQ66oOsR82g9ajFFsR8ZKrjVvYCLyeML9IvSMAsP56XH2VXBdZjmI11p65nXXJxTEt1hie3J2QeFJVgrtQ==} engines: {node: '>=12.22.0'} ip-address@10.1.0: @@ -7333,66 +7350,130 @@ packages: cpu: [arm64] os: [android] + lightningcss-darwin-arm64@1.27.0: + resolution: {integrity: sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + lightningcss-darwin-arm64@1.30.2: resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] + lightningcss-darwin-x64@1.27.0: + resolution: {integrity: sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + lightningcss-darwin-x64@1.30.2: resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] + lightningcss-freebsd-x64@1.27.0: + resolution: {integrity: sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + lightningcss-freebsd-x64@1.30.2: resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] + lightningcss-linux-arm-gnueabihf@1.27.0: + resolution: {integrity: sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + lightningcss-linux-arm-gnueabihf@1.30.2: resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] + lightningcss-linux-arm64-gnu@1.27.0: + resolution: {integrity: sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + lightningcss-linux-arm64-gnu@1.30.2: resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + lightningcss-linux-arm64-musl@1.27.0: + resolution: {integrity: sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + lightningcss-linux-arm64-musl@1.30.2: resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + lightningcss-linux-x64-gnu@1.27.0: + resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + lightningcss-linux-x64-gnu@1.30.2: resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + lightningcss-linux-x64-musl@1.27.0: + resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + lightningcss-linux-x64-musl@1.30.2: resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + lightningcss-win32-arm64-msvc@1.27.0: + resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + lightningcss-win32-arm64-msvc@1.30.2: resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] + lightningcss-win32-x64-msvc@1.27.0: + resolution: {integrity: sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + lightningcss-win32-x64-msvc@1.30.2: resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] + lightningcss@1.27.0: + resolution: {integrity: sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==} + engines: {node: '>= 12.0.0'} + lightningcss@1.30.2: resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} engines: {node: '>= 12.0.0'} @@ -7833,11 +7914,11 @@ packages: mnemonist@0.40.3: resolution: {integrity: sha512-Vjyr90sJ23CKKH/qPAgUKicw/v6pRoamxIEDFOF8uSgFME7DqPRpHgRTejWVjkdGg5dXj0/NyxZHZ9bcjH+2uQ==} - motion-dom@12.23.23: - resolution: {integrity: sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==} + motion-dom@12.24.11: + resolution: {integrity: sha512-DlWOmsXMJrV8lzZyd+LKjG2CXULUs++bkq8GZ2Sr0R0RRhs30K2wtY+LKiTjhmJU3W61HK+rB0GLz6XmPvTA1A==} - motion-utils@12.23.6: - resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==} + motion-utils@12.24.10: + resolution: {integrity: sha512-x5TFgkCIP4pPsRLpKoI86jv/q8t8FQOiM/0E8QKBzfMozWHfkKap2gA1hOki+B5g3IsBNpxbUnfOum1+dgvYww==} mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} @@ -7871,8 +7952,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nativewind@4.1.23: - resolution: {integrity: sha512-oLX3suGI6ojQqWxdQezOSM5GmJ4KvMnMtmaSMN9Ggb5j7ysFt4nHxb1xs8RDjZR7BWc+bsetNJU8IQdQMHqRpg==} + nativewind@4.2.1: + resolution: {integrity: sha512-10uUB2Dlli3MH3NDL5nMHqJHz1A3e/E6mzjTj6cl7hHECClJ7HpE6v+xZL+GXdbwQSnWE+UWMIMsNz7yOQkAJQ==} engines: {node: '>=16'} peerDependencies: tailwindcss: '>3.3.0' @@ -8137,8 +8218,8 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} - openai@6.15.0: - resolution: {integrity: sha512-F1Lvs5BoVvmZtzkUEVyh8mDQPPFolq4F+xdsx/DO8Hee8YF3IGAlZqUIsF+DVGhqf4aU0a3bTghsxB6OIsRy1g==} + openai@6.16.0: + resolution: {integrity: sha512-fZ1uBqjFUjXzbGc35fFtYKEOxd20kd9fDpFeqWtsOZWiubY8CZ1NAlXHW3iathaFvqmNtCWMIsosCuyeI7Joxg==} hasBin: true peerDependencies: ws: ^8.18.0 @@ -8304,9 +8385,6 @@ packages: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - pino-abstract-transport@2.0.0: - resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} - pino-abstract-transport@3.0.0: resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} @@ -8317,8 +8395,8 @@ packages: pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - pino@10.1.0: - resolution: {integrity: sha512-0zZC2ygfdqvqK8zJIr1e+wT1T/L+LF6qvqvbzEQ6tiMAoTqEVK9a1K3YRu8HEUvGEvNqZyPJTtb2sNIoTkB83w==} + pino@10.1.1: + resolution: {integrity: sha512-3qqVfpJtRQUCAOs4rTOEwLH6mwJJ/CSAlbis8fKOiMzTtXh0HN/VLsn3UWVTJ7U8DsWmxeNon2IpGb+wORXH4g==} hasBin: true pirates@4.0.7: @@ -8359,18 +8437,6 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - postcss-load-config@6.0.1: resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} engines: {node: '>= 18'} @@ -8418,8 +8484,8 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} - postgres@3.4.7: - resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} + postgres@3.4.8: + resolution: {integrity: sha512-d+JFcLM17njZaOLkv6SCev7uoLaBtfK86vMUXhW1Z4glPWh4jozno9APvW/XKFJ3CCxVoC7OL38BqRydtu5nGg==} engines: {node: '>=12'} preact-render-to-string@5.2.6: @@ -8427,8 +8493,8 @@ packages: peerDependencies: preact: '>=10' - preact@10.28.1: - resolution: {integrity: sha512-u1/ixq/lVQI0CakKNvLDEcW5zfCjUQfZdK9qqWuIJtsezuyG6pk9TWj75GMuI/EzRSZB/VAE43sNWWZfiy8psw==} + preact@10.28.2: + resolution: {integrity: sha512-lbteaWGzGHdlIuiJ0l2Jq454m6kcpI1zNje6d8MlGAFlYvP2GO4ibnat7P74Esfz4sPTdM6UxtTwh/d3pwM9JA==} prettier@3.7.4: resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} @@ -8523,9 +8589,6 @@ packages: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} engines: {node: '>=6'} - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -8569,10 +8632,10 @@ packages: react-devtools-core@6.1.5: resolution: {integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==} - react-dom@19.1.0: - resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: ^19.1.0 + react: ^18.3.1 react-dom@19.2.3: resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} @@ -8585,8 +8648,8 @@ packages: react: '>=16.4.0' react-dom: '>=16.4.0' - react-email@5.1.1: - resolution: {integrity: sha512-NUwnOXyxCJtr2xJO4uiEVmBwRg00rgvV2WZe6Z+a2HqGeTTOiLpKoQOvroKGFzUemkQKQlVRFPdPvSK/1uanmw==} + react-email@5.2.1: + resolution: {integrity: sha512-ETejN253u7SXQQIIj+fvqxOUAFTMTnEl9lfVYFIbcGtRSrojAdN6x8eX+mDgvQFSjI7inMXNxmYaqQkx8eoOQw==} engines: {node: '>=20.0.0'} hasBin: true @@ -8654,6 +8717,22 @@ packages: react-native-svg: optional: true + react-native-css-interop@0.2.1: + resolution: {integrity: sha512-B88f5rIymJXmy1sNC/MhTkb3xxBej1KkuAt7TiT9iM7oXz3RM8Bn+7GUrfR02TvSgKm4cg2XiSuLEKYfKwNsjA==} + engines: {node: '>=18'} + peerDependencies: + react: '>=18' + react-native: '*' + react-native-reanimated: '>=3.6.2' + react-native-safe-area-context: '*' + react-native-svg: '*' + tailwindcss: ~3 + peerDependenciesMeta: + react-native-safe-area-context: + optional: true + react-native-svg: + optional: true + react-native-gesture-handler@2.28.0: resolution: {integrity: sha512-0msfJ1vRxXKVgTgvL+1ZOoYw3/0z1R+Ked0+udoJhyplC2jbVKIJ8Z1bzWdpQRCV3QcQ87Op0zJVE5DhKK2A0A==} peerDependencies: @@ -8756,8 +8835,8 @@ packages: '@types/react': optional: true - react-resizable-panels@4.2.1: - resolution: {integrity: sha512-UYyiZNjd3P12BqQYihojqdVs4ovMBWFO68RQp/O1HGiUKdltNu9hacZEm4PVD/UpYpz5p9V+YBtOZo+CvGKmkQ==} + react-resizable-panels@4.3.3: + resolution: {integrity: sha512-7ZmYcoOiipVwwz8X9O/HiRbm8THM6qnXo7p5dPI6ivzdDoteHo3iXS1pijs8Z4/XU8V1RwhuGgJiZU5G7Zy0KQ==} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 @@ -8785,8 +8864,8 @@ packages: react: '>=16.14.0' react-dom: '>=16.14.0' - react@19.1.0: - resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} react@19.2.3: @@ -8910,14 +8989,11 @@ packages: resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==} engines: {node: '>= 4.0.0'} - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - reselect@5.1.1: resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} - resend@6.6.0: - resolution: {integrity: sha512-d1WoOqSxj5x76JtQMrieNAG1kZkh4NU4f+Je1yq4++JsDpLddhEwnJlNfvkCzvUuZy9ZquWmMMAm2mENd2JvRw==} + resend@6.7.0: + resolution: {integrity: sha512-2ZV0NDZsh4Gh+Nd1hvluZIitmGJ59O4+OxMufymG6Y8uz1Jgt2uS1seSENnkIUlmwg7/dwmfIJC9rAufByz7wA==} engines: {node: '>=20'} peerDependencies: '@react-email/render': '*' @@ -8982,8 +9058,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.54.0: - resolution: {integrity: sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==} + rollup@4.55.1: + resolution: {integrity: sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -9018,13 +9094,17 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sax@1.4.3: - resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} + sax@1.4.4: + resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} + engines: {node: '>=11.0.0'} saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.26.0: resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} @@ -9281,6 +9361,9 @@ packages: standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + standardwebhooks@1.0.0: + resolution: {integrity: sha512-BbHGOQK9olHPMvQNHWul6MYlrRTAOKn03rOe4A8O3CLWhNf4YHBqq2HJKKC+sfqpxiBY52pNeesD6jIiLDz8jg==} + statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -9382,8 +9465,8 @@ packages: resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} engines: {node: '>=14.16'} - stripe@20.1.0: - resolution: {integrity: sha512-o1VNRuMkY76ZCq92U3EH3/XHm/WHp7AerpzDs4Zyo8uE5mFL4QUcv/2SudWsSnhBSp4moO2+ZoGCZ7mT8crPmQ==} + stripe@20.1.2: + resolution: {integrity: sha512-qU+lQRRJnTxmyvglYBPE24/IepncmywsAg0GDTsTdP2pb+3e3RdREHJZjKgqCmv0phPxN/nmgNPnIPPH8w0P4A==} engines: {node: '>=16'} peerDependencies: '@types/node': '>=16' @@ -9458,8 +9541,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - svix@1.76.1: - resolution: {integrity: sha512-CRuDWBTgYfDnBLRaZdKp9VuoPcNUq9An14c/k+4YJ15Qc5Grvf66vp0jvTltd4t7OIRj+8lM1DAgvSgvf7hdLw==} + svix@1.84.1: + resolution: {integrity: sha512-K8DPPSZaW/XqXiz1kEyzSHYgmGLnhB43nQCMeKjWGCUpLIpAMMM8kx3rVVOSm6Bo6EHyK1RQLPT4R06skM/MlQ==} swagger2openapi@7.0.8: resolution: {integrity: sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==} @@ -9495,11 +9578,6 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders' - tailwindcss@3.4.17: - resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} - engines: {node: '>=14.0.0'} - hasBin: true - tailwindcss@3.4.19: resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==} engines: {node: '>=14.0.0'} @@ -9545,8 +9623,9 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thread-stream@3.1.0: - resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} + thread-stream@4.0.0: + resolution: {integrity: sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==} + engines: {node: '>=20'} throat@5.0.0: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} @@ -9790,8 +9869,8 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + ufo@1.6.2: + resolution: {integrity: sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==} uint8array-extras@1.5.0: resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} @@ -9801,9 +9880,6 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} @@ -9811,8 +9887,8 @@ packages: resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} engines: {node: '>=18.17'} - undici@7.16.0: - resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} + undici@7.18.2: + resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} engines: {node: '>=20.18.1'} unicode-canonical-property-names-ecmascript@2.0.1: @@ -9885,9 +9961,6 @@ packages: urijs@1.19.11: resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -9972,16 +10045,16 @@ packages: victory-vendor@37.3.6: resolution: {integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==} - vite-tsconfig-paths@6.0.3: - resolution: {integrity: sha512-7bL7FPX/DSviaZGYUKowWF1AiDVWjMjxNbE8lyaVGDezkedWqfGhlnQ4BZXre0ZN5P4kAgIJfAlgFDVyjrCIyg==} + vite-tsconfig-paths@6.0.4: + resolution: {integrity: sha512-iIsEJ+ek5KqRTK17pmxtgIxXtqr3qDdE6OxrP9mVeGhVDNXRJTKN/l9oMbujTQNzMLe6XZ8qmpztfbkPu2TiFQ==} peerDependencies: vite: '*' peerDependenciesMeta: vite: optional: true - vite@7.3.0: - resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -10205,6 +10278,18 @@ packages: utf-8-validate: optional: true + ws@8.19.0: + resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xcode@3.0.1: resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} engines: {node: '>=10.0.0'} @@ -10341,21 +10426,21 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-locate-window': 3.957.0 + '@aws-sdk/types': 3.965.0 + '@aws-sdk/util-locate-window': 3.965.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -10364,15 +10449,15 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-locate-window': 3.957.0 + '@aws-sdk/types': 3.965.0 + '@aws-sdk/util-locate-window': 3.965.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -10381,35 +10466,35 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-s3@3.962.0': + '@aws-sdk/client-s3@3.966.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.957.0 - '@aws-sdk/credential-provider-node': 3.962.0 - '@aws-sdk/middleware-bucket-endpoint': 3.957.0 - '@aws-sdk/middleware-expect-continue': 3.957.0 - '@aws-sdk/middleware-flexible-checksums': 3.957.0 - '@aws-sdk/middleware-host-header': 3.957.0 - '@aws-sdk/middleware-location-constraint': 3.957.0 - '@aws-sdk/middleware-logger': 3.957.0 - '@aws-sdk/middleware-recursion-detection': 3.957.0 - '@aws-sdk/middleware-sdk-s3': 3.957.0 - '@aws-sdk/middleware-ssec': 3.957.0 - '@aws-sdk/middleware-user-agent': 3.957.0 - '@aws-sdk/region-config-resolver': 3.957.0 - '@aws-sdk/signature-v4-multi-region': 3.957.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-endpoints': 3.957.0 - '@aws-sdk/util-user-agent-browser': 3.957.0 - '@aws-sdk/util-user-agent-node': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/credential-provider-node': 3.966.0 + '@aws-sdk/middleware-bucket-endpoint': 3.966.0 + '@aws-sdk/middleware-expect-continue': 3.965.0 + '@aws-sdk/middleware-flexible-checksums': 3.966.0 + '@aws-sdk/middleware-host-header': 3.965.0 + '@aws-sdk/middleware-location-constraint': 3.965.0 + '@aws-sdk/middleware-logger': 3.965.0 + '@aws-sdk/middleware-recursion-detection': 3.965.0 + '@aws-sdk/middleware-sdk-s3': 3.966.0 + '@aws-sdk/middleware-ssec': 3.965.0 + '@aws-sdk/middleware-user-agent': 3.966.0 + '@aws-sdk/region-config-resolver': 3.965.0 + '@aws-sdk/signature-v4-multi-region': 3.966.0 + '@aws-sdk/types': 3.965.0 + '@aws-sdk/util-endpoints': 3.965.0 + '@aws-sdk/util-user-agent-browser': 3.965.0 + '@aws-sdk/util-user-agent-node': 3.966.0 '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.0 + '@smithy/core': 3.20.2 '@smithy/eventstream-serde-browser': 4.2.7 '@smithy/eventstream-serde-config-resolver': 4.3.7 '@smithy/eventstream-serde-node': 4.2.7 @@ -10420,21 +10505,21 @@ snapshots: '@smithy/invalid-dependency': 4.2.7 '@smithy/md5-js': 4.2.7 '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.1 - '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-endpoint': 4.4.3 + '@smithy/middleware-retry': 4.4.19 '@smithy/middleware-serde': 4.2.8 '@smithy/middleware-stack': 4.2.7 '@smithy/node-config-provider': 4.3.7 '@smithy/node-http-handler': 4.4.7 '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.2 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.16 - '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-defaults-mode-browser': 4.3.18 + '@smithy/util-defaults-mode-node': 4.2.21 '@smithy/util-endpoints': 3.2.7 '@smithy/util-middleware': 4.2.7 '@smithy/util-retry': 4.2.7 @@ -10445,44 +10530,44 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sqs@3.962.0': + '@aws-sdk/client-sqs@3.966.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.957.0 - '@aws-sdk/credential-provider-node': 3.962.0 - '@aws-sdk/middleware-host-header': 3.957.0 - '@aws-sdk/middleware-logger': 3.957.0 - '@aws-sdk/middleware-recursion-detection': 3.957.0 - '@aws-sdk/middleware-sdk-sqs': 3.957.0 - '@aws-sdk/middleware-user-agent': 3.957.0 - '@aws-sdk/region-config-resolver': 3.957.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-endpoints': 3.957.0 - '@aws-sdk/util-user-agent-browser': 3.957.0 - '@aws-sdk/util-user-agent-node': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/credential-provider-node': 3.966.0 + '@aws-sdk/middleware-host-header': 3.965.0 + '@aws-sdk/middleware-logger': 3.965.0 + '@aws-sdk/middleware-recursion-detection': 3.965.0 + '@aws-sdk/middleware-sdk-sqs': 3.966.0 + '@aws-sdk/middleware-user-agent': 3.966.0 + '@aws-sdk/region-config-resolver': 3.965.0 + '@aws-sdk/types': 3.965.0 + '@aws-sdk/util-endpoints': 3.965.0 + '@aws-sdk/util-user-agent-browser': 3.965.0 + '@aws-sdk/util-user-agent-node': 3.966.0 '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.0 + '@smithy/core': 3.20.2 '@smithy/fetch-http-handler': 5.3.8 '@smithy/hash-node': 4.2.7 '@smithy/invalid-dependency': 4.2.7 '@smithy/md5-js': 4.2.7 '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.1 - '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-endpoint': 4.4.3 + '@smithy/middleware-retry': 4.4.19 '@smithy/middleware-serde': 4.2.8 '@smithy/middleware-stack': 4.2.7 '@smithy/node-config-provider': 4.3.7 '@smithy/node-http-handler': 4.4.7 '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.2 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.16 - '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-defaults-mode-browser': 4.3.18 + '@smithy/util-defaults-mode-node': 4.2.21 '@smithy/util-endpoints': 3.2.7 '@smithy/util-middleware': 4.2.7 '@smithy/util-retry': 4.2.7 @@ -10491,41 +10576,41 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.958.0': + '@aws-sdk/client-sso@3.966.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.957.0 - '@aws-sdk/middleware-host-header': 3.957.0 - '@aws-sdk/middleware-logger': 3.957.0 - '@aws-sdk/middleware-recursion-detection': 3.957.0 - '@aws-sdk/middleware-user-agent': 3.957.0 - '@aws-sdk/region-config-resolver': 3.957.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-endpoints': 3.957.0 - '@aws-sdk/util-user-agent-browser': 3.957.0 - '@aws-sdk/util-user-agent-node': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/middleware-host-header': 3.965.0 + '@aws-sdk/middleware-logger': 3.965.0 + '@aws-sdk/middleware-recursion-detection': 3.965.0 + '@aws-sdk/middleware-user-agent': 3.966.0 + '@aws-sdk/region-config-resolver': 3.965.0 + '@aws-sdk/types': 3.965.0 + '@aws-sdk/util-endpoints': 3.965.0 + '@aws-sdk/util-user-agent-browser': 3.965.0 + '@aws-sdk/util-user-agent-node': 3.966.0 '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.0 + '@smithy/core': 3.20.2 '@smithy/fetch-http-handler': 5.3.8 '@smithy/hash-node': 4.2.7 '@smithy/invalid-dependency': 4.2.7 '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.1 - '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-endpoint': 4.4.3 + '@smithy/middleware-retry': 4.4.19 '@smithy/middleware-serde': 4.2.8 '@smithy/middleware-stack': 4.2.7 '@smithy/node-config-provider': 4.3.7 '@smithy/node-http-handler': 4.4.7 '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.2 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.16 - '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-defaults-mode-browser': 4.3.18 + '@smithy/util-defaults-mode-node': 4.2.21 '@smithy/util-endpoints': 3.2.7 '@smithy/util-middleware': 4.2.7 '@smithy/util-retry': 4.2.7 @@ -10534,59 +10619,59 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.957.0': + '@aws-sdk/core@3.966.0': dependencies: - '@aws-sdk/types': 3.957.0 - '@aws-sdk/xml-builder': 3.957.0 - '@smithy/core': 3.20.0 + '@aws-sdk/types': 3.965.0 + '@aws-sdk/xml-builder': 3.965.0 + '@smithy/core': 3.20.2 '@smithy/node-config-provider': 4.3.7 '@smithy/property-provider': 4.2.7 '@smithy/protocol-http': 5.3.7 '@smithy/signature-v4': 5.3.7 - '@smithy/smithy-client': 4.10.2 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 '@smithy/util-base64': 4.3.0 '@smithy/util-middleware': 4.2.7 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/crc64-nvme@3.957.0': + '@aws-sdk/crc64-nvme@3.965.0': dependencies: '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.957.0': + '@aws-sdk/credential-provider-env@3.966.0': dependencies: - '@aws-sdk/core': 3.957.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.957.0': + '@aws-sdk/credential-provider-http@3.966.0': dependencies: - '@aws-sdk/core': 3.957.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/fetch-http-handler': 5.3.8 '@smithy/node-http-handler': 4.4.7 '@smithy/property-provider': 4.2.7 '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.2 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 '@smithy/util-stream': 4.5.8 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.962.0': - dependencies: - '@aws-sdk/core': 3.957.0 - '@aws-sdk/credential-provider-env': 3.957.0 - '@aws-sdk/credential-provider-http': 3.957.0 - '@aws-sdk/credential-provider-login': 3.962.0 - '@aws-sdk/credential-provider-process': 3.957.0 - '@aws-sdk/credential-provider-sso': 3.958.0 - '@aws-sdk/credential-provider-web-identity': 3.958.0 - '@aws-sdk/nested-clients': 3.958.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/credential-provider-ini@3.966.0': + dependencies: + '@aws-sdk/core': 3.966.0 + '@aws-sdk/credential-provider-env': 3.966.0 + '@aws-sdk/credential-provider-http': 3.966.0 + '@aws-sdk/credential-provider-login': 3.966.0 + '@aws-sdk/credential-provider-process': 3.966.0 + '@aws-sdk/credential-provider-sso': 3.966.0 + '@aws-sdk/credential-provider-web-identity': 3.966.0 + '@aws-sdk/nested-clients': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/credential-provider-imds': 4.2.7 '@smithy/property-provider': 4.2.7 '@smithy/shared-ini-file-loader': 4.4.2 @@ -10595,11 +10680,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-login@3.962.0': + '@aws-sdk/credential-provider-login@3.966.0': dependencies: - '@aws-sdk/core': 3.957.0 - '@aws-sdk/nested-clients': 3.958.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/nested-clients': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/protocol-http': 5.3.7 '@smithy/shared-ini-file-loader': 4.4.2 @@ -10608,15 +10693,15 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.962.0': + '@aws-sdk/credential-provider-node@3.966.0': dependencies: - '@aws-sdk/credential-provider-env': 3.957.0 - '@aws-sdk/credential-provider-http': 3.957.0 - '@aws-sdk/credential-provider-ini': 3.962.0 - '@aws-sdk/credential-provider-process': 3.957.0 - '@aws-sdk/credential-provider-sso': 3.958.0 - '@aws-sdk/credential-provider-web-identity': 3.958.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/credential-provider-env': 3.966.0 + '@aws-sdk/credential-provider-http': 3.966.0 + '@aws-sdk/credential-provider-ini': 3.966.0 + '@aws-sdk/credential-provider-process': 3.966.0 + '@aws-sdk/credential-provider-sso': 3.966.0 + '@aws-sdk/credential-provider-web-identity': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/credential-provider-imds': 4.2.7 '@smithy/property-provider': 4.2.7 '@smithy/shared-ini-file-loader': 4.4.2 @@ -10625,21 +10710,21 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.957.0': + '@aws-sdk/credential-provider-process@3.966.0': dependencies: - '@aws-sdk/core': 3.957.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/shared-ini-file-loader': 4.4.2 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.958.0': + '@aws-sdk/credential-provider-sso@3.966.0': dependencies: - '@aws-sdk/client-sso': 3.958.0 - '@aws-sdk/core': 3.957.0 - '@aws-sdk/token-providers': 3.958.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/client-sso': 3.966.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/token-providers': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/shared-ini-file-loader': 4.4.2 '@smithy/types': 4.11.0 @@ -10647,11 +10732,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.958.0': + '@aws-sdk/credential-provider-web-identity@3.966.0': dependencies: - '@aws-sdk/core': 3.957.0 - '@aws-sdk/nested-clients': 3.958.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/nested-clients': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/shared-ini-file-loader': 4.4.2 '@smithy/types': 4.11.0 @@ -10659,42 +10744,42 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/lib-storage@3.962.0(@aws-sdk/client-s3@3.962.0)': + '@aws-sdk/lib-storage@3.966.0(@aws-sdk/client-s3@3.966.0)': dependencies: - '@aws-sdk/client-s3': 3.962.0 + '@aws-sdk/client-s3': 3.966.0 '@smithy/abort-controller': 4.2.7 - '@smithy/middleware-endpoint': 4.4.1 - '@smithy/smithy-client': 4.10.2 + '@smithy/middleware-endpoint': 4.4.3 + '@smithy/smithy-client': 4.10.4 buffer: 5.6.0 events: 3.3.0 stream-browserify: 3.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-bucket-endpoint@3.957.0': + '@aws-sdk/middleware-bucket-endpoint@3.966.0': dependencies: - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-arn-parser': 3.957.0 + '@aws-sdk/types': 3.965.0 + '@aws-sdk/util-arn-parser': 3.966.0 '@smithy/node-config-provider': 4.3.7 '@smithy/protocol-http': 5.3.7 '@smithy/types': 4.11.0 '@smithy/util-config-provider': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-expect-continue@3.957.0': + '@aws-sdk/middleware-expect-continue@3.965.0': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 '@smithy/protocol-http': 5.3.7 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.957.0': + '@aws-sdk/middleware-flexible-checksums@3.966.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.957.0 - '@aws-sdk/crc64-nvme': 3.957.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/crc64-nvme': 3.965.0 + '@aws-sdk/types': 3.965.0 '@smithy/is-array-buffer': 4.2.0 '@smithy/node-config-provider': 4.3.7 '@smithy/protocol-http': 5.3.7 @@ -10704,43 +10789,43 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.957.0': + '@aws-sdk/middleware-host-header@3.965.0': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 '@smithy/protocol-http': 5.3.7 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-location-constraint@3.957.0': + '@aws-sdk/middleware-location-constraint@3.965.0': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.957.0': + '@aws-sdk/middleware-logger@3.965.0': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.957.0': + '@aws-sdk/middleware-recursion-detection@3.965.0': dependencies: - '@aws-sdk/types': 3.957.0 - '@aws/lambda-invoke-store': 0.2.2 + '@aws-sdk/types': 3.965.0 + '@aws/lambda-invoke-store': 0.2.3 '@smithy/protocol-http': 5.3.7 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.957.0': + '@aws-sdk/middleware-sdk-s3@3.966.0': dependencies: - '@aws-sdk/core': 3.957.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-arn-parser': 3.957.0 - '@smithy/core': 3.20.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/types': 3.965.0 + '@aws-sdk/util-arn-parser': 3.966.0 + '@smithy/core': 3.20.2 '@smithy/node-config-provider': 4.3.7 '@smithy/protocol-http': 5.3.7 '@smithy/signature-v4': 5.3.7 - '@smithy/smithy-client': 4.10.2 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 '@smithy/util-config-provider': 4.2.0 '@smithy/util-middleware': 4.2.7 @@ -10748,66 +10833,66 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-sqs@3.957.0': + '@aws-sdk/middleware-sdk-sqs@3.966.0': dependencies: - '@aws-sdk/types': 3.957.0 - '@smithy/smithy-client': 4.10.2 + '@aws-sdk/types': 3.965.0 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 '@smithy/util-hex-encoding': 4.2.0 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.957.0': + '@aws-sdk/middleware-ssec@3.965.0': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.957.0': + '@aws-sdk/middleware-user-agent@3.966.0': dependencies: - '@aws-sdk/core': 3.957.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-endpoints': 3.957.0 - '@smithy/core': 3.20.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/types': 3.965.0 + '@aws-sdk/util-endpoints': 3.965.0 + '@smithy/core': 3.20.2 '@smithy/protocol-http': 5.3.7 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.958.0': + '@aws-sdk/nested-clients@3.966.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.957.0 - '@aws-sdk/middleware-host-header': 3.957.0 - '@aws-sdk/middleware-logger': 3.957.0 - '@aws-sdk/middleware-recursion-detection': 3.957.0 - '@aws-sdk/middleware-user-agent': 3.957.0 - '@aws-sdk/region-config-resolver': 3.957.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-endpoints': 3.957.0 - '@aws-sdk/util-user-agent-browser': 3.957.0 - '@aws-sdk/util-user-agent-node': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/middleware-host-header': 3.965.0 + '@aws-sdk/middleware-logger': 3.965.0 + '@aws-sdk/middleware-recursion-detection': 3.965.0 + '@aws-sdk/middleware-user-agent': 3.966.0 + '@aws-sdk/region-config-resolver': 3.965.0 + '@aws-sdk/types': 3.965.0 + '@aws-sdk/util-endpoints': 3.965.0 + '@aws-sdk/util-user-agent-browser': 3.965.0 + '@aws-sdk/util-user-agent-node': 3.966.0 '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.0 + '@smithy/core': 3.20.2 '@smithy/fetch-http-handler': 5.3.8 '@smithy/hash-node': 4.2.7 '@smithy/invalid-dependency': 4.2.7 '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.1 - '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-endpoint': 4.4.3 + '@smithy/middleware-retry': 4.4.19 '@smithy/middleware-serde': 4.2.8 '@smithy/middleware-stack': 4.2.7 '@smithy/node-config-provider': 4.3.7 '@smithy/node-http-handler': 4.4.7 '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.2 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.16 - '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-defaults-mode-browser': 4.3.18 + '@smithy/util-defaults-mode-node': 4.2.21 '@smithy/util-endpoints': 3.2.7 '@smithy/util-middleware': 4.2.7 '@smithy/util-retry': 4.2.7 @@ -10816,28 +10901,28 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/region-config-resolver@3.957.0': + '@aws-sdk/region-config-resolver@3.965.0': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 '@smithy/config-resolver': 4.4.5 '@smithy/node-config-provider': 4.3.7 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.957.0': + '@aws-sdk/signature-v4-multi-region@3.966.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.957.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/middleware-sdk-s3': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/protocol-http': 5.3.7 '@smithy/signature-v4': 5.3.7 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/token-providers@3.958.0': + '@aws-sdk/token-providers@3.966.0': dependencies: - '@aws-sdk/core': 3.957.0 - '@aws-sdk/nested-clients': 3.958.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/core': 3.966.0 + '@aws-sdk/nested-clients': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/shared-ini-file-loader': 4.4.2 '@smithy/types': 4.11.0 @@ -10845,49 +10930,49 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/types@3.957.0': + '@aws-sdk/types@3.965.0': dependencies: '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/util-arn-parser@3.957.0': + '@aws-sdk/util-arn-parser@3.966.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.957.0': + '@aws-sdk/util-endpoints@3.965.0': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 '@smithy/types': 4.11.0 '@smithy/url-parser': 4.2.7 '@smithy/util-endpoints': 3.2.7 tslib: 2.8.1 - '@aws-sdk/util-locate-window@3.957.0': + '@aws-sdk/util-locate-window@3.965.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.957.0': + '@aws-sdk/util-user-agent-browser@3.965.0': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.965.0 '@smithy/types': 4.11.0 bowser: 2.13.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.957.0': + '@aws-sdk/util-user-agent-node@3.966.0': dependencies: - '@aws-sdk/middleware-user-agent': 3.957.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/middleware-user-agent': 3.966.0 + '@aws-sdk/types': 3.965.0 '@smithy/node-config-provider': 4.3.7 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.957.0': + '@aws-sdk/xml-builder@3.965.0': dependencies: '@smithy/types': 4.11.0 fast-xml-parser: 5.2.5 tslib: 2.8.1 - '@aws/lambda-invoke-store@0.2.2': {} + '@aws/lambda-invoke-store@0.2.3': {} '@babel/code-frame@7.10.4': dependencies: @@ -11823,7 +11908,7 @@ snapshots: dependencies: '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-syntax-patches-for-csstree@1.0.22': {} + '@csstools/css-syntax-patches-for-csstree@1.0.23': {} '@csstools/css-tokenizer@3.0.4': {} @@ -12112,7 +12197,7 @@ snapshots: '@expo-google-fonts/space-grotesk@0.2.3': {} - '@expo/cli@54.0.21(expo-router@6.0.21)(expo@54.0.31)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))': + '@expo/cli@54.0.21(expo-router@6.0.21)(expo@54.0.31)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))': dependencies: '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) '@expo/code-signing-certificates': 0.0.6 @@ -12146,7 +12231,7 @@ snapshots: connect: 3.7.0 debug: 4.4.3 env-editor: 0.4.2 - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-server: 1.0.5 freeport-async: 2.0.0 getenv: 2.0.0 @@ -12177,10 +12262,10 @@ snapshots: terminal-link: 2.1.1 undici: 6.23.0 wrap-ansi: 7.0.0 - ws: 8.18.3 + ws: 8.19.0 optionalDependencies: - expo-router: 6.0.21(eb22c47db85bc856ec4297cb0d259d8e) - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + expo-router: 6.0.21(ed0173313472e3a4d9a27b966543cc3e) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) transitivePeerDependencies: - bufferutil - graphql @@ -12237,12 +12322,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)': dependencies: chalk: 4.1.2 optionalDependencies: - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) '@expo/env@2.0.8': dependencies: @@ -12312,23 +12397,23 @@ snapshots: postcss: 8.4.49 resolve-from: 5.0.0 optionalDependencies: - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@expo/metro-runtime@6.1.2(expo@54.0.31)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@expo/metro-runtime@6.1.2(expo@54.0.31)(react-dom@18.3.1(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)': dependencies: anser: 1.4.10 - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) pretty-format: 29.7.0 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) stacktrace-parser: 0.1.11 whatwg-fetch: 3.6.20 optionalDependencies: - react-dom: 19.1.0(react@19.1.0) + react-dom: 18.3.1(react@18.3.1) '@expo/metro@54.2.0': dependencies: @@ -12380,7 +12465,7 @@ snapshots: '@expo/json-file': 10.0.8 '@react-native/normalize-colors': 0.81.5 debug: 4.4.3 - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) resolve-from: 5.0.0 semver: 7.7.3 xml2js: 0.6.0 @@ -12397,11 +12482,11 @@ snapshots: '@expo/sudo-prompt@9.3.2': {} - '@expo/vector-icons@15.0.3(expo-font@14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@expo/vector-icons@15.0.3(expo-font@14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)': dependencies: - expo-font: 14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + expo-font: 14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) '@expo/ws-tunnel@1.0.6': {} @@ -12467,7 +12552,7 @@ snapshots: '@fastify/redis@7.1.0': dependencies: fastify-plugin: 5.1.0 - ioredis: 5.8.2 + ioredis: 5.9.1 transitivePeerDependencies: - supports-color @@ -12523,21 +12608,21 @@ snapshots: '@floating-ui/utils@0.2.10': {} - '@formatjs/fast-memoize@3.0.2': + '@formatjs/fast-memoize@3.0.3': dependencies: tslib: 2.8.1 - '@formatjs/intl-localematcher@0.7.4': + '@formatjs/intl-localematcher@0.7.5': dependencies: - '@formatjs/fast-memoize': 3.0.2 + '@formatjs/fast-memoize': 3.0.3 tslib: 2.8.1 - '@gerrit0/mini-shiki@3.20.0': + '@gerrit0/mini-shiki@3.21.0': dependencies: - '@shikijs/engine-oniguruma': 3.20.0 - '@shikijs/langs': 3.20.0 - '@shikijs/themes': 3.20.0 - '@shikijs/types': 3.20.0 + '@shikijs/engine-oniguruma': 3.21.0 + '@shikijs/langs': 3.21.0 + '@shikijs/themes': 3.21.0 + '@shikijs/types': 3.21.0 '@shikijs/vscode-textmate': 10.0.2 '@hookform/resolvers@5.2.2(react-hook-form@7.70.0(react@19.2.3))': @@ -12690,8 +12775,6 @@ snapshots: '@ioredis/as-callback@3.0.0': {} - '@ioredis/commands@1.4.0': {} - '@ioredis/commands@1.5.0': {} '@isaacs/balanced-match@4.0.1': {} @@ -13194,17 +13277,17 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@types/react': 18.3.27 + '@types/react-dom': 19.2.3(@types/react@18.3.27) '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -13218,11 +13301,11 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.27)(react@18.3.1)': dependencies: - react: 19.1.0 + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -13244,11 +13327,11 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-context@1.1.2(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-context@1.1.2(@types/react@18.3.27)(react@18.3.1)': dependencies: - react: 19.1.0 + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-context@1.1.2(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -13262,27 +13345,27 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.27)(react@18.3.1) aria-hidden: 1.2.6 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.7.2(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.27)(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@types/react': 18.3.27 + '@types/react-dom': 19.2.3(@types/react@18.3.27) '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -13306,11 +13389,11 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-direction@1.1.1(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-direction@1.1.1(@types/react@18.3.27)(react@18.3.1)': dependencies: - react: 19.1.0 + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-direction@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -13318,18 +13401,18 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@types/react': 18.3.27 + '@types/react-dom': 19.2.3(@types/react@18.3.27) '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -13359,11 +13442,11 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@18.3.27)(react@18.3.1)': dependencies: - react: 19.1.0 + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -13371,16 +13454,16 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@types/react': 18.3.27 + '@types/react-dom': 19.2.3(@types/react@18.3.27) '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -13414,12 +13497,12 @@ snapshots: dependencies: react: 19.2.3 - '@radix-ui/react-id@1.1.1(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-id@1.1.1(@types/react@18.3.27)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-id@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -13544,15 +13627,15 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@types/react': 18.3.27 + '@types/react-dom': 19.2.3(@types/react@18.3.27) '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -13564,15 +13647,15 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@types/react': 18.3.27 + '@types/react-dom': 19.2.3(@types/react@18.3.27) '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -13584,14 +13667,14 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@types/react': 18.3.27 + '@types/react-dom': 19.2.3(@types/react@18.3.27) '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -13639,22 +13722,22 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@types/react': 18.3.27 + '@types/react-dom': 19.2.3(@types/react@18.3.27) '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -13747,19 +13830,19 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-slot@1.2.0(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-slot@1.2.0(@types/react@18.3.27)(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 - '@radix-ui/react-slot@1.2.3(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-slot@1.2.3(@types/react@18.3.27)(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-slot@1.2.3(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -13790,21 +13873,21 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.2.3(@types/react@19.1.17) + '@types/react': 18.3.27 + '@types/react-dom': 19.2.3(@types/react@18.3.27) '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -13888,11 +13971,11 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.27)(react@18.3.1)': dependencies: - react: 19.1.0 + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -13900,13 +13983,13 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.27)(react@18.3.1)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -13916,12 +13999,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.27)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -13930,12 +14013,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.27)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -13951,11 +14034,11 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.17)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.27)(react@18.3.1)': dependencies: - react: 19.1.0 + react: 18.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: @@ -14015,7 +14098,7 @@ snapshots: dependencies: react: 19.2.3 - '@react-email/components@1.0.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@react-email/components@1.0.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@react-email/body': 0.2.1(react@19.2.3) '@react-email/button': 0.2.1(react@19.2.3) @@ -14032,7 +14115,7 @@ snapshots: '@react-email/link': 0.0.13(react@19.2.3) '@react-email/markdown': 0.0.18(react@19.2.3) '@react-email/preview': 0.0.14(react@19.2.3) - '@react-email/render': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@react-email/render': 2.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@react-email/row': 0.0.13(react@19.2.3) '@react-email/section': 0.0.17(react@19.2.3) '@react-email/tailwind': 2.0.3(@react-email/body@0.2.1(react@19.2.3))(@react-email/button@0.2.1(react@19.2.3))(@react-email/code-block@0.2.1(react@19.2.3))(@react-email/code-inline@0.0.6(react@19.2.3))(@react-email/container@0.0.16(react@19.2.3))(@react-email/heading@0.0.16(react@19.2.3))(@react-email/hr@0.0.12(react@19.2.3))(@react-email/img@0.0.12(react@19.2.3))(@react-email/link@0.0.13(react@19.2.3))(@react-email/preview@0.0.14(react@19.2.3))(@react-email/text@0.1.6(react@19.2.3))(react@19.2.3) @@ -14082,7 +14165,7 @@ snapshots: dependencies: react: 19.2.3 - '@react-email/render@2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@react-email/render@2.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: html-to-text: 9.0.5 prettier: 3.7.4 @@ -14230,73 +14313,73 @@ snapshots: '@react-native/normalize-colors@0.81.5': {} - '@react-native/virtualized-lists@0.81.5(@types/react@19.1.17)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-native/virtualized-lists@0.81.5(@types/react@18.3.27)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 - '@react-navigation/bottom-tabs@7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-navigation/bottom-tabs@7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-navigation/elements': 2.9.3(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/elements': 2.9.3(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) color: 4.2.3 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) sf-symbols-typescript: 2.2.0 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/core@7.13.7(react@19.1.0)': + '@react-navigation/core@7.13.7(react@18.3.1)': dependencies: '@react-navigation/routers': 7.5.3 escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 nanoid: 3.3.11 query-string: 7.1.3 - react: 19.1.0 + react: 18.3.1 react-is: 19.2.3 - use-latest-callback: 0.2.6(react@19.1.0) - use-sync-external-store: 1.6.0(react@19.1.0) + use-latest-callback: 0.2.6(react@18.3.1) + use-sync-external-store: 1.6.0(react@18.3.1) - '@react-navigation/elements@2.9.3(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-navigation/elements@2.9.3(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) color: 4.2.3 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + use-latest-callback: 0.2.6(react@18.3.1) + use-sync-external-store: 1.6.0(react@18.3.1) - '@react-navigation/native-stack@7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-navigation/native-stack@7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-navigation/elements': 2.9.3(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/elements': 2.9.3(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) color: 4.2.3 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) sf-symbols-typescript: 2.2.0 warn-once: 0.1.1 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-navigation/core': 7.13.7(react@19.1.0) + '@react-navigation/core': 7.13.7(react@18.3.1) 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)(@types/react@19.1.17)(react@19.1.0) - use-latest-callback: 0.2.6(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) + use-latest-callback: 0.2.6(react@18.3.1) '@react-navigation/routers@7.5.3': dependencies: @@ -14316,78 +14399,87 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.53': {} - '@rollup/pluginutils@5.3.0(rollup@4.54.0)': + '@rollup/pluginutils@5.3.0(rollup@4.55.1)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.54.0 + rollup: 4.55.1 - '@rollup/rollup-android-arm-eabi@4.54.0': + '@rollup/rollup-android-arm-eabi@4.55.1': optional: true - '@rollup/rollup-android-arm64@4.54.0': + '@rollup/rollup-android-arm64@4.55.1': optional: true - '@rollup/rollup-darwin-arm64@4.54.0': + '@rollup/rollup-darwin-arm64@4.55.1': optional: true - '@rollup/rollup-darwin-x64@4.54.0': + '@rollup/rollup-darwin-x64@4.55.1': optional: true - '@rollup/rollup-freebsd-arm64@4.54.0': + '@rollup/rollup-freebsd-arm64@4.55.1': optional: true - '@rollup/rollup-freebsd-x64@4.54.0': + '@rollup/rollup-freebsd-x64@4.55.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.54.0': + '@rollup/rollup-linux-arm-gnueabihf@4.55.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.54.0': + '@rollup/rollup-linux-arm-musleabihf@4.55.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.54.0': + '@rollup/rollup-linux-arm64-gnu@4.55.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.54.0': + '@rollup/rollup-linux-arm64-musl@4.55.1': optional: true - '@rollup/rollup-linux-loong64-gnu@4.54.0': + '@rollup/rollup-linux-loong64-gnu@4.55.1': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.54.0': + '@rollup/rollup-linux-loong64-musl@4.55.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.54.0': + '@rollup/rollup-linux-ppc64-gnu@4.55.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.54.0': + '@rollup/rollup-linux-ppc64-musl@4.55.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.54.0': + '@rollup/rollup-linux-riscv64-gnu@4.55.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.54.0': + '@rollup/rollup-linux-riscv64-musl@4.55.1': optional: true - '@rollup/rollup-linux-x64-musl@4.54.0': + '@rollup/rollup-linux-s390x-gnu@4.55.1': optional: true - '@rollup/rollup-openharmony-arm64@4.54.0': + '@rollup/rollup-linux-x64-gnu@4.55.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.54.0': + '@rollup/rollup-linux-x64-musl@4.55.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.54.0': + '@rollup/rollup-openbsd-x64@4.55.1': optional: true - '@rollup/rollup-win32-x64-gnu@4.54.0': + '@rollup/rollup-openharmony-arm64@4.55.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.54.0': + '@rollup/rollup-win32-arm64-msvc@4.55.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.55.1': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.55.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.55.1': optional: true '@selderee/plugin-htmlparser2@0.11.0': @@ -14395,20 +14487,20 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 - '@shikijs/engine-oniguruma@3.20.0': + '@shikijs/engine-oniguruma@3.21.0': dependencies: - '@shikijs/types': 3.20.0 + '@shikijs/types': 3.21.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.20.0': + '@shikijs/langs@3.21.0': dependencies: - '@shikijs/types': 3.20.0 + '@shikijs/types': 3.21.0 - '@shikijs/themes@3.20.0': + '@shikijs/themes@3.21.0': dependencies: - '@shikijs/types': 3.20.0 + '@shikijs/types': 3.21.0 - '@shikijs/types@3.20.0': + '@shikijs/types@3.21.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -14448,7 +14540,7 @@ snapshots: '@smithy/util-middleware': 4.2.7 tslib: 2.8.1 - '@smithy/core@3.20.0': + '@smithy/core@3.20.2': dependencies: '@smithy/middleware-serde': 4.2.8 '@smithy/protocol-http': 5.3.7 @@ -14552,9 +14644,9 @@ snapshots: '@smithy/types': 4.11.0 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.4.1': + '@smithy/middleware-endpoint@4.4.3': dependencies: - '@smithy/core': 3.20.0 + '@smithy/core': 3.20.2 '@smithy/middleware-serde': 4.2.8 '@smithy/node-config-provider': 4.3.7 '@smithy/shared-ini-file-loader': 4.4.2 @@ -14563,12 +14655,12 @@ snapshots: '@smithy/util-middleware': 4.2.7 tslib: 2.8.1 - '@smithy/middleware-retry@4.4.17': + '@smithy/middleware-retry@4.4.19': dependencies: '@smithy/node-config-provider': 4.3.7 '@smithy/protocol-http': 5.3.7 '@smithy/service-error-classification': 4.2.7 - '@smithy/smithy-client': 4.10.2 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 '@smithy/util-middleware': 4.2.7 '@smithy/util-retry': 4.2.7 @@ -14642,10 +14734,10 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/smithy-client@4.10.2': + '@smithy/smithy-client@4.10.4': dependencies: - '@smithy/core': 3.20.0 - '@smithy/middleware-endpoint': 4.4.1 + '@smithy/core': 3.20.2 + '@smithy/middleware-endpoint': 4.4.3 '@smithy/middleware-stack': 4.2.7 '@smithy/protocol-http': 5.3.7 '@smithy/types': 4.11.0 @@ -14690,20 +14782,20 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.3.16': + '@smithy/util-defaults-mode-browser@4.3.18': dependencies: '@smithy/property-provider': 4.2.7 - '@smithy/smithy-client': 4.10.2 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.2.19': + '@smithy/util-defaults-mode-node@4.2.21': dependencies: '@smithy/config-resolver': 4.4.5 '@smithy/credential-provider-imds': 4.2.7 '@smithy/node-config-provider': 4.3.7 '@smithy/property-provider': 4.2.7 - '@smithy/smithy-client': 4.10.2 + '@smithy/smithy-client': 4.10.4 '@smithy/types': 4.11.0 tslib: 2.8.1 @@ -14936,7 +15028,7 @@ snapshots: '@stoplight/yaml-ast-parser': 0.0.50 tslib: 2.8.1 - '@stripe/stripe-js@8.6.0': {} + '@stripe/stripe-js@8.6.1': {} '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.28.5)': dependencies: @@ -15117,15 +15209,15 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@tanstack/react-virtual@3.13.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@tanstack/react-virtual@3.13.18(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@tanstack/virtual-core': 3.13.16 + '@tanstack/virtual-core': 3.13.18 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) '@tanstack/table-core@8.21.3': {} - '@tanstack/virtual-core@3.13.16': {} + '@tanstack/virtual-core@3.13.18': {} '@testing-library/dom@10.4.1': dependencies: @@ -15263,9 +15355,9 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/ioredis-mock@8.2.6(ioredis@5.8.2)': + '@types/ioredis-mock@8.2.6(ioredis@5.9.1)': dependencies: - ioredis: 5.8.2 + ioredis: 5.9.1 '@types/istanbul-lib-coverage@2.0.6': {} @@ -15299,10 +15391,6 @@ snapshots: '@types/node-cron@3.0.11': {} - '@types/node@22.19.3': - dependencies: - undici-types: 6.21.0 - '@types/node@24.10.4': dependencies: undici-types: 7.16.0 @@ -15313,9 +15401,11 @@ snapshots: '@types/nprogress@0.2.3': {} - '@types/react-dom@19.2.3(@types/react@19.1.17)': + '@types/prop-types@15.7.15': {} + + '@types/react-dom@19.2.3(@types/react@18.3.27)': dependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 optional: true '@types/react-dom@19.2.3(@types/react@19.2.7)': @@ -15329,8 +15419,9 @@ snapshots: '@types/geojson': 7946.0.16 '@types/react': 19.2.7 - '@types/react@19.1.17': + '@types/react@18.3.27': dependencies: + '@types/prop-types': 15.7.15 csstype: 3.2.3 '@types/react@19.2.7': @@ -15383,7 +15474,7 @@ snapshots: '@urql/core': 5.2.0(graphql@16.12.0) wonka: 6.3.5 - '@vitejs/plugin-react@5.1.2(vite@7.3.0(@types/node@25.0.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.1(@types/node@25.0.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) @@ -15391,7 +15482,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@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -15438,14 +15529,14 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.16(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.0.16(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.0.16 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.12.7(@types/node@25.0.3)(typescript@5.9.3) - vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@4.0.16': dependencies: @@ -15637,7 +15728,7 @@ snapshots: autoprefixer@10.4.23(postcss@8.5.6): dependencies: browserslist: 4.28.1 - caniuse-lite: 1.0.30001762 + caniuse-lite: 1.0.30001763 fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.6 @@ -15778,7 +15869,7 @@ snapshots: resolve-from: 5.0.0 optionalDependencies: '@babel/runtime': 7.28.4 - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@babel/core' - supports-color @@ -15834,7 +15925,7 @@ snapshots: base64id@2.0.0: {} - baseline-browser-mapping@2.9.11: {} + baseline-browser-mapping@2.9.14: {} basic-ftp@5.1.0: {} @@ -15885,8 +15976,8 @@ snapshots: browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.9.11 - caniuse-lite: 1.0.30001762 + baseline-browser-mapping: 2.9.14 + caniuse-lite: 1.0.30001763 electron-to-chromium: 1.5.267 node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -15904,6 +15995,11 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + bundle-require@5.1.0(esbuild@0.27.2): dependencies: esbuild: 0.27.2 @@ -15940,7 +16036,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001762: {} + caniuse-lite@1.0.30001763: {} canvas-confetti@1.9.4: {} @@ -15991,7 +16087,7 @@ snapshots: parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 - undici: 7.16.0 + undici: 7.18.2 whatwg-mimetype: 4.0.0 chokidar@3.6.0: @@ -16284,10 +16380,10 @@ snapshots: dependencies: css-tree: 2.2.1 - cssstyle@5.3.6: + cssstyle@5.3.7: dependencies: '@asamuzakjp/css-color': 4.1.1 - '@csstools/css-syntax-patches-for-csstree': 1.0.22 + '@csstools/css-syntax-patches-for-csstree': 1.0.23 css-tree: 3.1.0 lru-cache: 11.2.4 @@ -16476,6 +16572,8 @@ snapshots: destroy@1.2.0: {} + detect-libc@1.0.3: {} + detect-libc@2.1.2: {} detect-node-es@1.1.0: {} @@ -16532,7 +16630,7 @@ snapshots: dotenv-expand@11.0.7: dependencies: - dotenv: 16.6.1 + dotenv: 16.4.7 dotenv-expand@12.0.3: dependencies: @@ -16553,13 +16651,13 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.45.1(postgres@3.4.7): + drizzle-orm@0.45.1(postgres@3.4.8): optionalDependencies: - postgres: 3.4.7 + postgres: 3.4.8 - drizzle-zod@0.8.3(drizzle-orm@0.45.1(postgres@3.4.7))(zod@4.3.5): + drizzle-zod@0.8.3(drizzle-orm@0.45.1(postgres@3.4.8))(zod@4.3.5): dependencies: - drizzle-orm: 0.45.1(postgres@3.4.7) + drizzle-orm: 0.45.1(postgres@3.4.8) zod: 4.3.5 dunder-proto@1.0.1: @@ -16747,8 +16845,6 @@ snapshots: es6-promise@3.3.1: {} - es6-promise@4.2.8: {} - esast-util-from-estree@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 @@ -16944,28 +17040,28 @@ snapshots: expect-type@1.3.0: {} - expo-asset@12.0.12(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-asset@12.0.12(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: '@expo/image-utils': 0.8.8 - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1)) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) transitivePeerDependencies: - supports-color - expo-constants@18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)): + expo-constants@18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1)): dependencies: '@expo/config': 12.0.13 '@expo/env': 2.0.8 - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) transitivePeerDependencies: - supports-color expo-dev-client@6.0.20(expo@54.0.31): dependencies: - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-dev-launcher: 6.0.20(expo@54.0.31) expo-dev-menu: 7.0.18(expo@54.0.31) expo-dev-menu-interface: 2.0.0(expo@54.0.31) @@ -16977,7 +17073,7 @@ snapshots: expo-dev-launcher@6.0.20(expo@54.0.31): dependencies: ajv: 8.17.1 - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-dev-menu: 7.0.18(expo@54.0.31) expo-manifests: 1.0.10(expo@54.0.31) transitivePeerDependencies: @@ -16985,38 +17081,38 @@ snapshots: expo-dev-menu-interface@2.0.0(expo@54.0.31): dependencies: - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-dev-menu@7.0.18(expo@54.0.31): dependencies: - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-dev-menu-interface: 2.0.0(expo@54.0.31) - expo-file-system@19.0.21(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)): + expo-file-system@19.0.21(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1)): dependencies: - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) - expo-font@14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-font@14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) fontfaceobserver: 2.3.0 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) expo-json-utils@0.15.0: {} - expo-keep-awake@15.0.8(expo@54.0.31)(react@19.1.0): + expo-keep-awake@15.0.8(expo@54.0.31)(react@18.3.1): dependencies: - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react: 19.1.0 + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react: 18.3.1 - expo-linking@8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-linking@8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: - expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1)) invariant: 2.2.4 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) transitivePeerDependencies: - expo - supports-color @@ -17024,7 +17120,7 @@ snapshots: expo-manifests@1.0.10(expo@54.0.31): dependencies: '@expo/config': 12.0.13 - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-json-utils: 0.15.0 transitivePeerDependencies: - supports-color @@ -17037,49 +17133,49 @@ 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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-modules-core@3.0.29(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: invariant: 2.2.4 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) - expo-router@6.0.21(eb22c47db85bc856ec4297cb0d259d8e): + expo-router@6.0.21(ed0173313472e3a4d9a27b966543cc3e): dependencies: - '@expo/metro-runtime': 6.1.2(expo@54.0.31)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@expo/metro-runtime': 6.1.2(expo@54.0.31)(react-dom@18.3.1(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) '@expo/schema-utils': 0.1.8 - '@radix-ui/react-slot': 1.2.0(@types/react@19.1.17)(react@19.1.0) - '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-navigation/bottom-tabs': 7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@react-navigation/native-stack': 7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.0(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-navigation/bottom-tabs': 7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + '@react-navigation/native': 7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + '@react-navigation/native-stack': 7.9.0(@react-navigation/native@7.1.26(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) client-only: 0.0.1 debug: 4.4.3 escape-string-regexp: 4.0.0 - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) - expo-linking: 8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1)) + expo-linking: 8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) expo-server: 1.0.5 fast-deep-equal: 3.1.3 invariant: 2.2.4 nanoid: 3.3.11 query-string: 7.1.3 - react: 19.1.0 + react: 18.3.1 react-fast-compare: 3.2.2 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) semver: 7.6.3 server-only: 0.0.1 sf-symbols-typescript: 2.2.0 shallowequal: 1.1.0 - use-latest-callback: 0.2.6(react@19.1.0) - vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + use-latest-callback: 0.2.6(react@18.3.1) + vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 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)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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) + react-dom: 18.3.1(react@18.3.1) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native-web: 0.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@types/react' @@ -17091,58 +17187,58 @@ snapshots: expo-splash-screen@31.0.13(expo@54.0.31): dependencies: '@expo/prebuild-config': 54.0.8(expo@54.0.31) - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - supports-color - expo-status-bar@3.0.9(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-status-bar@3.0.9(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) - expo-system-ui@6.0.9(expo@54.0.31)(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)(@types/react@19.1.17)(react@19.1.0)): + expo-system-ui@6.0.9(expo@54.0.31)(react-native-web@0.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1)): dependencies: '@react-native/normalize-colors': 0.81.5 debug: 4.4.3 - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) optionalDependencies: - react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-native-web: 0.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - supports-color expo-updates-interface@2.0.0(expo@54.0.31): dependencies: - expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) - expo@54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo@54.0.31(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.28.4 - '@expo/cli': 54.0.21(expo-router@6.0.21)(expo@54.0.31)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) + '@expo/cli': 54.0.21(expo-router@6.0.21)(expo@54.0.31)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1)) '@expo/config': 12.0.13 '@expo/config-plugins': 54.0.4 - '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) '@expo/fingerprint': 0.15.4 '@expo/metro': 54.2.0 '@expo/metro-config': 54.0.13(expo@54.0.31) - '@expo/vector-icons': 15.0.3(expo-font@14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@expo/vector-icons': 15.0.3(expo-font@14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) '@ungap/structured-clone': 1.3.0 babel-preset-expo: 54.0.9(@babel/core@7.28.5)(@babel/runtime@7.28.4)(expo@54.0.31)(react-refresh@0.14.2) - expo-asset: 12.0.12(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) - expo-file-system: 19.0.21(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0)) - expo-font: 14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-keep-awake: 15.0.8(expo@54.0.31)(react@19.1.0) + expo-asset: 12.0.12(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1)) + expo-file-system: 19.0.21(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1)) + expo-font: 14.0.10(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + expo-keep-awake: 15.0.8(expo@54.0.31)(react@18.3.1) expo-modules-autolinking: 3.0.24 - expo-modules-core: 3.0.29(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-modules-core: 3.0.29(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) pretty-format: 29.7.0 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) react-refresh: 0.14.2 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - '@expo/metro-runtime': 6.1.2(expo@54.0.31)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@expo/metro-runtime': 6.1.2(expo@54.0.31)(react-dom@18.3.1(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@babel/core' - bufferutil @@ -17246,7 +17342,7 @@ snapshots: fast-json-stringify: 6.1.1 find-my-way: 9.4.0 light-my-request: 6.6.0 - pino: 10.1.0 + pino: 10.1.1 process-warning: 5.0.0 rfdc: 1.4.1 secure-json-parse: 4.1.0 @@ -17343,7 +17439,7 @@ snapshots: dependencies: magic-string: 0.30.21 mlly: 1.8.0 - rollup: 4.54.0 + rollup: 4.55.1 flatted@3.3.3: {} @@ -17372,10 +17468,10 @@ snapshots: fraction.js@5.3.4: {} - framer-motion@12.23.26(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + framer-motion@12.25.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - motion-dom: 12.23.23 - motion-utils: 12.23.6 + motion-dom: 12.24.11 + motion-utils: 12.24.10 tslib: 2.8.1 optionalDependencies: react: 19.2.3 @@ -17684,7 +17780,7 @@ snapshots: hyphenate-style-name@1.1.0: {} - i18next@25.7.3(typescript@5.9.3): + i18next@25.7.4(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.4 optionalDependencies: @@ -17751,19 +17847,19 @@ snapshots: dependencies: loose-envify: 1.4.0 - ioredis-mock@8.13.1(@types/ioredis-mock@8.2.6(ioredis@5.8.2))(ioredis@5.8.2): + ioredis-mock@8.13.1(@types/ioredis-mock@8.2.6(ioredis@5.9.1))(ioredis@5.9.1): dependencies: '@ioredis/as-callback': 3.0.0 '@ioredis/commands': 1.5.0 - '@types/ioredis-mock': 8.2.6(ioredis@5.8.2) + '@types/ioredis-mock': 8.2.6(ioredis@5.9.1) fengari: 0.1.5 fengari-interop: 0.1.4(fengari@0.1.5) - ioredis: 5.8.2 + ioredis: 5.9.1 semver: 7.7.3 - ioredis@5.8.2: + ioredis@5.9.1: dependencies: - '@ioredis/commands': 1.4.0 + '@ioredis/commands': 1.5.0 cluster-key-slot: 1.1.2 debug: 4.4.3 denque: 2.1.0 @@ -18085,7 +18181,7 @@ snapshots: '@acemir/cssom': 0.9.30 '@asamuzakjp/dom-selector': 6.7.6 '@exodus/bytes': 1.8.0 - cssstyle: 5.3.6 + cssstyle: 5.3.7 data-urls: 6.0.0 decimal.js: 10.6.0 html-encoding-sniffer: 6.0.0 @@ -18100,7 +18196,7 @@ snapshots: webidl-conversions: 8.0.1 whatwg-mimetype: 4.0.0 whatwg-url: 15.1.0 - ws: 8.18.3 + ws: 8.19.0 xml-name-validator: 5.0.0 transitivePeerDependencies: - '@exodus/crypto' @@ -18174,36 +18270,81 @@ snapshots: lightningcss-android-arm64@1.30.2: optional: true + lightningcss-darwin-arm64@1.27.0: + optional: true + lightningcss-darwin-arm64@1.30.2: optional: true + lightningcss-darwin-x64@1.27.0: + optional: true + lightningcss-darwin-x64@1.30.2: optional: true + lightningcss-freebsd-x64@1.27.0: + optional: true + lightningcss-freebsd-x64@1.30.2: optional: true + lightningcss-linux-arm-gnueabihf@1.27.0: + optional: true + lightningcss-linux-arm-gnueabihf@1.30.2: optional: true + lightningcss-linux-arm64-gnu@1.27.0: + optional: true + lightningcss-linux-arm64-gnu@1.30.2: optional: true + lightningcss-linux-arm64-musl@1.27.0: + optional: true + lightningcss-linux-arm64-musl@1.30.2: optional: true + lightningcss-linux-x64-gnu@1.27.0: + optional: true + lightningcss-linux-x64-gnu@1.30.2: optional: true + lightningcss-linux-x64-musl@1.27.0: + optional: true + lightningcss-linux-x64-musl@1.30.2: optional: true + lightningcss-win32-arm64-msvc@1.27.0: + optional: true + lightningcss-win32-arm64-msvc@1.30.2: optional: true + lightningcss-win32-x64-msvc@1.27.0: + optional: true + lightningcss-win32-x64-msvc@1.30.2: optional: true + lightningcss@1.27.0: + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.27.0 + lightningcss-darwin-x64: 1.27.0 + lightningcss-freebsd-x64: 1.27.0 + lightningcss-linux-arm-gnueabihf: 1.27.0 + lightningcss-linux-arm64-gnu: 1.27.0 + lightningcss-linux-arm64-musl: 1.27.0 + lightningcss-linux-x64-gnu: 1.27.0 + lightningcss-linux-x64-musl: 1.27.0 + lightningcss-win32-arm64-msvc: 1.27.0 + lightningcss-win32-x64-msvc: 1.27.0 + lightningcss@1.30.2: dependencies: detect-libc: 2.1.2 @@ -18909,17 +19050,17 @@ snapshots: acorn: 8.15.0 pathe: 2.0.3 pkg-types: 1.3.1 - ufo: 1.6.1 + ufo: 1.6.2 mnemonist@0.40.3: dependencies: obliterator: 2.0.5 - motion-dom@12.23.23: + motion-dom@12.24.11: dependencies: - motion-utils: 12.23.6 + motion-utils: 12.24.10 - motion-utils@12.23.6: {} + motion-utils@12.24.10: {} mrmime@2.0.1: {} @@ -18962,12 +19103,12 @@ snapshots: nanoid@3.3.11: {} - nativewind@4.1.23(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17): + 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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)): dependencies: comment-json: 4.5.1 debug: 4.4.3 - react-native-css-interop: 0.1.22(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17) - tailwindcss: 3.4.17 + 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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)(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 @@ -18995,8 +19136,8 @@ snapshots: next: 16.1.1(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) oauth: 0.9.15 openid-client: 5.7.1 - preact: 10.28.1 - preact-render-to-string: 5.2.6(preact@10.28.1) + preact: 10.28.2 + preact-render-to-string: 5.2.6(preact@10.28.2) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) uuid: 8.3.2 @@ -19016,8 +19157,8 @@ snapshots: dependencies: '@next/env': 16.1.1 '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.9.11 - caniuse-lite: 1.0.30001762 + baseline-browser-mapping: 2.9.14 + caniuse-lite: 1.0.30001763 postcss: 8.4.31 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -19223,9 +19364,9 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@6.15.0(ws@8.18.3)(zod@4.3.5): + openai@6.16.0(ws@8.19.0)(zod@4.3.5): optionalDependencies: - ws: 8.18.3 + ws: 8.19.0 zod: 4.3.5 openapi-types@12.1.3: {} @@ -19430,10 +19571,6 @@ snapshots: pify@2.3.0: {} - pino-abstract-transport@2.0.0: - dependencies: - split2: 4.2.0 - pino-abstract-transport@3.0.0: dependencies: split2: 4.2.0 @@ -19456,19 +19593,19 @@ snapshots: pino-std-serializers@7.0.0: {} - pino@10.1.0: + pino@10.1.1: dependencies: '@pinojs/redact': 0.4.0 atomic-sleep: 1.0.0 on-exit-leak-free: 2.1.2 - pino-abstract-transport: 2.0.0 + pino-abstract-transport: 3.0.0 pino-std-serializers: 7.0.0 process-warning: 5.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.5.0 sonic-boom: 4.2.0 - thread-stream: 3.1.0 + thread-stream: 4.0.0 pirates@4.0.7: {} @@ -19508,13 +19645,6 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@4.0.2(postcss@8.5.6): - dependencies: - lilconfig: 3.1.3 - yaml: 2.8.2 - optionalDependencies: - postcss: 8.5.6 - 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 @@ -19568,14 +19698,14 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postgres@3.4.7: {} + postgres@3.4.8: {} - preact-render-to-string@5.2.6(preact@10.28.1): + preact-render-to-string@5.2.6(preact@10.28.2): dependencies: - preact: 10.28.1 + preact: 10.28.2 pretty-format: 3.8.0 - preact@10.28.1: {} + preact@10.28.2: {} prettier@3.7.4: {} @@ -19658,7 +19788,7 @@ snapshots: devtools-protocol: 0.0.1534754 typed-query-selector: 2.12.0 webdriver-bidi-protocol: 0.3.10 - ws: 8.18.3 + ws: 8.19.0 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -19697,8 +19827,6 @@ snapshots: split-on-first: 1.1.0 strict-uri-encode: 2.0.0 - querystringify@2.2.0: {} - queue-microtask@1.2.3: {} queue@6.0.2: @@ -19745,10 +19873,11 @@ snapshots: - bufferutil - utf-8-validate - react-dom@19.1.0(react@19.1.0): + react-dom@18.3.1(react@18.3.1): dependencies: - react: 19.1.0 - scheduler: 0.26.0 + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 react-dom@19.2.3(react@19.2.3): dependencies: @@ -19762,7 +19891,7 @@ snapshots: react-dom: 19.2.3(react@19.2.3) tslib: 2.8.1 - react-email@5.1.1: + react-email@5.2.1: dependencies: '@babel/parser': 7.28.5 '@babel/traverse': 7.28.5 @@ -19788,19 +19917,19 @@ snapshots: react-fast-compare@3.2.2: {} - react-freeze@1.0.4(react@19.1.0): + react-freeze@1.0.4(react@18.3.1): dependencies: - react: 19.1.0 + react: 18.3.1 react-hook-form@7.70.0(react@19.2.3): dependencies: react: 19.2.3 - react-i18next@16.5.1(i18next@25.7.3(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3): + react-i18next@16.5.1(i18next@25.7.4(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.4 html-parse-stringify: 3.0.1 - i18next: 25.7.3(typescript@5.9.3) + i18next: 25.7.4(typescript@5.9.3) react: 19.2.3 use-sync-external-store: 1.6.0(react@19.2.3) optionalDependencies: @@ -19819,68 +19948,86 @@ snapshots: dependencies: react: 19.2.3 - react-native-css-interop@0.1.22(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17): + react-native-css-interop@0.1.22(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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)): dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/traverse': 7.28.5 '@babel/types': 7.28.5 debug: 4.4.3 lightningcss: 1.30.2 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + semver: 7.7.3 + 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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native-svg: 15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - supports-color + + 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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)): + dependencies: + '@babel/helper-module-imports': 7.27.1 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + debug: 4.4.3 + lightningcss: 1.27.0 + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) semver: 7.7.3 - tailwindcss: 3.4.17 + 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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-svg: 15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native-svg: 15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - supports-color - react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): 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)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) - react-native-is-edge-to-edge@1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: '@babel/core': 7.28.5 - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) + react-native-worklets: 0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) semver: 7.7.2 - react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: - react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) - react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: - react: 19.1.0 - react-freeze: 1.0.4(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 18.3.1 + react-freeze: 1.0.4(react@18.3.1) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) warn-once: 0.1.1 - react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-svg@15.15.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): 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)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) warn-once: 0.1.1 - react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-native-web@0.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.28.4 '@react-native/normalize-colors': 0.74.89 @@ -19889,13 +20036,13 @@ snapshots: memoize-one: 6.0.0 nullthrows: 1.1.1 postcss-value-parser: 4.2.0 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) styleq: 0.1.3 transitivePeerDependencies: - encoding - react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(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)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1): dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) @@ -19908,13 +20055,13 @@ snapshots: '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) '@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)(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1) semver: 7.7.2 transitivePeerDependencies: - supports-color - react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0): + react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.81.5 @@ -19923,7 +20070,7 @@ snapshots: '@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.1.17)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-native/virtualized-lists': 0.81.5(@types/react@18.3.27)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@18.3.27)(react@18.3.1))(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -19941,7 +20088,7 @@ snapshots: nullthrows: 1.1.1 pretty-format: 29.7.0 promise: 8.3.0 - react: 19.1.0 + react: 18.3.1 react-devtools-core: 6.1.5 react-refresh: 0.14.2 regenerator-runtime: 0.13.11 @@ -19952,7 +20099,7 @@ snapshots: ws: 6.2.3 yargs: 17.7.2 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 transitivePeerDependencies: - '@babel/core' - '@react-native-community/cli' @@ -19974,13 +20121,13 @@ snapshots: react-refresh@0.18.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.17)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@18.3.27)(react@18.3.1): dependencies: - react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-style-singleton: 2.2.3(@types/react@18.3.27)(react@18.3.1) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 react-remove-scroll-bar@2.3.8(@types/react@19.2.7)(react@19.2.3): dependencies: @@ -19990,16 +20137,16 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - react-remove-scroll@2.7.2(@types/react@19.1.17)(react@19.1.0): + react-remove-scroll@2.7.2(@types/react@18.3.27)(react@18.3.1): dependencies: - react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.17)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.0) + react: 18.3.1 + react-remove-scroll-bar: 2.3.8(@types/react@18.3.27)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.27)(react@18.3.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.17)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.1.17)(react@19.1.0) + use-callback-ref: 1.3.3(@types/react@18.3.27)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.27)(react@18.3.1) optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 react-remove-scroll@2.7.2(@types/react@19.2.7)(react@19.2.3): dependencies: @@ -20012,7 +20159,7 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - react-resizable-panels@4.2.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-resizable-panels@4.3.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -20027,13 +20174,13 @@ snapshots: react-dom: 19.2.3(react@19.2.3) topojson-client: 3.1.0 - react-style-singleton@2.2.3(@types/react@19.1.17)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@18.3.27)(react@18.3.1): dependencies: get-nonce: 1.0.1 - react: 19.1.0 + react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 react-style-singleton@2.2.3(@types/react@19.2.7)(react@19.2.3): dependencies: @@ -20050,7 +20197,9 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - react@19.1.0: {} + react@18.3.1: + dependencies: + loose-envify: 1.4.0 react@19.2.3: {} @@ -20222,15 +20371,13 @@ snapshots: rc: 1.2.8 resolve: 1.7.1 - requires-port@1.0.0: {} - reselect@5.1.1: {} - resend@6.6.0(@react-email/render@2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)): + resend@6.7.0(@react-email/render@2.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)): dependencies: - svix: 1.76.1 + svix: 1.84.1 optionalDependencies: - '@react-email/render': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@react-email/render': 2.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) resolve-from@4.0.0: {} @@ -20278,32 +20425,35 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.54.0: + rollup@4.55.1: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.54.0 - '@rollup/rollup-android-arm64': 4.54.0 - '@rollup/rollup-darwin-arm64': 4.54.0 - '@rollup/rollup-darwin-x64': 4.54.0 - '@rollup/rollup-freebsd-arm64': 4.54.0 - '@rollup/rollup-freebsd-x64': 4.54.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.54.0 - '@rollup/rollup-linux-arm-musleabihf': 4.54.0 - '@rollup/rollup-linux-arm64-gnu': 4.54.0 - '@rollup/rollup-linux-arm64-musl': 4.54.0 - '@rollup/rollup-linux-loong64-gnu': 4.54.0 - '@rollup/rollup-linux-ppc64-gnu': 4.54.0 - '@rollup/rollup-linux-riscv64-gnu': 4.54.0 - '@rollup/rollup-linux-riscv64-musl': 4.54.0 - '@rollup/rollup-linux-s390x-gnu': 4.54.0 - '@rollup/rollup-linux-x64-gnu': 4.54.0 - '@rollup/rollup-linux-x64-musl': 4.54.0 - '@rollup/rollup-openharmony-arm64': 4.54.0 - '@rollup/rollup-win32-arm64-msvc': 4.54.0 - '@rollup/rollup-win32-ia32-msvc': 4.54.0 - '@rollup/rollup-win32-x64-gnu': 4.54.0 - '@rollup/rollup-win32-x64-msvc': 4.54.0 + '@rollup/rollup-android-arm-eabi': 4.55.1 + '@rollup/rollup-android-arm64': 4.55.1 + '@rollup/rollup-darwin-arm64': 4.55.1 + '@rollup/rollup-darwin-x64': 4.55.1 + '@rollup/rollup-freebsd-arm64': 4.55.1 + '@rollup/rollup-freebsd-x64': 4.55.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.55.1 + '@rollup/rollup-linux-arm-musleabihf': 4.55.1 + '@rollup/rollup-linux-arm64-gnu': 4.55.1 + '@rollup/rollup-linux-arm64-musl': 4.55.1 + '@rollup/rollup-linux-loong64-gnu': 4.55.1 + '@rollup/rollup-linux-loong64-musl': 4.55.1 + '@rollup/rollup-linux-ppc64-gnu': 4.55.1 + '@rollup/rollup-linux-ppc64-musl': 4.55.1 + '@rollup/rollup-linux-riscv64-gnu': 4.55.1 + '@rollup/rollup-linux-riscv64-musl': 4.55.1 + '@rollup/rollup-linux-s390x-gnu': 4.55.1 + '@rollup/rollup-linux-x64-gnu': 4.55.1 + '@rollup/rollup-linux-x64-musl': 4.55.1 + '@rollup/rollup-openbsd-x64': 4.55.1 + '@rollup/rollup-openharmony-arm64': 4.55.1 + '@rollup/rollup-win32-arm64-msvc': 4.55.1 + '@rollup/rollup-win32-ia32-msvc': 4.55.1 + '@rollup/rollup-win32-x64-gnu': 4.55.1 + '@rollup/rollup-win32-x64-msvc': 4.55.1 fsevents: 2.3.3 run-parallel@1.2.0: @@ -20341,12 +20491,16 @@ snapshots: safer-buffer@2.1.2: {} - sax@1.4.3: {} + sax@1.4.4: {} saxes@6.0.0: dependencies: xmlchars: 2.2.0 + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + scheduler@0.26.0: {} scheduler@0.27.0: {} @@ -20560,7 +20714,7 @@ snapshots: '@types/node': 24.10.4 '@types/sax': 1.2.7 arg: 5.0.2 - sax: 1.4.3 + sax: 1.4.4 slash@3.0.0: {} @@ -20662,6 +20816,11 @@ snapshots: standard-as-callback@2.1.0: {} + standardwebhooks@1.0.0: + dependencies: + '@stablelib/base64': 1.0.1 + fast-sha256: 1.3.0 + statuses@1.5.0: {} statuses@2.0.2: {} @@ -20775,7 +20934,7 @@ snapshots: strip-json-comments@5.0.3: {} - stripe@20.1.0(@types/node@25.0.3): + stripe@20.1.2(@types/node@25.0.3): dependencies: qs: 6.14.1 optionalDependencies: @@ -20849,13 +21008,9 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - svix@1.76.1: + svix@1.84.1: dependencies: - '@stablelib/base64': 1.0.1 - '@types/node': 22.19.3 - es6-promise: 4.2.8 - fast-sha256: 1.3.0 - url-parse: 1.5.10 + standardwebhooks: 1.0.0 uuid: 10.0.0 swagger2openapi@7.0.8: @@ -20900,33 +21055,6 @@ snapshots: dependencies: tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.2) - tailwindcss@3.4.17: - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.3 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - 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: 4.0.2(postcss@8.5.6) - postcss-nested: 6.2.0(postcss@8.5.6) - postcss-selector-parser: 6.1.2 - resolve: 1.22.11 - sucrase: 3.35.1 - transitivePeerDependencies: - - ts-node - tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2): dependencies: '@alloc/quick-lru': 5.2.0 @@ -21020,7 +21148,7 @@ snapshots: dependencies: any-promise: 1.3.0 - thread-stream@3.1.0: + thread-stream@4.0.0: dependencies: real-require: 0.2.0 @@ -21114,7 +21242,7 @@ snapshots: picocolors: 1.1.1 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.54.0 + rollup: 4.55.1 source-map: 0.7.6 sucrase: 3.35.1 tinyexec: 0.3.2 @@ -21221,7 +21349,7 @@ snapshots: typedoc@0.28.15(typescript@5.9.3): dependencies: - '@gerrit0/mini-shiki': 3.20.0 + '@gerrit0/mini-shiki': 3.21.0 lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 @@ -21238,7 +21366,7 @@ snapshots: uc.micro@2.1.0: {} - ufo@1.6.1: {} + ufo@1.6.2: {} uint8array-extras@1.5.0: {} @@ -21249,13 +21377,11 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.21.0: {} - undici-types@7.16.0: {} undici@6.23.0: {} - undici@7.16.0: {} + undici@7.18.2: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -21313,9 +21439,9 @@ snapshots: unpipe@1.0.0: {} - unplugin-swc@1.5.9(@swc/core@1.15.8)(rollup@4.54.0): + unplugin-swc@1.5.9(@swc/core@1.15.8)(rollup@4.55.1): dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.54.0) + '@rollup/pluginutils': 5.3.0(rollup@4.55.1) '@swc/core': 1.15.8 load-tsconfig: 0.2.5 unplugin: 2.3.11 @@ -21339,17 +21465,12 @@ snapshots: urijs@1.19.11: {} - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - - use-callback-ref@1.3.3(@types/react@19.1.17)(react@19.1.0): + use-callback-ref@1.3.3(@types/react@18.3.27)(react@18.3.1): dependencies: - react: 19.1.0 + react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 use-callback-ref@1.3.3(@types/react@19.2.7)(react@19.2.3): dependencies: @@ -21358,17 +21479,17 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - use-latest-callback@0.2.6(react@19.1.0): + use-latest-callback@0.2.6(react@18.3.1): dependencies: - react: 19.1.0 + react: 18.3.1 - use-sidecar@1.1.3(@types/react@19.1.17)(react@19.1.0): + use-sidecar@1.1.3(@types/react@18.3.27)(react@18.3.1): dependencies: detect-node-es: 1.1.0 - react: 19.1.0 + react: 18.3.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 18.3.27 use-sidecar@1.1.3(@types/react@19.2.7)(react@19.2.3): dependencies: @@ -21378,9 +21499,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - use-sync-external-store@1.6.0(react@19.1.0): + use-sync-external-store@1.6.0(react@18.3.1): dependencies: - react: 19.1.0 + react: 18.3.1 use-sync-external-store@1.6.0(react@19.2.3): dependencies: @@ -21406,11 +21527,11 @@ snapshots: vary@1.1.2: {} - vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + vaul@1.1.2(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -21451,24 +21572,24 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-tsconfig-paths@6.0.3(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): + vite-tsconfig-paths@6.0.4(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.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 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@25.0.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@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.3.1(@types/node@25.0.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.2 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.54.0 + rollup: 4.55.1 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 25.0.3 @@ -21482,7 +21603,7 @@ snapshots: vitest@4.0.16(@types/node@25.0.3)(@vitest/ui@4.0.16)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.16 - '@vitest/mocker': 4.0.16(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 4.0.16(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 4.0.16 '@vitest/runner': 4.0.16 '@vitest/snapshot': 4.0.16 @@ -21499,7 +21620,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@25.0.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/node': 25.0.3 @@ -21575,7 +21696,7 @@ snapshots: whatwg-url-without-unicode@8.0.0-3: dependencies: - buffer: 5.6.0 + buffer: 5.7.1 punycode: 2.3.1 webidl-conversions: 5.0.0 @@ -21676,6 +21797,8 @@ snapshots: ws@8.18.3: {} + ws@8.19.0: {} + xcode@3.0.1: dependencies: simple-plist: 1.3.1 @@ -21685,7 +21808,7 @@ snapshots: xml2js@0.6.0: dependencies: - sax: 1.4.3 + sax: 1.4.4 xmlbuilder: 11.0.1 xmlbuilder@11.0.1: {} From 87212749dab0be4ea044f469550e5dc08ca7d7e7 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 10 Jan 2026 12:03:25 -0300 Subject: [PATCH 04/77] feat(ios): implement initial authentication flow and UI components - Added `LoginView` for user authentication with input fields and validation. - Created `RootView` to manage navigation based on authentication state. - Introduced `AuthService` for handling login logic and token management. - Implemented `PrimaryButton` and `SocialButton` components for UI consistency. - Established localization support with `Language` and `Strings` for multi-language support. - Set up adaptive color themes for light and dark modes. --- .cursor/rules/ios-views.mdc | 169 ++++++++++++ IOS_TASKS.md | 248 ++++++++++++++---- apps/ios/Plotwist/Plotwist/App/RootView.swift | 29 ++ .../Plotwist/Components/PrimaryButton.swift | 100 +++++++ apps/ios/Plotwist/Plotwist/ContentView.swift | 24 -- .../Plotwist/Localization/Language.swift | 48 ++++ .../Plotwist/Localization/Strings.swift | 150 +++++++++++ apps/ios/Plotwist/Plotwist/PlotwistApp.swift | 2 +- .../Plotwist/Services/AuthService.swift | 66 +++++ apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 40 +++ .../Plotwist/Theme/ThemeManager.swift | 55 ++++ .../Plotwist/Plotwist/Utils/Constants.swift | 10 + .../Plotwist/Views/Auth/LoginView.swift | 167 ++++++++++++ .../Plotwist/Views/Home/HomeView.swift | 27 ++ apps/ios/README.md | 182 ------------- apps/ios/SETUP.md | 191 -------------- 16 files changed, 1062 insertions(+), 446 deletions(-) create mode 100644 .cursor/rules/ios-views.mdc create mode 100644 apps/ios/Plotwist/Plotwist/App/RootView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift delete mode 100644 apps/ios/Plotwist/Plotwist/ContentView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Localization/Language.swift create mode 100644 apps/ios/Plotwist/Plotwist/Localization/Strings.swift create mode 100644 apps/ios/Plotwist/Plotwist/Services/AuthService.swift create mode 100644 apps/ios/Plotwist/Plotwist/Theme/Colors.swift create mode 100644 apps/ios/Plotwist/Plotwist/Theme/ThemeManager.swift create mode 100644 apps/ios/Plotwist/Plotwist/Utils/Constants.swift create mode 100644 apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift delete mode 100644 apps/ios/README.md delete mode 100644 apps/ios/SETUP.md diff --git a/.cursor/rules/ios-views.mdc b/.cursor/rules/ios-views.mdc new file mode 100644 index 00000000..60405ce1 --- /dev/null +++ b/.cursor/rules/ios-views.mdc @@ -0,0 +1,169 @@ +--- +description: Regras para criar telas iOS no projeto Plotwist +globs: + - "apps/ios/**/*.swift" +alwaysApply: false +--- + +# Regras para Telas iOS - Plotwist + +## Estrutura de Arquivos + +``` +apps/ios/Plotwist/Plotwist/ +├── App/ # Entry point e RootView +├── Components/ # Componentes reutilizáveis +│ └── PrimaryButton.swift # Botões padrão +├── Views/ # Telas organizadas por feature +│ ├── Auth/ # Login, SignUp, etc +│ ├── Home/ # Dashboard +│ ├── Movies/ # Catálogo de filmes +│ └── ... +├── Services/ # Serviços de API +├── Theme/ # Cores e estilos +├── Localization/ # Multi-idioma +│ ├── Language.swift # Enum de idiomas +│ └── Strings.swift # Todas as strings traduzidas +└── Utils/ # Constantes +``` + +## Regras de Criação de Views + +1. **Mantenha tudo simples** - State local na View, sem ViewModel separado para telas simples +2. **Use @State** para estados locais (loading, error, form fields) +3. **API sempre em `localhost:3333`** - Configurado em `Utils/Constants.swift` +4. **Use as cores do tema** - Definidas em `Theme/Colors.swift` +5. **Use L10n.current para strings** - Todas as strings devem ser traduzidas + +## Localização (Multi-idioma) + +Use `L10n.current` para acessar strings traduzidas: + +```swift +@State private var strings = L10n.current + +// Na view +Text(strings.accessPlotwist) +Text(strings.loginLabel) + +// Reagir a mudanças de idioma +.onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current +} +``` + +**Idiomas suportados:** en-US, pt-BR, es-ES, fr-FR, de-DE, it-IT, ja-JP + +**Adicionar novas strings:** Edite `Localization/Strings.swift` + +## Template de View Simples + +```swift +import SwiftUI + +struct NomeDaTelaView: View { + @State private var isLoading = false + @State private var error: String? + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 16) { + // Conteúdo + } + .padding(.horizontal, 24) + } + } +} + +#Preview { + NomeDaTelaView() +} +``` + +## Cores (use sempre estas) + +- `Color.appBackgroundAdaptive` - Background principal +- `Color.appForegroundAdaptive` - Texto principal +- `Color.appBorderAdaptive` - Bordas (inputs e botões usam transparente + borda) +- `Color.appMutedForegroundAdaptive` - Texto secundário +- `Color.appDestructive` - Erros e ações destrutivas + +## Componentes Comuns + +### Input Field (transparente com borda) + +```swift +TextField("Placeholder", text: $value) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 8) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) +``` + +### Botão Primário (use o componente) + +```swift +// Filled (preto) +PrimaryButton("Access", variant: .filled, isLoading: isLoading) { + // ação +} + +// Outline (transparente com borda) +PrimaryButton("Cancel") { + // ação +} +``` + +### Botão Social (desabilitado) + +```swift +SocialButton("Continue with Google", icon: "globe", isDisabled: true) {} +SocialButton("Continue with Apple", icon: "apple.logo", isDisabled: true) {} +``` + +### Mensagem de Erro + +```swift +if let error { + Text(error) + .font(.caption) + .foregroundColor(.appDestructive) +} +``` + +## Chamadas de API + +Use `AuthService.shared` para autenticação ou crie services específicos: + +```swift +Task { + isLoading = true + defer { isLoading = false } + + do { + // chamada async + } catch { + self.error = error.localizedDescription + } +} +``` + +## Navegação + +- Use `NavigationView` na view raiz +- Use `NavigationLink` para navegação +- `RootView` gerencia auth state via `NotificationCenter` + +## NÃO FAZER + +- ❌ Criar ViewModels separados para telas simples +- ❌ Criar arquivos de documentação (.md) desnecessários +- ❌ Usar cores hardcoded (sempre use Theme/Colors.swift) +- ❌ Criar abstrações desnecessárias +- ❌ Usar URLs diferentes de localhost:3333 diff --git a/IOS_TASKS.md b/IOS_TASKS.md index b3f10c2e..8f830817 100644 --- a/IOS_TASKS.md +++ b/IOS_TASKS.md @@ -30,6 +30,7 @@ Este documento contém o mapeamento completo das funcionalidades do site web e a ## 1. Setup Inicial ### 1.1 Configuração do Projeto + - [ ] Criar projeto Xcode com SwiftUI - [ ] Configurar versões mínimas (iOS 16+) - [ ] Configurar SwiftLint para linting @@ -38,10 +39,12 @@ Este documento contém o mapeamento completo das funcionalidades do site web e a - [ ] Configurar Code Signing & Capabilities ### 1.2 Gerenciador de Dependências + - [ ] Escolher Swift Package Manager (SPM) como principal - [ ] Configurar estrutura de dependências ### 1.3 Dependências Principais + - [ ] **Alamofire** - Requisições HTTP - [ ] **Kingfisher** - Cache e carregamento de imagens - [ ] **KeychainAccess** - Armazenamento seguro de tokens @@ -50,23 +53,27 @@ Este documento contém o mapeamento completo das funcionalidades do site web e a - [ ] **SwiftUICharts** ou **Charts (Apple)** - Gráficos para estatísticas ### 1.4 Arquitetura + - [ ] **Padrão MVVM** (Model-View-ViewModel) - [ ] **Combine** para gerenciamento de estado reativo - [ ] **async/await** para operações assíncronas - [ ] **Protocol-oriented programming** para abstrações ### 1.5 Configuração de Ambiente + - [ ] Criar arquivo de configuração `Configuration.swift` - [ ] Configurar variáveis: `API_BASE_URL`, `TMDB_API_KEY` - [ ] Criar diferentes configurações para Debug/Release - [ ] Usar `xcconfig` files para variáveis de ambiente ### 1.6 Estrutura de Pastas + ``` Plotwist/ ├── App/ -│ ├── PlottwistApp.swift # Entry point -│ └── AppDelegate.swift # Lifecycle +│ ├── PlotwistApp.swift # Entry point ✅ +│ └── RootView.swift # Root navigation ✅ +│ └── AppDelegate.swift # Lifecycle ├── Core/ │ ├── Network/ # Networking layer │ │ ├── APIClient.swift @@ -79,20 +86,31 @@ Plotwist/ │ └── Extensions/ # Swift extensions ├── Models/ # Modelos de dados (Codable) ├── ViewModels/ # ViewModels (ObservableObject) +│ └── LoginViewModel.swift # ✅ ├── Views/ # SwiftUI Views -│ ├── Auth/ +│ ├── Auth/ # ✅ +│ │ ├── LoginView.swift # ✅ +│ │ └── SignUpView.swift # ✅ (placeholder) +│ ├── Home/ # ✅ +│ │ └── HomeView.swift # ✅ │ ├── Movies/ │ ├── Series/ │ ├── Profile/ │ ├── Lists/ │ └── Components/ # Componentes reutilizáveis ├── Services/ # Serviços de negócio -│ ├── AuthService.swift +│ └── AuthService.swift # ✅ │ ├── MovieService.swift │ ├── ReviewService.swift │ └── ... -├── Utils/ # Utilitários -│ ├── Constants.swift +├── Models/ # ✅ +│ └── User.swift # ✅ +├── Extensions/ # ✅ +│ ├── NotificationName+Extensions.swift # ✅ +│ └── View+Extensions.swift # ✅ +├── Utils/ # Utilitários ✅ +│ ├── Constants.swift # ✅ +│ ├── Localizable.swift # ✅ │ ├── Formatters.swift │ └── Validators.swift ├── Resources/ @@ -109,15 +127,18 @@ Plotwist/ ## 2. Autenticação ### 2.1 Views de Auth -- [ ] **LoginView** - - [ ] TextField para login (email ou username) - - [ ] SecureField para senha com botão de toggle - - [ ] Botão de login com loading state + +- [x] **LoginView** ✅ + + - [x] TextField para login (email ou username) + - [x] SecureField para senha com botão de toggle + - [x] Botão de login com loading state - [ ] NavigationLink para "Esqueci a senha" - - [ ] NavigationLink para cadastro - - [ ] Validação com Property Wrappers + - [x] NavigationLink para cadastro + - [x] Validação com Property Wrappers + +- [ ] **SignUpView** (placeholder criado) -- [ ] **SignUpView** - [ ] TextField para username com validação em tempo real - [ ] TextField para email com validação - [ ] SecureField para senha (mínimo 8 caracteres) @@ -126,6 +147,7 @@ Plotwist/ - [ ] Validação inline - [ ] **ForgotPasswordView** + - [ ] TextField para email - [ ] Botão de envio com confirmação - [ ] Feedback de sucesso/erro @@ -136,22 +158,28 @@ Plotwist/ - [ ] Validação de token via deep link ### 2.2 ViewModels -- [ ] **AuthViewModel** - - [ ] `@Published var isAuthenticated: Bool` - - [ ] `@Published var currentUser: User?` - - [ ] `@Published var isLoading: Bool` - - [ ] `@Published var errorMessage: String?` - - [ ] Métodos: `login()`, `signUp()`, `logout()`, `refreshToken()` + +- [x] **LoginViewModel** ✅ + - [x] `@Published var isLoading: Bool` + - [x] `@Published var errorMessage: String?` + - [x] Validação de campos + - [x] Método: `login()` + - [ ] Método: `signUp()` ### 2.3 Gerenciamento de Sessão -- [ ] Armazenar JWT no Keychain via KeychainAccess -- [ ] Criar `AuthenticationManager` singleton + +- [x] **AuthService** (singleton criado) ✅ + - [x] Armazenar JWT no UserDefaults (migrar para Keychain) + - [x] Métodos: `signIn()`, `signOut()`, `getToken()`, `isAuthenticated()` + - [x] Integração com API + - [x] NotificationCenter para mudanças de estado +- [ ] Armazenar JWT no Keychain via KeychainAccess (recomendado) - [ ] Implementar auto-refresh de token -- [ ] Implementar logout com limpeza de dados -- [ ] Interceptor Alamofire para adicionar token automaticamente +- [ ] Interceptor para adicionar token automaticamente - [ ] Proteção de rotas com `@EnvironmentObject` ### 2.4 Biometria (Opcional) + - [ ] Face ID / Touch ID para login rápido - [ ] LocalAuthentication framework - [ ] Salvar preferência no UserDefaults @@ -161,7 +189,9 @@ Plotwist/ ## 3. Navegação ### 3.1 Estrutura de Navegação + - [ ] **TabView Principal** + - [ ] Home - [ ] Filmes - [ ] Séries @@ -176,6 +206,7 @@ Plotwist/ - [ ] Stack de Perfil ### 3.2 Deep Linking + - [ ] Configurar URL Schemes no Info.plist - [ ] Configurar Universal Links (Associated Domains) - [ ] Implementar `.onOpenURL()` modifier @@ -186,6 +217,7 @@ Plotwist/ - [ ] `plotwist://user/:username` ### 3.3 Coordenação + - [ ] Criar `Router` ou `Coordinator` para navegação complexa - [ ] Implementar `NavigationPath` gerenciado @@ -194,23 +226,28 @@ Plotwist/ ## 4. Home/Dashboard ### 4.1 Componentes da Home + - [ ] **Header** + - [ ] Logo (SF Symbol ou custom) - [ ] Botão de busca (magnifyingglass.circle) - [ ] AsyncImage para avatar do usuário - [ ] **LastUserReviewSection** + - [ ] Card customizado com última review - [ ] NavigationLink para o item - [ ] Skeleton loading - [ ] **PopularReviewsSection** + - [ ] ScrollView horizontal com LazyHStack - [ ] Picker para filtros (hoje, semana, mês, todos) - [ ] Pull to refresh - [ ] Infinite scroll com `.onAppear` no último item - [ ] **NetworkActivityFeedSection** + - [ ] LazyVStack com atividades - [ ] Tipos de atividade: - [ ] Status change @@ -221,6 +258,7 @@ Plotwist/ - [ ] Likes - [ ] **SidebarPopularMovies** (iPad) + - [ ] Grid 3x1 de posters - [ ] NavigationLink para lista completa @@ -229,6 +267,7 @@ Plotwist/ - [ ] NavigationLink para lista completa ### 4.2 ViewModel + - [ ] **HomeViewModel** - [ ] Carregar dados em paralelo com `async let` - [ ] Gerenciar estados de loading/error @@ -239,21 +278,26 @@ Plotwist/ ## 5. Catálogo de Filmes ### 5.1 Views de Listagem + - [ ] **PopularMoviesView** + - [ ] LazyVGrid com posters - [ ] Pull to refresh - [ ] Infinite scroll - [ ] Skeleton placeholders - [ ] **NowPlayingMoviesView** + - [ ] Lista de filmes em cartaz - [ ] Badge "Em Cartaz" - [ ] **UpcomingMoviesView** + - [ ] Lista de lançamentos futuros - [ ] Data de lançamento em destaque - [ ] **TopRatedMoviesView** + - [ ] Lista ordenada por rating - [ ] Rating TMDB visível @@ -267,7 +311,9 @@ Plotwist/ - [ ] Picker de região ### 5.2 Componentes de Filme + - [ ] **MoviePosterCard** + - [ ] KFImage (Kingfisher) para poster - [ ] VStack com título, ano, rating - [ ] Gradient overlay @@ -281,6 +327,7 @@ Plotwist/ - [ ] Botões "Aplicar" e "Limpar" ### 5.3 ViewModels + - [ ] **MoviesListViewModel** - [ ] `@Published var movies: [Movie]` - [ ] `@Published var filters: MovieFilters` @@ -291,19 +338,24 @@ Plotwist/ ## 6. Catálogo de Séries ### 6.1 Views de Listagem + - [ ] **PopularSeriesView** + - [ ] LazyVGrid com posters - [ ] Infinite scroll - [ ] **AiringTodaySeriesView** + - [ ] Séries com episódios hoje - [ ] Badge "Hoje" - [ ] **OnTheAirSeriesView** + - [ ] Séries em exibição - [ ] Status de exibição - [ ] **TopRatedSeriesView** + - [ ] Lista ordenada por rating - [ ] **DiscoverSeriesView** @@ -311,14 +363,15 @@ Plotwist/ - [ ] Filtro adicional: status (em andamento, finalizada) ### 6.2 Categorias Especiais + - [ ] **AnimesView** - [ ] Filtro pré-aplicado para animação japonesa - [ ] Estilo visual customizado (opcional) - - [ ] **DoramasView** - [ ] Filtro pré-aplicado para séries coreanas ### 6.3 ViewModels + - [ ] **SeriesListViewModel** - [ ] Similar ao MoviesListViewModel - [ ] Filtros específicos de séries @@ -328,13 +381,16 @@ Plotwist/ ## 7. Detalhes de Mídia ### 7.1 MovieDetailView + - [ ] **Header com Backdrop** + - [ ] ZStack com KFImage - [ ] LinearGradient overlay - [ ] Botão de voltar customizado - [ ] Parallax scroll effect (opcional) - [ ] **Informações Principais** + - [ ] HStack com poster + info - [ ] Títulos (original e traduzido) - [ ] Year, runtime, genres @@ -342,12 +398,14 @@ Plotwist/ - [ ] Rating TMDB com SF Symbols (star.fill) - [ ] **Ações do Usuário** + - [ ] Menu de Status (Watchlist, Watching, Watched, Dropped) - [ ] Botão "Adicionar à Lista" - [ ] Botão "Escrever Review" - [ ] Animações de feedback - [ ] **Informações Adicionais** + - [ ] Diretor - [ ] Elenco - ScrollView horizontal - [ ] Orçamento e Receita formatados @@ -355,6 +413,7 @@ Plotwist/ - [ ] Países de produção - [ ] **TabView para Seções** + - [ ] Reviews do app - [ ] Elenco completo (List) - [ ] Galeria de imagens (LazyVGrid) @@ -367,8 +426,10 @@ Plotwist/ - [ ] ScrollView horizontal ### 7.2 SeriesDetailView + - [ ] Todos os itens de MovieDetailView + - [ ] **Lista de Temporadas** + - [ ] List ou LazyVStack - [ ] SeasonCard com número de episódios - [ ] ProgressView do assistidos @@ -379,6 +440,7 @@ Plotwist/ - [ ] Texto "X de Y episódios" ### 7.3 SeasonDetailView + - [ ] Header com informações da temporada - [ ] Lista de episódios (List) - [ ] EpisodeRow com: @@ -390,6 +452,7 @@ Plotwist/ - [ ] Picker de navegação entre temporadas ### 7.4 EpisodeDetailView + - [ ] Banner do episódio - [ ] Informações (número, título, duração) - [ ] Sinopse @@ -399,6 +462,7 @@ Plotwist/ - [ ] Botões de navegação (anterior/próximo) ### 7.5 PersonDetailView (Ator/Diretor) + - [ ] Header com foto - [ ] Nome - [ ] Biografia (Text expandível) @@ -410,6 +474,7 @@ Plotwist/ - [ ] Ordenado por data ### 7.6 ViewModels + - [ ] **MovieDetailViewModel** - [ ] **SeriesDetailViewModel** - [ ] **SeasonDetailViewModel** @@ -421,7 +486,9 @@ Plotwist/ ## 8. Sistema de Reviews ### 8.1 Componentes de Review + - [ ] **ReviewRowView** + - [ ] HStack com AsyncImage do avatar - [ ] VStack com username (NavigationLink) - [ ] RatingView (estrelas ou 0-10) @@ -435,6 +502,7 @@ Plotwist/ - [ ] Menu de ações (…) - [ ] **ReviewFormSheet** + - [ ] Sheet presentation - [ ] RatingPicker customizado (Slider ou Stepper) - [ ] TextEditor para review @@ -449,6 +517,7 @@ Plotwist/ - [ ] Like em respostas ### 8.2 Listagem de Reviews + - [ ] ReviewsListView genérico - [ ] Filtros: - [ ] Picker de idioma @@ -457,6 +526,7 @@ Plotwist/ - [ ] Infinite scroll ### 8.3 ViewModels + - [ ] **ReviewsViewModel** - [ ] **ReviewFormViewModel** @@ -465,13 +535,16 @@ Plotwist/ ## 9. Listas Personalizadas ### 9.1 Views de Listas + - [ ] **MyListsView** + - [ ] LazyVGrid de ListCard - [ ] Botão + (plus.circle.fill) para criar - [ ] Pull to refresh - [ ] Empty state customizado - [ ] **DiscoverListsView** + - [ ] LazyVStack de listas públicas - [ ] Toggle "Apenas com banner" - [ ] Infinite scroll @@ -489,6 +562,7 @@ Plotwist/ - [ ] Botão + para adicionar item ### 9.2 Formulário de Lista + - [ ] **ListFormView** - [ ] TextField para título - [ ] TextEditor para descrição @@ -498,6 +572,7 @@ Plotwist/ - [ ] Botões "Cancelar" e "Salvar" ### 9.3 Adicionar Item à Lista + - [ ] **AddItemToListView** - [ ] SearchBar - [ ] Resultados de busca (filmes/séries) @@ -505,6 +580,7 @@ Plotwist/ - [ ] Quick add via context menu na tela de detalhes ### 9.4 ViewModels + - [ ] **ListsViewModel** - [ ] **ListDetailViewModel** - [ ] **ListFormViewModel** @@ -514,7 +590,9 @@ Plotwist/ ## 10. Perfil do Usuário ### 10.1 ProfileView + - [ ] **Header** + - [ ] Banner (KFImage ou cor sólida) - [ ] Avatar (Circle overlay) - [ ] Username @@ -525,6 +603,7 @@ Plotwist/ - [ ] Editar (próprio perfil) - [ ] **Estatísticas Resumidas** + - [ ] HStack com VStacks: - [ ] Filmes assistidos - [ ] Séries assistidas @@ -532,6 +611,7 @@ Plotwist/ - [ ] Seguindo (NavigationLink) - [ ] **Links Sociais** + - [ ] HStack de ícones clicáveis - [ ] SF Symbols ou custom icons - [ ] Abrir com `.openURL()` @@ -544,6 +624,7 @@ Plotwist/ - [ ] Estatísticas ### 10.2 Edição de Perfil + - [ ] **EditProfileView** - [ ] PhotosPicker para avatar - [ ] ImageCropper circular @@ -554,6 +635,7 @@ Plotwist/ - [ ] Botão "Salvar" com loading ### 10.3 ViewModels + - [ ] **ProfileViewModel** - [ ] **EditProfileViewModel** @@ -562,7 +644,9 @@ Plotwist/ ## 11. Coleção do Usuário ### 11.1 CollectionView + - [ ] **Filtros** + - [ ] Picker de Status (Todos, Watchlist, Watching, Watched, Dropped) - [ ] Picker de Tipo (Filmes, Séries, Ambos) - [ ] Filtro de rating (Slider) @@ -582,6 +666,7 @@ Plotwist/ - [ ] Infinite scroll ### 11.2 ViewModels + - [ ] **CollectionViewModel** --- @@ -589,33 +674,41 @@ Plotwist/ ## 12. Estatísticas ### 12.1 StatsView + - [ ] **Total de Horas** + - [ ] Seção com ícone - [ ] Cálculo de runtime total - [ ] Formatação amigável (ex: "120h 30min") - [ ] **Contagem de Reviews** + - [ ] Número total de reviews - [ ] **Séries Mais Assistidas** + - [ ] Chart com BarMark (Apple Charts) - [ ] Top 5 séries - [ ] Ordenado por episódios - [ ] **Distribuição de Gêneros** + - [ ] PieChart ou BarChart - [ ] Cores distintas - [ ] Legenda - [ ] **Atores Mais Vistos** + - [ ] List ou LazyVStack - [ ] Foto + nome + contagem - [ ] **Países de Produção** + - [ ] Map (MapKit) com pins (opcional) - [ ] Ou lista simples com bandeiras (emoji ou SF Symbols) - [ ] **Melhores Avaliações** + - [ ] ScrollView horizontal de itens nota 10 - [ ] Média geral do usuário @@ -624,6 +717,7 @@ Plotwist/ - [ ] Porcentagens ### 12.2 ViewModels + - [ ] **StatsViewModel** - [ ] Cálculos complexos - [ ] Cache de dados pesados @@ -633,7 +727,9 @@ Plotwist/ ## 13. Sistema Social ### 13.1 Followers/Following + - [ ] **FollowersListView** + - [ ] List de UserRowView - [ ] Botão "Seguir de volta" - [ ] Pull to refresh @@ -645,6 +741,7 @@ Plotwist/ - [ ] Confirmação de unfollow ### 13.2 Busca de Usuários + - [ ] **UserSearchView** - [ ] SearchBar com debounce - [ ] Resultados em tempo real @@ -652,12 +749,14 @@ Plotwist/ - [ ] NavigationLink para perfil ### 13.3 Likes + - [ ] LikeButton com animação - [ ] Heart animation (scaleEffect + spring) - [ ] Haptic feedback - [ ] Sheet de "Curtido por" (lista de usuários) ### 13.4 ViewModels + - [ ] **FollowersViewModel** - [ ] **FollowingViewModel** - [ ] **UserSearchViewModel** @@ -667,7 +766,9 @@ Plotwist/ ## 14. Busca ### 14.1 SearchView + - [ ] **SearchBar** + - [ ] TextField com debounce (300ms) - [ ] Botão de limpar (xmark.circle) - [ ] SearchSuggestionsView com histórico @@ -680,11 +781,13 @@ Plotwist/ - [ ] NavigationLink "Ver todos" para cada seção ### 14.2 Command Search (iOS Spotlight-like) + - [ ] Implementar via `.searchable()` modifier - [ ] Sugestões inline - [ ] Navegação por teclado (iPad + teclado externo) ### 14.3 ViewModels + - [ ] **SearchViewModel** - [ ] Combine para debounce - [ ] Gerenciar múltiplas queries @@ -694,12 +797,15 @@ Plotwist/ ## 15. Configurações ### 15.1 SettingsView + - [ ] **Preferências de Streaming** + - [ ] NavigationLink para StreamingProvidersView - [ ] MultiSelector de provedores - [ ] Picker de região - [ ] **Preferências de Exibição** + - [ ] Picker de tema (Light, Dark, System) - [ ] Picker de idioma do app - [ ] Picker de idioma TMDB @@ -712,6 +818,7 @@ Plotwist/ - [ ] Botão "Logout" ### 15.2 ViewModels + - [ ] **SettingsViewModel** --- @@ -719,6 +826,7 @@ Plotwist/ ## 16. Internacionalização ### 16.1 Idiomas Suportados + - [ ] Português (pt-BR) - [ ] Inglês (en-US) - [ ] Espanhol (es-ES) @@ -728,6 +836,7 @@ Plotwist/ - [ ] Japonês (ja-JP) ### 16.2 Implementação + - [ ] Criar `Localizable.strings` para cada idioma - [ ] Converter JSON dos dicionários web para .strings - [ ] Usar `NSLocalizedString()` ou String interpolation @@ -736,6 +845,7 @@ Plotwist/ - [ ] Criar `LanguageManager` para troca em runtime ### 16.3 Formatação + - [ ] `NumberFormatter` para moeda - [ ] `DateFormatter` para datas - [ ] `RelativeDateTimeFormatter` para datas relativas @@ -746,16 +856,20 @@ Plotwist/ ## 17. Funcionalidades Premium (PRO) ### 17.1 Features PRO + - [ ] Badge PRO no perfil - [ ] Importação de dados externos - [ ] [Outras features a definir] ### 17.2 Integração com In-App Purchase + - [ ] **Configurar no App Store Connect** + - [ ] Criar produtos (assinatura mensal/anual) - [ ] Configurar preços - [ ] **StoreKit 2** + - [ ] Implementar `StoreKitManager` - [ ] Exibir produtos disponíveis - [ ] Processar compras @@ -769,6 +883,7 @@ Plotwist/ - [ ] Loading states ### 17.3 ViewModels + - [ ] **SubscriptionViewModel** --- @@ -776,7 +891,9 @@ Plotwist/ ## 18. Importação de Dados ### 18.1 Provedores Suportados + - [ ] **MyAnimeList** + - [ ] UIDocumentPickerViewController para XML - [ ] Parse XML com XMLParser - [ ] Mapeamento para modelo interno @@ -787,6 +904,7 @@ Plotwist/ - [ ] Mapeamento para modelo interno ### 18.2 ImportView + - [ ] Picker de provedor (Segmented Control) - [ ] Botão "Selecionar Arquivo" - [ ] ProgressView durante importação @@ -794,6 +912,7 @@ Plotwist/ - [ ] List de itens importados/falhados ### 18.3 ViewModels + - [ ] **ImportViewModel** - [ ] Processar arquivo em background - [ ] Progress tracking @@ -803,6 +922,7 @@ Plotwist/ ## 🎨 Componentes UI Reutilizáveis (SwiftUI) ### Componentes Base + - [ ] **CustomButton** (variantes: primary, secondary, outline, destructive) - [ ] **CustomTextField** - [ ] **CustomSecureField** @@ -820,6 +940,7 @@ Plotwist/ - [ ] **ErrorView** ### Componentes de Mídia + - [ ] **PosterCard** - [ ] **PosterGrid** (LazyVGrid wrapper) - [ ] **BannerView** @@ -829,6 +950,7 @@ Plotwist/ - [ ] **GenreChip** ### Componentes de Interação + - [ ] **LikeButton** (com animação de coração) - [ ] **FollowButton** - [ ] **StatusMenu** (Menu com opções) @@ -836,6 +958,7 @@ Plotwist/ - [ ] **ShareButton** (usar UIActivityViewController) ### Layouts Customizados + - [ ] **FlowLayout** (para chips de gêneros) - [ ] **WaterfallLayout** (para grids irregulares) @@ -844,18 +967,22 @@ Plotwist/ ## 📱 Considerações iOS-Specific ### UX Nativa + - [ ] **Gestos Nativos** + - [ ] Swipe back para navegação - [ ] Pull to refresh em Lists - [ ] Context menus (long press) - [ ] Drag & drop para reordenar - [ ] **Haptic Feedback** + - [ ] `UIImpactFeedbackGenerator` para ações - [ ] `UINotificationFeedbackGenerator` para sucesso/erro - [ ] `UISelectionFeedbackGenerator` para seleções - [ ] **Launch Screen** + - [ ] Storyboard ou Asset - [ ] Logo centralizado @@ -864,15 +991,19 @@ Plotwist/ - [ ] Design consistente ### Performance + - [ ] **Lazy Loading** + - [ ] LazyVStack/LazyHStack/LazyVGrid - [ ] `.task()` modifier para carregar dados - [ ] **Image Caching** + - [ ] Kingfisher com configurações otimizadas - [ ] Downsampling automático - [ ] **List Optimization** + - [ ] Identificadores estáveis (.id()) - [ ] Evitar renders desnecessários @@ -881,7 +1012,9 @@ Plotwist/ - [ ] Deallocação adequada ### Offline + - [ ] **Cache Strategy** + - [ ] URLCache configurado - [ ] Core Data ou Realm para persistência offline - [ ] Queue de ações offline para sincronizar @@ -892,11 +1025,14 @@ Plotwist/ - [ ] Retry automático quando conectar ### Push Notifications (Futuro) + - [ ] **APNs Setup** + - [ ] Certificados no Apple Developer - [ ] Backend: enviar device token - [ ] **Notificações** + - [ ] Novo seguidor - [ ] Like na review - [ ] Resposta na review @@ -907,6 +1043,7 @@ Plotwist/ - [ ] Lembrete de filme estreando ### Widgets (iOS 14+) + - [ ] **WidgetKit** - [ ] Widget de estatísticas - [ ] Widget de próximos lançamentos @@ -914,10 +1051,12 @@ Plotwist/ - [ ] Timelines para atualização ### App Clips (Opcional) + - [ ] App Clip para visualização rápida de filme/série - [ ] QR Codes para compartilhamento ### Siri Shortcuts (Opcional) + - [ ] Adicionar à watchlist via Siri - [ ] Marcar como assistido via Siri - [ ] Buscar filme/série via Siri @@ -926,31 +1065,32 @@ Plotwist/ ## 📊 Estimativa de Complexidade -| Módulo | Complexidade | Prioridade | -|--------|--------------|------------| -| Setup Inicial | Baixa | Alta | -| Autenticação | Média | Alta | -| Navegação | Média | Alta | -| Catálogo de Filmes | Média | Alta | -| Catálogo de Séries | Média | Alta | -| Detalhes de Mídia | Alta | Alta | -| Sistema de Reviews | Alta | Alta | -| Listas | Alta | Média | -| Perfil | Média | Alta | -| Coleção | Média | Média | -| Estatísticas | Alta | Baixa | -| Sistema Social | Média | Média | -| Busca | Baixa | Alta | -| Configurações | Baixa | Baixa | -| i18n | Média | Média | -| Premium/IAP | Alta | Baixa | -| Importação | Alta | Baixa | +| Módulo | Complexidade | Prioridade | +| ------------------ | ------------ | ---------- | +| Setup Inicial | Baixa | Alta | +| Autenticação | Média | Alta | +| Navegação | Média | Alta | +| Catálogo de Filmes | Média | Alta | +| Catálogo de Séries | Média | Alta | +| Detalhes de Mídia | Alta | Alta | +| Sistema de Reviews | Alta | Alta | +| Listas | Alta | Média | +| Perfil | Média | Alta | +| Coleção | Média | Média | +| Estatísticas | Alta | Baixa | +| Sistema Social | Média | Média | +| Busca | Baixa | Alta | +| Configurações | Baixa | Baixa | +| i18n | Média | Média | +| Premium/IAP | Alta | Baixa | +| Importação | Alta | Baixa | --- ## 🚀 Sugestão de Sprints ### Sprint 1 - MVP Base (2-3 semanas) + - Setup inicial do projeto Xcode - Arquitetura base (MVVM + Network Layer) - Autenticação (login/cadastro) @@ -959,6 +1099,7 @@ Plotwist/ - Busca simples ### Sprint 2 - Core Features (2-3 semanas) + - Catálogo de séries - Sistema de status (watchlist, watched, etc) - Perfil básico @@ -966,6 +1107,7 @@ Plotwist/ - Deep linking ### Sprint 3 - Social Features (2 semanas) + - Sistema de reviews completo - Likes com animações - Follow/Unfollow @@ -973,6 +1115,7 @@ Plotwist/ - Review replies ### Sprint 4 - Listas e Polish (2 semanas) + - Listas personalizadas (criar, editar, adicionar itens) - Detalhes de temporadas/episódios - Internacionalização @@ -980,6 +1123,7 @@ Plotwist/ - Dark mode polish ### Sprint 5 - Extras (1-2 semanas) + - Estatísticas com gráficos - Configurações avançadas - In-App Purchases (PRO) @@ -987,6 +1131,7 @@ Plotwist/ - Widgets básicos ### Sprint 6 - QA & Publicação (1 semana) + - Testes em dispositivos reais - Correção de bugs - App Store assets (screenshots, descrição) @@ -997,20 +1142,24 @@ Plotwist/ ## 📚 Referências ### Backend + - **API Backend**: `apps/api/` - Mesma API usada pelo web - **Schemas Gerados**: `apps/web/src/api/endpoints.schemas.ts` (referência para modelos Codable) ### Web (Referência UI/UX) + - **Dicionários i18n**: `apps/web/public/dictionaries/` → converter para .strings - **Componentes Web**: `apps/web/src/components/` (referência de design) - **Serviços TMDB**: `apps/web/src/services/tmdb.ts` (referência de lógica) ### iOS Resources + - **Human Interface Guidelines**: https://developer.apple.com/design/human-interface-guidelines/ - **Swift Style Guide**: https://google.github.io/swift/ - **SwiftUI by Example**: https://www.hackingwithswift.com/quick-start/swiftui ### Bibliotecas Recomendadas + - **Alamofire**: https://github.com/Alamofire/Alamofire - **Kingfisher**: https://github.com/onevcat/Kingfisher - **KeychainAccess**: https://github.com/kishikawakatsumi/KeychainAccess @@ -1021,25 +1170,28 @@ Plotwist/ ## 🛠 Ferramentas de Desenvolvimento ### Xcode Tools + - [ ] Configurar Instruments para profiling - [ ] Usar Memory Graph Debugger - [ ] View Hierarchy Debugger para debug de UI ### Testing + - [ ] XCTest para testes unitários - [ ] XCUITest para testes de UI - [ ] Quick + Nimble (opcional) - [ ] Code coverage mínima de 70% ### CI/CD + - [ ] Xcode Cloud ou Fastlane - [ ] Automação de builds - [ ] TestFlight para beta testing --- -*Documento gerado em: Janeiro 2026* -*Versão do projeto web: 0.1.0* -*Plataforma: iOS 16.0+* -*Linguagem: Swift 5.9+* -*Framework: SwiftUI* +_Documento gerado em: Janeiro 2026_ +_Versão do projeto web: 0.1.0_ +_Plataforma: iOS 16.0+_ +_Linguagem: Swift 5.9+_ +_Framework: SwiftUI_ diff --git a/apps/ios/Plotwist/Plotwist/App/RootView.swift b/apps/ios/Plotwist/Plotwist/App/RootView.swift new file mode 100644 index 00000000..e8223b11 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/App/RootView.swift @@ -0,0 +1,29 @@ +// +// RootView.swift +// Plotwist +// + +import SwiftUI + +struct RootView: View { + @State private var isAuthenticated = AuthService.shared.isAuthenticated + @ObservedObject private var themeManager = ThemeManager.shared + + var body: some View { + Group { + if isAuthenticated { + HomeView() + } else { + LoginView() + } + } + .preferredColorScheme(themeManager.current.colorScheme) + .onReceive(NotificationCenter.default.publisher(for: .authChanged)) { _ in + isAuthenticated = AuthService.shared.isAuthenticated + } + } +} + +#Preview { + RootView() +} diff --git a/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift b/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift new file mode 100644 index 00000000..e29ad60b --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift @@ -0,0 +1,100 @@ +// +// PrimaryButton.swift +// Plotwist +// + +import SwiftUI + +enum ButtonVariant { + case filled + case outline +} + +struct PrimaryButton: View { + let title: String + let variant: ButtonVariant + let isLoading: Bool + let isDisabled: Bool + let action: () -> Void + + init( + _ title: String, variant: ButtonVariant = .outline, isLoading: Bool = false, + isDisabled: Bool = false, action: @escaping () -> Void + ) { + self.title = title + self.variant = variant + self.isLoading = isLoading + self.isDisabled = isDisabled + self.action = action + } + + var body: some View { + Button(action: action) { + Group { + if isLoading { + ProgressView().tint(variant == .filled ? .appBackgroundAdaptive : .appForegroundAdaptive) + } else { + Text(title) + .fontWeight(.semibold) + } + } + .frame(maxWidth: .infinity) + .frame(height: 48) + .background(variant == .filled ? Color.appForegroundAdaptive : Color.clear) + .foregroundColor(variant == .filled ? .appBackgroundAdaptive : .appForegroundAdaptive) + .cornerRadius(12) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(variant == .filled ? Color.clear : Color.appBorderAdaptive, lineWidth: 1) + ) + } + .disabled(isLoading || isDisabled) + .opacity(isDisabled ? 0.5 : 1) + } +} + +struct SocialButton: View { + let icon: String + let title: String + let isDisabled: Bool + let action: () -> Void + + init(_ title: String, icon: String, isDisabled: Bool = false, action: @escaping () -> Void) { + self.title = title + self.icon = icon + self.isDisabled = isDisabled + self.action = action + } + + var body: some View { + Button(action: action) { + HStack(spacing: 8) { + Image(systemName: icon) + Text(title) + .fontWeight(.medium) + } + .frame(maxWidth: .infinity) + .frame(height: 48) + .background(Color.clear) + .foregroundColor(.appForegroundAdaptive) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + .disabled(isDisabled) + .opacity(isDisabled ? 0.5 : 1) + } +} + +#Preview { + VStack(spacing: 16) { + PrimaryButton("Access", variant: .filled) {} + PrimaryButton("Outline") {} + PrimaryButton("Loading", variant: .filled, isLoading: true) {} + PrimaryButton("Disabled", isDisabled: true) {} + SocialButton("Continue with Google", icon: "globe") {} + SocialButton("Continue with Apple", icon: "apple.logo", isDisabled: true) {} + } + .padding() +} diff --git a/apps/ios/Plotwist/Plotwist/ContentView.swift b/apps/ios/Plotwist/Plotwist/ContentView.swift deleted file mode 100644 index 7c71c72f..00000000 --- a/apps/ios/Plotwist/Plotwist/ContentView.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// ContentView.swift -// Plotwist -// -// Created by Luiz Henrique Delfino on 10/01/26. -// - -import SwiftUI - -struct ContentView: View { - var body: some View { - VStack { - Image(systemName: "globe") - .imageScale(.large) - .foregroundStyle(.tint) - Text("Hello, world!") - } - .padding() - } -} - -#Preview { - ContentView() -} diff --git a/apps/ios/Plotwist/Plotwist/Localization/Language.swift b/apps/ios/Plotwist/Plotwist/Localization/Language.swift new file mode 100644 index 00000000..06bceaa4 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Localization/Language.swift @@ -0,0 +1,48 @@ +// +// Language.swift +// Plotwist +// + +import Foundation + +enum Language: String, CaseIterable { + case enUS = "en-US" + case ptBR = "pt-BR" + case esES = "es-ES" + case frFR = "fr-FR" + case deDE = "de-DE" + case itIT = "it-IT" + case jaJP = "ja-JP" + + var displayName: String { + switch self { + case .enUS: return "English" + case .ptBR: return "Português" + case .esES: return "Español" + case .frFR: return "Français" + case .deDE: return "Deutsch" + case .itIT: return "Italiano" + case .jaJP: return "日本語" + } + } + + static var current: Language { + get { + if let saved = UserDefaults.standard.string(forKey: "language"), + let lang = Language(rawValue: saved) { + return lang + } + + let preferredLanguage = Locale.preferredLanguages.first ?? "en-US" + return Language(rawValue: preferredLanguage) ?? .enUS + } + set { + UserDefaults.standard.set(newValue.rawValue, forKey: "language") + NotificationCenter.default.post(name: .languageChanged, object: nil) + } + } +} + +extension Notification.Name { + static let languageChanged = Notification.Name("languageChanged") +} diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift new file mode 100644 index 00000000..2334930e --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -0,0 +1,150 @@ +// +// Strings.swift +// Plotwist +// + +import Foundation + +enum L10n { + static var current: Strings { strings[Language.current] ?? strings[.enUS]! } + + private static let strings: [Language: Strings] = [ + .enUS: Strings( + accessPlotwist: "Welcome back 👋", + loginLabel: "Email or username", + loginPlaceholder: "Email or username", + passwordLabel: "Password", + passwordPlaceholder: "*********", + accessButton: "Access", + doNotHaveAccount: "Don't have an account?", + createNow: "Create now", + loginRequired: "Please enter your email or username.", + passwordRequired: "Please enter your password.", + passwordLength: "Your password must be at least 8 characters long.", + invalidCredentials: "Invalid login credentials.", + continueWithGoogle: "Continue with Google", + continueWithApple: "Continue with Apple", + or: "or" + ), + .ptBR: Strings( + accessPlotwist: "Bem-vindo de volta 👋", + loginLabel: "E-mail ou nome de usuário", + loginPlaceholder: "E-mail ou nome de usuário", + passwordLabel: "Senha", + passwordPlaceholder: "*********", + accessButton: "Acessar", + doNotHaveAccount: "Não tem uma conta?", + createNow: "Crie agora", + loginRequired: "Por favor, insira seu e-mail ou nome de usuário.", + passwordRequired: "Por favor, insira sua senha.", + passwordLength: "Sua senha deve ter pelo menos 8 caracteres.", + invalidCredentials: "Credenciais de login inválidas.", + continueWithGoogle: "Continuar com Google", + continueWithApple: "Continuar com Apple", + or: "ou" + ), + .esES: Strings( + accessPlotwist: "Bienvenido de nuevo 👋", + loginLabel: "Correo electrónico o nombre de usuario", + loginPlaceholder: "Correo electrónico o nombre de usuario", + passwordLabel: "Contraseña", + passwordPlaceholder: "*********", + accessButton: "Acceder", + doNotHaveAccount: "¿No tienes una cuenta?", + createNow: "Crea una ahora", + loginRequired: "Por favor, introduce tu correo electrónico o nombre de usuario.", + passwordRequired: "Por favor, introduce tu contraseña.", + passwordLength: "Tu contraseña debe tener al menos 8 caracteres.", + invalidCredentials: "Credenciales de inicio de sesión no válidas.", + continueWithGoogle: "Continuar con Google", + continueWithApple: "Continuar con Apple", + or: "o" + ), + .frFR: Strings( + accessPlotwist: "Bon retour 👋", + loginLabel: "E-mail ou nom d'utilisateur", + loginPlaceholder: "E-mail ou nom d'utilisateur", + passwordLabel: "Mot de passe", + passwordPlaceholder: "*********", + accessButton: "Accéder", + doNotHaveAccount: "Vous n'avez pas de compte?", + createNow: "Créez-en un maintenant", + loginRequired: "Veuillez entrer votre e-mail ou nom d'utilisateur.", + passwordRequired: "Veuillez entrer votre mot de passe.", + passwordLength: "Votre mot de passe doit contenir au moins 8 caractères.", + invalidCredentials: "Identifiants de connexion invalides.", + continueWithGoogle: "Continuer avec Google", + continueWithApple: "Continuer avec Apple", + or: "ou" + ), + .deDE: Strings( + accessPlotwist: "Willkommen zurück 👋", + loginLabel: "E-Mail oder Benutzername", + loginPlaceholder: "E-Mail oder Benutzername", + passwordLabel: "Passwort", + passwordPlaceholder: "*********", + accessButton: "Zugreifen", + doNotHaveAccount: "Haben Sie kein Konto?", + createNow: "Jetzt erstellen", + loginRequired: "Bitte geben Sie Ihre E-Mail-Adresse oder Ihren Benutzernamen ein.", + passwordRequired: "Bitte geben Sie Ihr Passwort ein.", + passwordLength: "Ihr Passwort muss mindestens 8 Zeichen lang sein.", + invalidCredentials: "Ungültige Anmeldeinformationen.", + continueWithGoogle: "Weiter mit Google", + continueWithApple: "Weiter mit Apple", + or: "oder" + ), + .itIT: Strings( + accessPlotwist: "Bentornato 👋", + loginLabel: "E-mail o nome utente", + loginPlaceholder: "E-mail o nome utente", + passwordLabel: "Password", + passwordPlaceholder: "*********", + accessButton: "Accedi", + doNotHaveAccount: "Non hai un account?", + createNow: "Crea ora", + loginRequired: "Inserisci il tuo indirizzo e-mail o nome utente.", + passwordRequired: "Inserisci la tua password.", + passwordLength: "La tua password deve contenere almeno 8 caratteri.", + invalidCredentials: "Credenziali di accesso non valide.", + continueWithGoogle: "Continua con Google", + continueWithApple: "Continua con Apple", + or: "o" + ), + .jaJP: Strings( + accessPlotwist: "おかえりなさい 👋", + loginLabel: "メールアドレスまたはユーザー名", + loginPlaceholder: "メールアドレスまたはユーザー名", + passwordLabel: "パスワード", + passwordPlaceholder: "*********", + accessButton: "アクセス", + doNotHaveAccount: "アカウントをお持ちではありませんか?", + createNow: "今すぐ作成", + loginRequired: "メールアドレスまたはユーザー名を入力してください。", + passwordRequired: "パスワードを入力してください。", + passwordLength: "パスワードは8文字以上でなければなりません。", + invalidCredentials: "ログイン認証情報が無効です。", + continueWithGoogle: "Googleで続ける", + continueWithApple: "Appleで続ける", + or: "または" + ) + ] +} + +struct Strings { + let accessPlotwist: String + let loginLabel: String + let loginPlaceholder: String + let passwordLabel: String + let passwordPlaceholder: String + let accessButton: String + let doNotHaveAccount: String + let createNow: String + let loginRequired: String + let passwordRequired: String + let passwordLength: String + let invalidCredentials: String + let continueWithGoogle: String + let continueWithApple: String + let or: String +} diff --git a/apps/ios/Plotwist/Plotwist/PlotwistApp.swift b/apps/ios/Plotwist/Plotwist/PlotwistApp.swift index fb001069..2855ad0b 100644 --- a/apps/ios/Plotwist/Plotwist/PlotwistApp.swift +++ b/apps/ios/Plotwist/Plotwist/PlotwistApp.swift @@ -11,7 +11,7 @@ import SwiftUI struct PlotwistApp: App { var body: some Scene { WindowGroup { - ContentView() + RootView() } } } diff --git a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift new file mode 100644 index 00000000..9b58fac6 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift @@ -0,0 +1,66 @@ +// +// AuthService.swift +// Plotwist +// + +import Foundation + +class AuthService { + static let shared = AuthService() + private init() {} + + func signIn(login: String, password: String) async throws -> String { + guard let url = URL(string: "\(API.baseURL)/auth/login") else { + throw AuthError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + request.httpBody = try JSONEncoder().encode(["login": login, "password": password]) + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw AuthError.invalidResponse + } + + guard http.statusCode == 200 else { + throw AuthError.invalidCredentials + } + + let result = try JSONDecoder().decode(LoginResponse.self, from: data) + UserDefaults.standard.set(result.token, forKey: "token") + NotificationCenter.default.post(name: .authChanged, object: nil) + return result.token + } + + func signOut() { + UserDefaults.standard.removeObject(forKey: "token") + NotificationCenter.default.post(name: .authChanged, object: nil) + } + + var isAuthenticated: Bool { + UserDefaults.standard.string(forKey: "token") != nil + } +} + +struct LoginResponse: Codable { + let token: String +} + +enum AuthError: LocalizedError { + case invalidURL, invalidResponse, invalidCredentials + + var errorDescription: String? { + switch self { + case .invalidURL: return "Invalid URL" + case .invalidResponse: return "Invalid response" + case .invalidCredentials: return "Invalid credentials" + } + } +} + +extension Notification.Name { + static let authChanged = Notification.Name("authChanged") +} diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift new file mode 100644 index 00000000..a966ddc4 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -0,0 +1,40 @@ +// +// Colors.swift +// Plotwist +// + +import SwiftUI + +extension Color { + // MARK: - Adaptive Colors (Light/Dark mode) + + static var appBackgroundAdaptive: Color { + Color(UIColor { $0.userInterfaceStyle == .dark + ? UIColor(hue: 240/360, saturation: 0.10, brightness: 0.039, alpha: 1) + : UIColor(hue: 0, saturation: 0, brightness: 1, alpha: 1) + }) + } + + static var appForegroundAdaptive: Color { + Color(UIColor { $0.userInterfaceStyle == .dark + ? UIColor(hue: 0, saturation: 0, brightness: 0.98, alpha: 1) + : UIColor(hue: 240/360, saturation: 0.10, brightness: 0.039, alpha: 1) + }) + } + + static var appBorderAdaptive: Color { + Color(UIColor { $0.userInterfaceStyle == .dark + ? UIColor(hue: 240/360, saturation: 0.037, brightness: 0.159, alpha: 1) + : UIColor(hue: 240/360, saturation: 0.059, brightness: 0.90, alpha: 1) + }) + } + + static var appMutedForegroundAdaptive: Color { + Color(UIColor { $0.userInterfaceStyle == .dark + ? UIColor(hue: 240/360, saturation: 0.05, brightness: 0.649, alpha: 1) + : UIColor(hue: 240/360, saturation: 0.038, brightness: 0.461, alpha: 1) + }) + } + + static let appDestructive = Color(hue: 0, saturation: 0.842, brightness: 0.602) +} diff --git a/apps/ios/Plotwist/Plotwist/Theme/ThemeManager.swift b/apps/ios/Plotwist/Plotwist/Theme/ThemeManager.swift new file mode 100644 index 00000000..c90be8f2 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Theme/ThemeManager.swift @@ -0,0 +1,55 @@ +// +// ThemeManager.swift +// Plotwist +// + +import SwiftUI + +enum AppTheme: String, CaseIterable { + case system + case light + case dark + + var colorScheme: ColorScheme? { + switch self { + case .system: return nil + case .light: return .light + case .dark: return .dark + } + } + + var icon: String { + switch self { + case .system: return "circle.lefthalf.filled" + case .light: return "sun.max.fill" + case .dark: return "moon.fill" + } + } +} + +class ThemeManager: ObservableObject { + static let shared = ThemeManager() + + @Published var current: AppTheme { + didSet { + UserDefaults.standard.set(current.rawValue, forKey: "appTheme") + } + } + + private init() { + if let saved = UserDefaults.standard.string(forKey: "appTheme"), + let theme = AppTheme(rawValue: saved) { + self.current = theme + } else { + self.current = .system + } + } + + func toggle() { + switch current { + case .system: current = .light + case .light: current = .dark + case .dark: current = .system + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Utils/Constants.swift b/apps/ios/Plotwist/Plotwist/Utils/Constants.swift new file mode 100644 index 00000000..450ec9d6 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Utils/Constants.swift @@ -0,0 +1,10 @@ +// +// Constants.swift +// Plotwist +// + +import Foundation + +enum API { + static let baseURL = "http://localhost:3333" +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift new file mode 100644 index 00000000..7581c9bc --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift @@ -0,0 +1,167 @@ +// +// LoginView.swift +// Plotwist +// + +import SwiftUI + +struct LoginView: View { + @State private var login = "" + @State private var password = "" + @State private var showPassword = false + @State private var isLoading = false + @State private var error: String? + @State private var strings = L10n.current + @ObservedObject private var themeManager = ThemeManager.shared + + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 24) { + // Theme toggle button (temporary) + HStack { + Spacer() + Button { + themeManager.toggle() + } label: { + Image(systemName: themeManager.current.icon) + .font(.system(size: 20)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 44, height: 44) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 8) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + } + + Spacer() + + VStack(spacing: 16) { + // Login Field + VStack(alignment: .leading, spacing: 6) { + Text(strings.loginLabel) + .font(.subheadline.weight(.medium)) + TextField(strings.loginPlaceholder, text: $login) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + + // Password Field + VStack(alignment: .leading, spacing: 6) { + Text(strings.passwordLabel) + .font(.subheadline.weight(.medium)) + HStack(spacing: 8) { + Group { + if showPassword { + TextField(strings.passwordPlaceholder, text: $password) + } else { + SecureField(strings.passwordPlaceholder, text: $password) + } + } + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + + Button { + showPassword.toggle() + } label: { + Image(systemName: showPassword ? "eye" : "eye.slash") + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: 48, height: 48) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + } + } + + if let error { + Text(error) + .font(.caption) + .foregroundColor(.appDestructive) + } + + PrimaryButton(strings.accessButton, variant: .filled, isLoading: isLoading) { + Task { await performLogin() } + } + + // Divider + HStack { + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + Text(strings.or) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + } + + // Social Login Buttons (disabled) + SocialButton(strings.continueWithGoogle, icon: "globe", isDisabled: true) {} + SocialButton(strings.continueWithApple, icon: "apple.logo", isDisabled: true) {} + } + + Spacer() + + NavigationLink(destination: Text("Sign Up - Coming Soon")) { + Text("\(strings.doNotHaveAccount) \(strings.createNow)") + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + .padding(.bottom, 16) + } + .padding(.horizontal, 24) + .frame(maxWidth: 400) + } + .navigationBarHidden(true) + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func performLogin() async { + error = nil + + guard !login.isEmpty else { + error = strings.loginRequired + return + } + guard password.count >= 8 else { + error = strings.passwordLength + return + } + + isLoading = true + defer { isLoading = false } + + do { + _ = try await AuthService.shared.signIn(login: login, password: password) + } catch { + self.error = strings.invalidCredentials + } + } +} + +#Preview { + LoginView() +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift new file mode 100644 index 00000000..e9508bb6 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -0,0 +1,27 @@ +// +// HomeView.swift +// Plotwist +// + +import SwiftUI + +struct HomeView: View { + var body: some View { + NavigationView { + VStack(spacing: 16) { + Text("Welcome to Plotwist!") + .font(.title.bold()) + + Button("Sign Out") { + AuthService.shared.signOut() + } + .foregroundColor(.appDestructive) + } + .navigationTitle("Home") + } + } +} + +#Preview { + HomeView() +} diff --git a/apps/ios/README.md b/apps/ios/README.md deleted file mode 100644 index 213303ad..00000000 --- a/apps/ios/README.md +++ /dev/null @@ -1,182 +0,0 @@ -# 📱 Plotwist iOS - -Native iOS application for Plotwist - Track your favorite movies and series. - -## 🎯 Overview - -This is a native iOS application built with **Swift** and **SwiftUI**, following the **MVVM** architecture pattern. - -## 📋 Requirements - -- iOS 16.0+ -- Xcode 15.0+ -- Swift 5.9+ - -## 🏗️ Architecture - -### MVVM Pattern - -The app follows the Model-View-ViewModel architecture: - -- **Models**: Data structures (Codable) -- **Views**: SwiftUI views -- **ViewModels**: Business logic (ObservableObject) -- **Services**: API and data services - -### Project Structure - -``` -ios/ -├── Plotwist/ # Main app target -│ ├── App/ # App entry point & main views -│ │ ├── PlottwistApp.swift -│ │ ├── ContentView.swift -│ │ └── MainTabView.swift -│ ├── Core/ # Core functionality -│ │ ├── Network/ # API client, endpoints, errors -│ │ └── Storage/ # Keychain, UserDefaults -│ ├── Models/ # Data models (Codable) -│ ├── ViewModels/ # ViewModels (ObservableObject) -│ ├── Views/ # SwiftUI views -│ │ ├── Auth/ # Login, SignUp, ForgotPassword -│ │ ├── Movies/ # Movie screens -│ │ ├── Series/ # Series screens -│ │ ├── Profile/ # Profile screens -│ │ ├── Lists/ # Lists screens -│ │ └── Components/ # Reusable components -│ ├── Services/ # Business services -│ ├── Utils/ # Utilities & Constants -│ ├── Configuration/ # App configuration -│ ├── Resources/ # Assets.xcassets -│ └── Info.plist # App configuration -├── Plotwist.xcodeproj/ # Xcode project (criar via Xcode) -├── SETUP.md # Setup guide -├── README.md # This file -└── .gitignore # Git ignore -``` - -## 📦 Dependencies - -Using **Swift Package Manager (SPM)**. - -Currently using native iOS frameworks only: - -- URLSession for networking -- Native Keychain for secure storage -- SwiftUI for UI - -**Planned dependencies** (to be added as needed): - -- [Kingfisher](https://github.com/onevcat/Kingfisher) - Image loading & caching -- [SwiftUI-Introspect](https://github.com/siteline/SwiftUI-Introspect) - UIKit access (optional) - -## 🚀 Getting Started - -### Setup - -**IMPORTANTE**: O projeto ainda não tem o arquivo `.xcodeproj`. Você precisa criá-lo primeiro! - -Siga o guia completo em [`SETUP.md`](./SETUP.md) para criar o projeto Xcode. - -### Resumo rápido: - -1. Abra o Xcode -2. Crie um novo projeto iOS App com SwiftUI -3. Configure conforme instruções no `SETUP.md` -4. Adicione os arquivos existentes ao projeto -5. Configure sua TMDB API Key em `Configuration.swift` -6. Build e run! - -### Configuração da API - -Edite `Plotwist/Configuration/Configuration.swift` e adicione sua TMDB API Key: - -```swift -static var tmdbAPIKey: String { - return "SUA_API_KEY_AQUI" -} -``` - -## 🔐 Authentication - -The app uses JWT tokens stored securely in the iOS Keychain via KeychainAccess library. - -## 🌐 API Integration - -The app communicates with the same backend API used by the web application. - -Base URL: - -- Debug: `http://localhost:3333` -- Release: `https://api.plotwist.app` - -## 🎨 Design System - -Following iOS Human Interface Guidelines with: - -- Native iOS components -- Dark mode support -- Dynamic Type support -- Accessibility features - -## 📱 Features - -### Implemented - -- ✅ Basic project structure (22 Swift files) -- ✅ Authentication (Login/Sign Up/Forgot Password) -- ✅ Networking layer (native URLSession with async/await) -- ✅ Keychain integration (secure token storage) -- ✅ Main navigation (TabView with 5 tabs) -- ✅ Theme management (Dark Mode support) -- ✅ MVVM architecture - -### In Progress - -- 🚧 Movie catalog -- 🚧 Series catalog -- 🚧 Search -- 🚧 User profile -- 🚧 Reviews system -- 🚧 Lists -- 🚧 Collection -- 🚧 Statistics -- 🚧 Social features - -## 🧪 Testing - -Tests will be added in future iterations. For now, focus on building the core features. - -## 📝 Code Style - -Using SwiftLint for code style enforcement. Configuration in `.swiftlint.yml`. - -## 🌍 Localization - -Supported languages: - -- Portuguese (pt-BR) -- English (en-US) -- Spanish (es-ES) -- French (fr-FR) -- German (de-DE) -- Italian (it-IT) -- Japanese (ja-JP) - -## 📄 License - -Same license as the main Plotwist project. - -## 🤝 Contributing - -See [CONTRIBUTING.md](../../CONTRIBUTING.MD) for contribution guidelines. - -## 📚 Resources - -- [iOS Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/) -- [SwiftUI Documentation](https://developer.apple.com/documentation/swiftui) -- [Swift API Design Guidelines](https://swift.org/documentation/api-design-guidelines/) - ---- - -For more details, see [IOS_TASKS.md](../../IOS_TASKS.md) for the complete task list and roadmap. diff --git a/apps/ios/SETUP.md b/apps/ios/SETUP.md deleted file mode 100644 index f16340bc..00000000 --- a/apps/ios/SETUP.md +++ /dev/null @@ -1,191 +0,0 @@ -# 🚀 Setup do Projeto iOS - Plotwist - -Este guia explica como criar o projeto Xcode para o app Plotwist iOS. - -## 📋 Pré-requisitos - -- macOS 13.0 ou superior -- Xcode 15.0 ou superior -- iOS 16.0+ como target mínimo - -## 🛠️ Criando o Projeto Xcode - -### Passo 1: Abrir o Xcode - -1. Abra o **Xcode** -2. Selecione **"Create a new Xcode project"** ou vá em **File > New > Project** - -### Passo 2: Escolher o Template - -1. Selecione a plataforma **iOS** -2. Escolha o template **App** -3. Clique em **Next** - -### Passo 3: Configurar o Projeto - -Preencha os campos conforme abaixo: - -- **Product Name**: `Plotwist` -- **Team**: (Selecione seu time/conta de desenvolvedor) -- **Organization Identifier**: `app.plotwist` (ou seu identificador) -- **Bundle Identifier**: Será `app.plotwist.Plotwist` automaticamente -- **Interface**: **SwiftUI** -- **Language**: **Swift** -- **Storage**: Não marque "Use Core Data" -- **Include Tests**: Não marque esta opção - -### Passo 4: Salvar o Projeto - -1. Clique em **Next** -2. **IMPORTANTE**: Navegue até `/Users/henrique/dev/plotwist/apps/` -3. **ATENÇÃO**: Quando salvar, DESMARQUE "Create Git repository on my Mac" -4. Nomeie como `ios-temp` (vamos mover os arquivos depois) -5. Clique em **Create** - -### Passo 5: Substituir os Arquivos - -Agora vamos substituir os arquivos gerados pelo Xcode com nossos arquivos customizados: - -1. **Feche o Xcode** - -2. No Terminal, execute: - -```bash -cd /Users/henrique/dev/plotwist/apps - -# Copiar o arquivo .xcodeproj -cp -R ios-temp/Plotwist.xcodeproj ios/ - -# Copiar o arquivo .xcworkspace se existir -if [ -d "ios-temp/Plotwist.xcworkspace" ]; then - cp -R ios-temp/Plotwist.xcworkspace ios/ -fi - -# Remover o projeto temporário -rm -rf ios-temp -``` - -3. **Abra o projeto**: - -```bash -cd ios -open Plotwist.xcodeproj -``` - -### Passo 6: Ajustar Referências no Xcode - -Com o projeto aberto no Xcode: - -1. **Remover referências antigas** (se houver arquivos duplicados): - - - No Project Navigator (⌘+1), selecione arquivos duplicados - - Clique com botão direito > Delete - - Escolha "Remove Reference" (NÃO "Move to Trash") - -2. **Adicionar arquivos ao projeto**: - - - Clique com botão direito na pasta "Plotwist" no Project Navigator - - Selecione "Add Files to 'Plotwist'..." - - Navegue até a pasta `Plotwist/` com todo o código - - **Marque**: "Copy items if needed" (DESMARQUE esta opção) - - **Marque**: "Create groups" - - **Marque**: "Add to targets: Plotwist" - - Clique em "Add" - -3. **Verificar o Info.plist**: - - - Selecione o target "Plotwist" no Project Navigator - - Vá em "Build Settings" - - Busque por "Info.plist" - - Certifique-se que aponta para `Plotwist/Info.plist` - -4. **Configurar Assets**: - - Vá em "Build Settings" - - Busque por "Asset Catalog" - - Certifique-se que aponta para `Plotwist/Resources/Assets.xcassets` - -### Passo 7: Configurar Build Settings - -1. Selecione o projeto "Plotwist" no Project Navigator -2. Selecione o target "Plotwist" -3. Vá em **"Build Settings"** -4. Busque por "iOS Deployment Target" -5. Configure para **iOS 16.0** - -### Passo 8: Configurar Capabilities (Opcional) - -Se você for usar recursos específicos: - -1. Selecione o target "Plotwist" -2. Vá em **"Signing & Capabilities"** -3. Adicione capabilities conforme necessário: - - **Keychain Sharing** (para armazenamento seguro) - - **Push Notifications** (para notificações futuras) - -### Passo 9: Build e Run - -1. Selecione um simulador (iPhone 15, por exemplo) -2. Pressione **⌘+B** para compilar -3. Se tudo estiver OK, pressione **⌘+R** para rodar - -## 🎯 Estrutura Final - -Depois de configurado, a estrutura deve estar assim: - -``` -ios/ -├── Plotwist.xcodeproj/ -├── Plotwist.xcworkspace/ (se usar CocoaPods/Carthage) -├── Plotwist/ -│ ├── App/ -│ ├── Core/ -│ ├── Models/ -│ ├── ViewModels/ -│ ├── Views/ -│ ├── Services/ -│ ├── Utils/ -│ ├── Configuration/ -│ ├── Resources/ -│ └── Info.plist -├── README.md -├── SETUP.md -└── .gitignore -``` - -## 🐛 Troubleshooting - -### Erro: "No such module 'Plotwist'" - -1. Verifique se todos os arquivos estão no target correto -2. Limpe o build: **Product > Clean Build Folder** (⌘+Shift+K) -3. Feche e reabra o Xcode - -### Erro: "Signing for 'Plotwist' requires a development team" - -1. Vá em **Signing & Capabilities** -2. Selecione seu time ou use "Automatically manage signing" -3. Faça login com sua Apple ID em **Xcode > Settings > Accounts** - -### Arquivos não aparecem no Project Navigator - -1. Certifique-se que adicionou como "Create groups" e não "Create folder references" -2. Verifique se os arquivos estão fisicamente na pasta correta - -## ✅ Próximos Passos - -Após configurar o projeto: - -1. Adicione sua TMDB API Key em `Configuration.swift` -2. Configure o Bundle ID correto -3. Adicione ícones do app em `Assets.xcassets/AppIcon.appiconset/` -4. Comece a desenvolver as features seguindo o `IOS_TASKS.md` - -## 📚 Recursos - -- [Documentação Swift](https://docs.swift.org) -- [SwiftUI Tutorials](https://developer.apple.com/tutorials/swiftui) -- [Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/) - ---- - -_Última atualização: Janeiro 2026_ From 6c108a9443a4ac61686e7fd948bc2747b2be16ed Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 10 Jan 2026 12:05:02 -0300 Subject: [PATCH 05/77] refactor(ui): update corner radius for input fields in LoginView and ios-views.mdc - Increased corner radius from 8 to 12 for RoundedRectangle overlays in LoginView and ios-views.mdc to enhance UI consistency and aesthetics. --- .cursor/rules/ios-views.mdc | 2 +- .../Plotwist/Views/Auth/LoginView.swift | 68 +++++++++---------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/.cursor/rules/ios-views.mdc b/.cursor/rules/ios-views.mdc index 60405ce1..fc3a073b 100644 --- a/.cursor/rules/ios-views.mdc +++ b/.cursor/rules/ios-views.mdc @@ -101,7 +101,7 @@ TextField("Placeholder", text: $value) .padding(12) .background(Color.clear) .overlay( - RoundedRectangle(cornerRadius: 8) + RoundedRectangle(cornerRadius: 12) .stroke(Color.appBorderAdaptive, lineWidth: 1) ) ``` diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift index 7581c9bc..7361871d 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift @@ -32,28 +32,28 @@ struct LoginView: View { .frame(width: 44, height: 44) .background(Color.clear) .overlay( - RoundedRectangle(cornerRadius: 8) + RoundedRectangle(cornerRadius: 12) .stroke(Color.appBorderAdaptive, lineWidth: 1) ) } } - Spacer() - - VStack(spacing: 16) { + Spacer() + + VStack(spacing: 16) { // Login Field VStack(alignment: .leading, spacing: 6) { Text(strings.loginLabel) .font(.subheadline.weight(.medium)) - TextField(strings.loginPlaceholder, text: $login) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .padding(12) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) + TextField(strings.loginPlaceholder, text: $login) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) } // Password Field @@ -68,27 +68,27 @@ struct LoginView: View { SecureField(strings.passwordPlaceholder, text: $password) } } - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .padding(12) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) - - Button { - showPassword.toggle() - } label: { - Image(systemName: showPassword ? "eye" : "eye.slash") - .foregroundColor(.appMutedForegroundAdaptive) - .frame(width: 48, height: 48) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) - } + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + + Button { + showPassword.toggle() + } label: { + Image(systemName: showPassword ? "eye" : "eye.slash") + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: 48, height: 48) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } } } From c6f8e841d3efd286bab8ca09388792166ee58919 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 10 Jan 2026 12:10:02 -0300 Subject: [PATCH 06/77] feat(auth): implement sign-up functionality and UI components --- .../Plotwist/Localization/Strings.swift | 162 ++++++++++- .../Plotwist/Services/AuthService.swift | 67 ++++- .../Plotwist/Views/Auth/LoginView.swift | 37 +-- .../Plotwist/Views/Auth/SignUpView.swift | 264 ++++++++++++++++++ 4 files changed, 486 insertions(+), 44 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 2334930e..c0bb777a 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -10,7 +10,7 @@ enum L10n { private static let strings: [Language: Strings] = [ .enUS: Strings( - accessPlotwist: "Welcome back 👋", + // Login loginLabel: "Email or username", loginPlaceholder: "Email or username", passwordLabel: "Password", @@ -24,10 +24,27 @@ enum L10n { invalidCredentials: "Invalid login credentials.", continueWithGoogle: "Continue with Google", continueWithApple: "Continue with Apple", - or: "or" + or: "or", + // Sign Up + startNow: "Start now", + startYourJourney: "Start your journey in just a few steps.", + emailLabel: "Email", + emailPlaceholder: "email@domain.com", + continueButton: "Continue", + alreadyHaveAccount: "Already have an account?", + accessNow: "Access now", + selectUsername: "Select your username", + selectUsernameDescription: "Choose your username and finish your sign-up to start using the platform.", + usernamePlaceholder: "john-doe", + finishSignUp: "Finish sign-up", + emailRequired: "Please enter your email.", + emailInvalid: "Please enter a valid email.", + usernameRequired: "Please enter a username.", + emailAlreadyTaken: "This email is already in use.", + usernameAlreadyTaken: "This username is already taken.", + signUpSuccess: "Registration successful. Welcome! 🎉" ), .ptBR: Strings( - accessPlotwist: "Bem-vindo de volta 👋", loginLabel: "E-mail ou nome de usuário", loginPlaceholder: "E-mail ou nome de usuário", passwordLabel: "Senha", @@ -41,10 +58,26 @@ enum L10n { invalidCredentials: "Credenciais de login inválidas.", continueWithGoogle: "Continuar com Google", continueWithApple: "Continuar com Apple", - or: "ou" + or: "ou", + startNow: "Comece agora", + startYourJourney: "Comece sua jornada em poucos passos.", + emailLabel: "E-mail", + emailPlaceholder: "email@dominio.com", + continueButton: "Continuar", + alreadyHaveAccount: "Já tem uma conta?", + accessNow: "Acesse agora", + selectUsername: "Escolha seu nome de usuário", + selectUsernameDescription: "Escolha seu nome de usuário e finalize seu cadastro para começar a usar a plataforma.", + usernamePlaceholder: "joao-silva", + finishSignUp: "Finalizar cadastro", + emailRequired: "Por favor, insira seu e-mail.", + emailInvalid: "Por favor, insira um e-mail válido.", + usernameRequired: "Por favor, insira um nome de usuário.", + emailAlreadyTaken: "Este e-mail já está em uso.", + usernameAlreadyTaken: "Este nome de usuário já está em uso.", + signUpSuccess: "Cadastro realizado com sucesso. Bem-vindo! 🎉" ), .esES: Strings( - accessPlotwist: "Bienvenido de nuevo 👋", loginLabel: "Correo electrónico o nombre de usuario", loginPlaceholder: "Correo electrónico o nombre de usuario", passwordLabel: "Contraseña", @@ -58,10 +91,26 @@ enum L10n { invalidCredentials: "Credenciales de inicio de sesión no válidas.", continueWithGoogle: "Continuar con Google", continueWithApple: "Continuar con Apple", - or: "o" + or: "o", + startNow: "Empieza ahora", + startYourJourney: "Comienza tu viaje en unos pocos pasos.", + emailLabel: "Correo electrónico", + emailPlaceholder: "email@dominio.com", + continueButton: "Continuar", + alreadyHaveAccount: "¿Ya tienes una cuenta?", + accessNow: "Accede ahora", + selectUsername: "Selecciona tu nombre de usuario", + selectUsernameDescription: "Elige tu nombre de usuario y finaliza tu registro para comenzar a usar la plataforma.", + usernamePlaceholder: "juan-perez", + finishSignUp: "Finalizar registro", + emailRequired: "Por favor, introduce tu correo electrónico.", + emailInvalid: "Por favor, introduce un correo electrónico válido.", + usernameRequired: "Por favor, introduce un nombre de usuario.", + emailAlreadyTaken: "Este correo electrónico ya está en uso.", + usernameAlreadyTaken: "Este nombre de usuario ya está en uso.", + signUpSuccess: "Registro exitoso. ¡Bienvenido! 🎉" ), .frFR: Strings( - accessPlotwist: "Bon retour 👋", loginLabel: "E-mail ou nom d'utilisateur", loginPlaceholder: "E-mail ou nom d'utilisateur", passwordLabel: "Mot de passe", @@ -75,10 +124,26 @@ enum L10n { invalidCredentials: "Identifiants de connexion invalides.", continueWithGoogle: "Continuer avec Google", continueWithApple: "Continuer avec Apple", - or: "ou" + or: "ou", + startNow: "Commencez maintenant", + startYourJourney: "Commencez votre voyage en quelques étapes.", + emailLabel: "E-mail", + emailPlaceholder: "email@domaine.com", + continueButton: "Continuer", + alreadyHaveAccount: "Vous avez déjà un compte?", + accessNow: "Connectez-vous", + selectUsername: "Choisissez votre nom d'utilisateur", + selectUsernameDescription: "Choisissez votre nom d'utilisateur et terminez votre inscription pour commencer à utiliser la plateforme.", + usernamePlaceholder: "jean-dupont", + finishSignUp: "Terminer l'inscription", + emailRequired: "Veuillez entrer votre e-mail.", + emailInvalid: "Veuillez entrer un e-mail valide.", + usernameRequired: "Veuillez entrer un nom d'utilisateur.", + emailAlreadyTaken: "Cet e-mail est déjà utilisé.", + usernameAlreadyTaken: "Ce nom d'utilisateur est déjà utilisé.", + signUpSuccess: "Inscription réussie. Bienvenue! 🎉" ), .deDE: Strings( - accessPlotwist: "Willkommen zurück 👋", loginLabel: "E-Mail oder Benutzername", loginPlaceholder: "E-Mail oder Benutzername", passwordLabel: "Passwort", @@ -92,10 +157,26 @@ enum L10n { invalidCredentials: "Ungültige Anmeldeinformationen.", continueWithGoogle: "Weiter mit Google", continueWithApple: "Weiter mit Apple", - or: "oder" + or: "oder", + startNow: "Jetzt starten", + startYourJourney: "Beginnen Sie Ihre Reise in wenigen Schritten.", + emailLabel: "E-Mail", + emailPlaceholder: "email@domain.de", + continueButton: "Weiter", + alreadyHaveAccount: "Haben Sie bereits ein Konto?", + accessNow: "Jetzt anmelden", + selectUsername: "Wählen Sie Ihren Benutzernamen", + selectUsernameDescription: "Wählen Sie Ihren Benutzernamen und schließen Sie Ihre Registrierung ab, um die Plattform zu nutzen.", + usernamePlaceholder: "max-mustermann", + finishSignUp: "Registrierung abschließen", + emailRequired: "Bitte geben Sie Ihre E-Mail-Adresse ein.", + emailInvalid: "Bitte geben Sie eine gültige E-Mail-Adresse ein.", + usernameRequired: "Bitte geben Sie einen Benutzernamen ein.", + emailAlreadyTaken: "Diese E-Mail-Adresse wird bereits verwendet.", + usernameAlreadyTaken: "Dieser Benutzername ist bereits vergeben.", + signUpSuccess: "Registrierung erfolgreich. Willkommen! 🎉" ), .itIT: Strings( - accessPlotwist: "Bentornato 👋", loginLabel: "E-mail o nome utente", loginPlaceholder: "E-mail o nome utente", passwordLabel: "Password", @@ -109,10 +190,26 @@ enum L10n { invalidCredentials: "Credenziali di accesso non valide.", continueWithGoogle: "Continua con Google", continueWithApple: "Continua con Apple", - or: "o" + or: "o", + startNow: "Inizia ora", + startYourJourney: "Inizia il tuo viaggio in pochi passi.", + emailLabel: "E-mail", + emailPlaceholder: "email@dominio.com", + continueButton: "Continua", + alreadyHaveAccount: "Hai già un account?", + accessNow: "Accedi ora", + selectUsername: "Scegli il tuo nome utente", + selectUsernameDescription: "Scegli il tuo nome utente e completa la registrazione per iniziare a usare la piattaforma.", + usernamePlaceholder: "mario-rossi", + finishSignUp: "Completa registrazione", + emailRequired: "Inserisci la tua e-mail.", + emailInvalid: "Inserisci un'e-mail valida.", + usernameRequired: "Inserisci un nome utente.", + emailAlreadyTaken: "Questa email è già in uso.", + usernameAlreadyTaken: "Questo nome utente è già in uso.", + signUpSuccess: "Registrazione completata. Benvenuto! 🎉" ), .jaJP: Strings( - accessPlotwist: "おかえりなさい 👋", loginLabel: "メールアドレスまたはユーザー名", loginPlaceholder: "メールアドレスまたはユーザー名", passwordLabel: "パスワード", @@ -126,13 +223,30 @@ enum L10n { invalidCredentials: "ログイン認証情報が無効です。", continueWithGoogle: "Googleで続ける", continueWithApple: "Appleで続ける", - or: "または" + or: "または", + startNow: "今すぐ始める", + startYourJourney: "数ステップで旅を始めましょう。", + emailLabel: "メールアドレス", + emailPlaceholder: "email@domain.com", + continueButton: "続ける", + alreadyHaveAccount: "すでにアカウントをお持ちですか?", + accessNow: "ログイン", + selectUsername: "ユーザー名を選択", + selectUsernameDescription: "ユーザー名を選択し、プラットフォームの利用を開始するためにサインアップを完了してください。", + usernamePlaceholder: "taro-yamada", + finishSignUp: "登録を完了", + emailRequired: "メールアドレスを入力してください。", + emailInvalid: "有効なメールアドレスを入力してください。", + usernameRequired: "ユーザー名を入力してください。", + emailAlreadyTaken: "このメールアドレスは既に使用されています。", + usernameAlreadyTaken: "このユーザー名は既に使用されています。", + signUpSuccess: "登録が完了しました。ようこそ!🎉" ) ] } struct Strings { - let accessPlotwist: String + // Login let loginLabel: String let loginPlaceholder: String let passwordLabel: String @@ -147,4 +261,22 @@ struct Strings { let continueWithGoogle: String let continueWithApple: String let or: String + // Sign Up + let startNow: String + let startYourJourney: String + let emailLabel: String + let emailPlaceholder: String + let continueButton: String + let alreadyHaveAccount: String + let accessNow: String + let selectUsername: String + let selectUsernameDescription: String + let usernamePlaceholder: String + let finishSignUp: String + let emailRequired: String + let emailInvalid: String + let usernameRequired: String + let emailAlreadyTaken: String + let usernameAlreadyTaken: String + let signUpSuccess: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift index 9b58fac6..dabd3a9e 100644 --- a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift @@ -9,6 +9,7 @@ class AuthService { static let shared = AuthService() private init() {} + // MARK: - Sign In func signIn(login: String, password: String) async throws -> String { guard let url = URL(string: "\(API.baseURL)/auth/login") else { throw AuthError.invalidURL @@ -35,6 +36,69 @@ class AuthService { return result.token } + // MARK: - Sign Up + func signUp(email: String, password: String, username: String) async throws { + guard let url = URL(string: "\(API.baseURL)/users") else { + throw AuthError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + request.httpBody = try JSONEncoder().encode([ + "email": email, + "password": password, + "username": username + ]) + + let (_, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw AuthError.invalidResponse + } + + switch http.statusCode { + case 200, 201: + // Auto sign-in after sign-up + _ = try await signIn(login: email, password: password) + case 409: + throw AuthError.alreadyExists + default: + throw AuthError.invalidCredentials + } + } + + // MARK: - Check Email Availability + func checkEmailAvailable(email: String) async throws -> Bool { + guard let url = URL(string: "\(API.baseURL)/users/available/email?email=\(email)") else { + throw AuthError.invalidURL + } + + let (_, response) = try await URLSession.shared.data(from: url) + + guard let http = response as? HTTPURLResponse else { + throw AuthError.invalidResponse + } + + return http.statusCode == 200 + } + + // MARK: - Check Username Availability + func checkUsernameAvailable(username: String) async throws -> Bool { + guard let url = URL(string: "\(API.baseURL)/users/available/username?username=\(username)") else { + throw AuthError.invalidURL + } + + let (_, response) = try await URLSession.shared.data(from: url) + + guard let http = response as? HTTPURLResponse else { + throw AuthError.invalidResponse + } + + return http.statusCode == 200 + } + + // MARK: - Sign Out func signOut() { UserDefaults.standard.removeObject(forKey: "token") NotificationCenter.default.post(name: .authChanged, object: nil) @@ -50,13 +114,14 @@ struct LoginResponse: Codable { } enum AuthError: LocalizedError { - case invalidURL, invalidResponse, invalidCredentials + case invalidURL, invalidResponse, invalidCredentials, alreadyExists var errorDescription: String? { switch self { case .invalidURL: return "Invalid URL" case .invalidResponse: return "Invalid response" case .invalidCredentials: return "Invalid credentials" + case .alreadyExists: return "Already exists" } } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift index 7361871d..1876e9f4 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift @@ -11,34 +11,15 @@ struct LoginView: View { @State private var showPassword = false @State private var isLoading = false @State private var error: String? - @State private var strings = L10n.current - @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current var body: some View { NavigationView { ZStack { Color.appBackgroundAdaptive.ignoresSafeArea() - VStack(spacing: 24) { - // Theme toggle button (temporary) - HStack { - Spacer() - Button { - themeManager.toggle() - } label: { - Image(systemName: themeManager.current.icon) - .font(.system(size: 20)) - .foregroundColor(.appForegroundAdaptive) - .frame(width: 44, height: 44) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) - } - } - - Spacer() + VStack(spacing: 24) { + Spacer() VStack(spacing: 16) { // Login Field @@ -122,12 +103,12 @@ struct LoginView: View { Spacer() - NavigationLink(destination: Text("Sign Up - Coming Soon")) { - Text("\(strings.doNotHaveAccount) \(strings.createNow)") - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - } - .padding(.bottom, 16) + NavigationLink(destination: SignUpView()) { + Text("\(strings.doNotHaveAccount) \(strings.createNow)") + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + .padding(.bottom, 16) } .padding(.horizontal, 24) .frame(maxWidth: 400) diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift new file mode 100644 index 00000000..0a92868a --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift @@ -0,0 +1,264 @@ +// +// SignUpView.swift +// Plotwist +// + +import SwiftUI + +struct SignUpView: View { + @Environment(\.dismiss) private var dismiss + @State private var email = "" + @State private var password = "" + @State private var username = "" + @State private var showPassword = false + @State private var isLoading = false + @State private var error: String? + @State private var showUsernameSheet = false + @State private var strings = L10n.current + + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 24) { + Spacer() + + // Header + VStack(spacing: 8) { + Text(strings.startNow) + .font(.system(size: 24, weight: .bold)) + Text(strings.startYourJourney) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .multilineTextAlignment(.center) + } + + VStack(spacing: 16) { + // Email Field + VStack(alignment: .leading, spacing: 6) { + Text(strings.emailLabel) + .font(.subheadline.weight(.medium)) + TextField(strings.emailPlaceholder, text: $email) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .keyboardType(.emailAddress) + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + + // Password Field + VStack(alignment: .leading, spacing: 6) { + Text(strings.passwordLabel) + .font(.subheadline.weight(.medium)) + HStack(spacing: 8) { + Group { + if showPassword { + TextField(strings.passwordPlaceholder, text: $password) + } else { + SecureField(strings.passwordPlaceholder, text: $password) + } + } + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + + Button { + showPassword.toggle() + } label: { + Image(systemName: showPassword ? "eye" : "eye.slash") + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: 48, height: 48) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + } + } + + if let error { + Text(error) + .font(.caption) + .foregroundColor(.appDestructive) + } + + PrimaryButton(strings.continueButton, variant: .filled, isLoading: isLoading) { + Task { await checkEmailAndContinue() } + } + } + + Spacer() + + NavigationLink(destination: LoginView()) { + Text("\(strings.alreadyHaveAccount) \(strings.accessNow)") + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + .padding(.bottom, 16) + } + .padding(.horizontal, 24) + .frame(maxWidth: 400) + } + .navigationBarHidden(true) + } + .sheet(isPresented: $showUsernameSheet) { + UsernameSheetView( + username: $username, + onFinish: { await finishSignUp() } + ) + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func checkEmailAndContinue() async { + error = nil + + // Validate email + guard !email.isEmpty else { + error = strings.emailRequired + return + } + guard email.contains("@") && email.contains(".") else { + error = strings.emailInvalid + return + } + + // Validate password + guard password.count >= 8 else { + error = strings.passwordLength + return + } + + isLoading = true + defer { isLoading = false } + + do { + let available = try await AuthService.shared.checkEmailAvailable(email: email) + if available { + showUsernameSheet = true + } else { + error = strings.emailAlreadyTaken + } + } catch { + self.error = strings.emailAlreadyTaken + } + } + + private func finishSignUp() async { + do { + try await AuthService.shared.signUp(email: email, password: password, username: username) + } catch AuthError.alreadyExists { + // Username taken - handled in sheet + } catch { + self.error = strings.invalidCredentials + } + } +} + +// MARK: - Username Sheet +struct UsernameSheetView: View { + @Environment(\.dismiss) private var dismiss + @Binding var username: String + let onFinish: () async -> Void + + @State private var isLoading = false + @State private var error: String? + @State private var strings = L10n.current + + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 24) { + VStack(spacing: 8) { + Text(strings.selectUsername) + .font(.system(size: 20, weight: .bold)) + Text(strings.selectUsernameDescription) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .multilineTextAlignment(.center) + } + .padding(.top, 24) + + VStack(spacing: 16) { + TextField(strings.usernamePlaceholder, text: $username) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + + if let error { + Text(error) + .font(.caption) + .foregroundColor(.appDestructive) + } + + PrimaryButton(strings.finishSignUp, variant: .filled, isLoading: isLoading) { + Task { await checkUsernameAndFinish() } + } + } + + Spacer() + } + .padding(.horizontal, 24) + } + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button { + dismiss() + } label: { + Image(systemName: "xmark") + .foregroundColor(.appForegroundAdaptive) + } + } + } + } + } + + private func checkUsernameAndFinish() async { + error = nil + + guard !username.isEmpty else { + error = strings.usernameRequired + return + } + + isLoading = true + defer { isLoading = false } + + do { + let available = try await AuthService.shared.checkUsernameAvailable(username: username) + if available { + await onFinish() + dismiss() + } else { + error = strings.usernameAlreadyTaken + } + } catch { + self.error = strings.usernameAlreadyTaken + } + } +} + +#Preview { + SignUpView() +} From d196528c02e32c6cf15739a82d7b107b7f42c6e7 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 10 Jan 2026 12:23:25 -0300 Subject: [PATCH 07/77] refactor(auth): enhance AuthService and SignUpView for improved functionality and UI - Updated AuthService to streamline API endpoints for sign-in and sign-up processes. - Enhanced SignUpView with better error handling and user feedback. - Improved layout and styling for input fields and buttons to maintain UI consistency. - Added email and username availability checks during sign-up process. --- .../Plotwist/Services/AuthService.swift | 216 +++++---- .../Plotwist/Views/Auth/SignUpView.swift | 458 +++++++++--------- 2 files changed, 329 insertions(+), 345 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift index dabd3a9e..402d4649 100644 --- a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift @@ -6,126 +6,130 @@ import Foundation class AuthService { - static let shared = AuthService() - private init() {} - - // MARK: - Sign In - func signIn(login: String, password: String) async throws -> String { - guard let url = URL(string: "\(API.baseURL)/auth/login") else { - throw AuthError.invalidURL - } - - var request = URLRequest(url: url) - request.httpMethod = "POST" - request.setValue("application/json", forHTTPHeaderField: "Content-Type") - request.httpBody = try JSONEncoder().encode(["login": login, "password": password]) - - let (data, response) = try await URLSession.shared.data(for: request) - - guard let http = response as? HTTPURLResponse else { - throw AuthError.invalidResponse - } - - guard http.statusCode == 200 else { - throw AuthError.invalidCredentials - } - - let result = try JSONDecoder().decode(LoginResponse.self, from: data) - UserDefaults.standard.set(result.token, forKey: "token") - NotificationCenter.default.post(name: .authChanged, object: nil) - return result.token + static let shared = AuthService() + private init() {} + + // MARK: - Sign In + func signIn(login: String, password: String) async throws -> String { + guard let url = URL(string: "\(API.baseURL)/login") else { + throw AuthError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + request.httpBody = try JSONEncoder().encode(["login": login, "password": password]) + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw AuthError.invalidResponse + } + + guard http.statusCode == 200 else { + throw AuthError.invalidCredentials + } + + let result = try JSONDecoder().decode(LoginResponse.self, from: data) + UserDefaults.standard.set(result.token, forKey: "token") + NotificationCenter.default.post(name: .authChanged, object: nil) + return result.token + } + + // MARK: - Sign Up + func signUp(email: String, password: String, username: String) async throws { + guard let url = URL(string: "\(API.baseURL)/users/create") else { + throw AuthError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + request.httpBody = try JSONEncoder().encode([ + "email": email, + "password": password, + "username": username, + ]) + + let (_, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw AuthError.invalidResponse } - - // MARK: - Sign Up - func signUp(email: String, password: String, username: String) async throws { - guard let url = URL(string: "\(API.baseURL)/users") else { - throw AuthError.invalidURL - } - - var request = URLRequest(url: url) - request.httpMethod = "POST" - request.setValue("application/json", forHTTPHeaderField: "Content-Type") - request.httpBody = try JSONEncoder().encode([ - "email": email, - "password": password, - "username": username - ]) - - let (_, response) = try await URLSession.shared.data(for: request) - - guard let http = response as? HTTPURLResponse else { - throw AuthError.invalidResponse - } - - switch http.statusCode { - case 200, 201: - // Auto sign-in after sign-up - _ = try await signIn(login: email, password: password) - case 409: - throw AuthError.alreadyExists - default: - throw AuthError.invalidCredentials - } + + switch http.statusCode { + case 200, 201: + // Auto sign-in after sign-up + _ = try await signIn(login: email, password: password) + case 409: + throw AuthError.alreadyExists + default: + throw AuthError.invalidCredentials } - - // MARK: - Check Email Availability - func checkEmailAvailable(email: String) async throws -> Bool { - guard let url = URL(string: "\(API.baseURL)/users/available/email?email=\(email)") else { - throw AuthError.invalidURL - } - - let (_, response) = try await URLSession.shared.data(from: url) - - guard let http = response as? HTTPURLResponse else { - throw AuthError.invalidResponse - } - - return http.statusCode == 200 + } + + // MARK: - Check Email Availability + func checkEmailAvailable(email: String) async throws -> Bool { + guard let encoded = email.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed), + let url = URL(string: "\(API.baseURL)/users/available-email?email=\(encoded)") + else { + throw AuthError.invalidURL } - - // MARK: - Check Username Availability - func checkUsernameAvailable(username: String) async throws -> Bool { - guard let url = URL(string: "\(API.baseURL)/users/available/username?username=\(username)") else { - throw AuthError.invalidURL - } - - let (_, response) = try await URLSession.shared.data(from: url) - - guard let http = response as? HTTPURLResponse else { - throw AuthError.invalidResponse - } - - return http.statusCode == 200 + + let (_, response) = try await URLSession.shared.data(from: url) + + guard let http = response as? HTTPURLResponse else { + throw AuthError.invalidResponse } - - // MARK: - Sign Out - func signOut() { - UserDefaults.standard.removeObject(forKey: "token") - NotificationCenter.default.post(name: .authChanged, object: nil) + + return http.statusCode == 200 + } + + // MARK: - Check Username Availability + func checkUsernameAvailable(username: String) async throws -> Bool { + guard let encoded = username.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed), + let url = URL(string: "\(API.baseURL)/users/available-username?username=\(encoded)") + else { + throw AuthError.invalidURL } - - var isAuthenticated: Bool { - UserDefaults.standard.string(forKey: "token") != nil + + let (_, response) = try await URLSession.shared.data(from: url) + + guard let http = response as? HTTPURLResponse else { + throw AuthError.invalidResponse } + + return http.statusCode == 200 + } + + // MARK: - Sign Out + func signOut() { + UserDefaults.standard.removeObject(forKey: "token") + NotificationCenter.default.post(name: .authChanged, object: nil) + } + + var isAuthenticated: Bool { + UserDefaults.standard.string(forKey: "token") != nil + } } struct LoginResponse: Codable { - let token: String + let token: String } enum AuthError: LocalizedError { - case invalidURL, invalidResponse, invalidCredentials, alreadyExists - - var errorDescription: String? { - switch self { - case .invalidURL: return "Invalid URL" - case .invalidResponse: return "Invalid response" - case .invalidCredentials: return "Invalid credentials" - case .alreadyExists: return "Already exists" - } + case invalidURL, invalidResponse, invalidCredentials, alreadyExists + + var errorDescription: String? { + switch self { + case .invalidURL: return "Invalid URL" + case .invalidResponse: return "Invalid response" + case .invalidCredentials: return "Invalid credentials" + case .alreadyExists: return "Already exists" } + } } extension Notification.Name { - static let authChanged = Notification.Name("authChanged") + static let authChanged = Notification.Name("authChanged") } diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift index 0a92868a..52b2a74b 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift @@ -6,259 +6,239 @@ import SwiftUI struct SignUpView: View { - @Environment(\.dismiss) private var dismiss - @State private var email = "" - @State private var password = "" - @State private var username = "" - @State private var showPassword = false - @State private var isLoading = false - @State private var error: String? - @State private var showUsernameSheet = false - @State private var strings = L10n.current - - var body: some View { - NavigationView { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - VStack(spacing: 24) { - Spacer() - - // Header - VStack(spacing: 8) { - Text(strings.startNow) - .font(.system(size: 24, weight: .bold)) - Text(strings.startYourJourney) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .multilineTextAlignment(.center) - } - - VStack(spacing: 16) { - // Email Field - VStack(alignment: .leading, spacing: 6) { - Text(strings.emailLabel) - .font(.subheadline.weight(.medium)) - TextField(strings.emailPlaceholder, text: $email) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .keyboardType(.emailAddress) - .padding(12) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) - } - - // Password Field - VStack(alignment: .leading, spacing: 6) { - Text(strings.passwordLabel) - .font(.subheadline.weight(.medium)) - HStack(spacing: 8) { - Group { - if showPassword { - TextField(strings.passwordPlaceholder, text: $password) - } else { - SecureField(strings.passwordPlaceholder, text: $password) - } - } - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .padding(12) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) - - Button { - showPassword.toggle() - } label: { - Image(systemName: showPassword ? "eye" : "eye.slash") - .foregroundColor(.appMutedForegroundAdaptive) - .frame(width: 48, height: 48) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) - } - } - } - - if let error { - Text(error) - .font(.caption) - .foregroundColor(.appDestructive) - } - - PrimaryButton(strings.continueButton, variant: .filled, isLoading: isLoading) { - Task { await checkEmailAndContinue() } - } - } - - Spacer() - - NavigationLink(destination: LoginView()) { - Text("\(strings.alreadyHaveAccount) \(strings.accessNow)") - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - } - .padding(.bottom, 16) + @Environment(\.dismiss) private var dismiss + @State private var email = "" + @State private var password = "" + @State private var username = "" + @State private var showPassword = false + @State private var isLoading = false + @State private var error: String? + @State private var showUsernameSheet = false + @State private var strings = L10n.current + + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 24) { + Spacer() + + // Header + VStack(spacing: 8) { + Text(strings.startNow) + .font(.system(size: 24, weight: .bold)) + Text(strings.startYourJourney) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .multilineTextAlignment(.center) + } + + VStack(spacing: 16) { + // Email Field + VStack(alignment: .leading, spacing: 6) { + Text(strings.emailLabel) + .font(.subheadline.weight(.medium)) + TextField(strings.emailPlaceholder, text: $email) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .keyboardType(.emailAddress) + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + + // Password Field + VStack(alignment: .leading, spacing: 6) { + Text(strings.passwordLabel) + .font(.subheadline.weight(.medium)) + HStack(spacing: 8) { + Group { + if showPassword { + TextField(strings.passwordPlaceholder, text: $password) + } else { + SecureField(strings.passwordPlaceholder, text: $password) + } } - .padding(.horizontal, 24) - .frame(maxWidth: 400) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + + Button { + showPassword.toggle() + } label: { + Image(systemName: showPassword ? "eye" : "eye.slash") + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: 48, height: 48) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + } } - .navigationBarHidden(true) - } - .sheet(isPresented: $showUsernameSheet) { - UsernameSheetView( - username: $username, - onFinish: { await finishSignUp() } - ) - } - .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in - strings = L10n.current - } - } - - private func checkEmailAndContinue() async { - error = nil - - // Validate email - guard !email.isEmpty else { - error = strings.emailRequired - return - } - guard email.contains("@") && email.contains(".") else { - error = strings.emailInvalid - return - } - - // Validate password - guard password.count >= 8 else { - error = strings.passwordLength - return - } - - isLoading = true - defer { isLoading = false } - - do { - let available = try await AuthService.shared.checkEmailAvailable(email: email) - if available { - showUsernameSheet = true - } else { - error = strings.emailAlreadyTaken + + if let error { + Text(error) + .font(.caption) + .foregroundColor(.appDestructive) } - } catch { - self.error = strings.emailAlreadyTaken + + PrimaryButton(strings.continueButton, variant: .filled, isLoading: isLoading) { + Task { await checkEmailAndContinue() } + } + } + + Spacer() + + NavigationLink(destination: LoginView()) { + Text("\(strings.alreadyHaveAccount) \(strings.accessNow)") + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + .padding(.bottom, 16) } + .padding(.horizontal, 24) + .frame(maxWidth: 400) + } + .navigationBarHidden(true) } - - private func finishSignUp() async { - do { - try await AuthService.shared.signUp(email: email, password: password, username: username) - } catch AuthError.alreadyExists { - // Username taken - handled in sheet - } catch { - self.error = strings.invalidCredentials - } + .sheet(isPresented: $showUsernameSheet) { + UsernameSheetView( + username: $username, + email: email, + password: password, + onError: { self.error = $0 } + ) + .presentationDetents([.height(320)]) + .presentationDragIndicator(.visible) + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func checkEmailAndContinue() async { + error = nil + + // Validate email + guard !email.isEmpty else { + error = strings.emailRequired + return } + guard email.contains("@") && email.contains(".") else { + error = strings.emailInvalid + return + } + + // Validate password + guard password.count >= 8 else { + error = strings.passwordLength + return + } + + isLoading = true + defer { isLoading = false } + + do { + let available = try await AuthService.shared.checkEmailAvailable(email: email) + if available { + showUsernameSheet = true + } else { + error = strings.emailAlreadyTaken + } + } catch { + self.error = strings.emailAlreadyTaken + } + } } // MARK: - Username Sheet struct UsernameSheetView: View { - @Environment(\.dismiss) private var dismiss - @Binding var username: String - let onFinish: () async -> Void - - @State private var isLoading = false - @State private var error: String? - @State private var strings = L10n.current - - var body: some View { - NavigationView { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - VStack(spacing: 24) { - VStack(spacing: 8) { - Text(strings.selectUsername) - .font(.system(size: 20, weight: .bold)) - Text(strings.selectUsernameDescription) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .multilineTextAlignment(.center) - } - .padding(.top, 24) - - VStack(spacing: 16) { - TextField(strings.usernamePlaceholder, text: $username) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .padding(12) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) - - if let error { - Text(error) - .font(.caption) - .foregroundColor(.appDestructive) - } - - PrimaryButton(strings.finishSignUp, variant: .filled, isLoading: isLoading) { - Task { await checkUsernameAndFinish() } - } - } - - Spacer() - } - .padding(.horizontal, 24) - } - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .navigationBarLeading) { - Button { - dismiss() - } label: { - Image(systemName: "xmark") - .foregroundColor(.appForegroundAdaptive) - } - } - } - } - } - - private func checkUsernameAndFinish() async { - error = nil - - guard !username.isEmpty else { - error = strings.usernameRequired - return + @Environment(\.dismiss) private var dismiss + @Binding var username: String + let email: String + let password: String + let onError: (String) -> Void + + @State private var isLoading = false + @State private var error: String? + @State private var strings = L10n.current + + var body: some View { + VStack(spacing: 24) { + VStack(spacing: 8) { + Text(strings.selectUsername) + .font(.system(size: 20, weight: .bold)) + Text(strings.selectUsernameDescription) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .multilineTextAlignment(.center) + } + + VStack(spacing: 16) { + TextField(strings.usernamePlaceholder, text: $username) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + + if let error { + Text(error) + .font(.caption) + .foregroundColor(.appDestructive) } - - isLoading = true - defer { isLoading = false } - - do { - let available = try await AuthService.shared.checkUsernameAvailable(username: username) - if available { - await onFinish() - dismiss() - } else { - error = strings.usernameAlreadyTaken - } - } catch { - self.error = strings.usernameAlreadyTaken + + PrimaryButton(strings.finishSignUp, variant: .filled, isLoading: isLoading) { + Task { await checkUsernameAndFinish() } } + } + } + .padding(24) + .background(Color.appBackgroundAdaptive) + } + + private func checkUsernameAndFinish() async { + error = nil + + guard !username.isEmpty else { + error = strings.usernameRequired + return + } + + isLoading = true + defer { isLoading = false } + + do { + let available = try await AuthService.shared.checkUsernameAvailable(username: username) + if available { + try await AuthService.shared.signUp(email: email, password: password, username: username) + dismiss() + } else { + error = strings.usernameAlreadyTaken + } + } catch AuthError.alreadyExists { + error = strings.usernameAlreadyTaken + } catch { + onError(strings.invalidCredentials) + dismiss() } + } } #Preview { - SignUpView() + SignUpView() } From 5a6c1d0df91ec14bf11ba03ad55bf0dbc12ef75c Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 10 Jan 2026 16:39:46 -0300 Subject: [PATCH 08/77] feat(ui): add language switcher and tabbed navigation in HomeView --- .../Plotwist/Views/Auth/LoginView.swift | 33 +++++++ .../Plotwist/Views/Home/HomeView.swift | 87 +++++++++++++++++-- 2 files changed, 113 insertions(+), 7 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift index 1876e9f4..2a20544e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift @@ -19,6 +19,39 @@ struct LoginView: View { Color.appBackgroundAdaptive.ignoresSafeArea() VStack(spacing: 24) { + // Temporary Language Switcher + HStack { + Spacer() + Menu { + ForEach(Language.allCases, id: \.self) { lang in + Button { + Language.current = lang + } label: { + HStack { + Text(lang.displayName) + if Language.current == lang { + Image(systemName: "checkmark") + } + } + } + } + } label: { + HStack(spacing: 6) { + Image(systemName: "globe") + Text(Language.current.displayName) + .font(.subheadline) + } + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 12) + .padding(.vertical, 8) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + } + Spacer() VStack(spacing: 16) { diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index e9508bb6..42ad1f74 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -6,18 +6,91 @@ import SwiftUI struct HomeView: View { + @State private var selectedTab = 0 + + var body: some View { + TabView(selection: $selectedTab) { + HomeTabView() + .tabItem { + Image(systemName: "house.fill") + Text("Home") + } + .tag(0) + + SearchTabView() + .tabItem { + Image(systemName: "magnifyingglass") + Text("Search") + } + .tag(1) + + ProfileTabView() + .tabItem { + Image(systemName: "person.fill") + Text("Profile") + } + .tag(2) + } + .tint(.appForegroundAdaptive) + } +} + +// MARK: - Home Tab +struct HomeTabView: View { + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + Text("Home") + .font(.title2) + .foregroundColor(.appMutedForegroundAdaptive) + } + .navigationBarHidden(true) + } + } +} + +// MARK: - Search Tab +struct SearchTabView: View { + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + Text("Search") + .font(.title2) + .foregroundColor(.appMutedForegroundAdaptive) + } + .navigationBarHidden(true) + } + } +} + +// MARK: - Profile Tab +struct ProfileTabView: View { var body: some View { NavigationView { - VStack(spacing: 16) { - Text("Welcome to Plotwist!") - .font(.title.bold()) + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() - Button("Sign Out") { - AuthService.shared.signOut() + VStack(spacing: 24) { + Text("Profile") + .font(.title2) + .foregroundColor(.appMutedForegroundAdaptive) + + Button { + AuthService.shared.signOut() + } label: { + HStack { + Image(systemName: "rectangle.portrait.and.arrow.right") + Text("Sign Out") + } + .foregroundColor(.appDestructive) + } } - .foregroundColor(.appDestructive) } - .navigationTitle("Home") + .navigationBarHidden(true) } } } From d5cfce7e8c35955867e088dc64b37239263ac43e Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 10 Jan 2026 16:39:49 -0300 Subject: [PATCH 09/77] refactor(ui): remove text labels from tab items in HomeView for a cleaner UI --- apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift | 3 --- 1 file changed, 3 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index 42ad1f74..3b9bb40b 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -13,21 +13,18 @@ struct HomeView: View { HomeTabView() .tabItem { Image(systemName: "house.fill") - Text("Home") } .tag(0) SearchTabView() .tabItem { Image(systemName: "magnifyingglass") - Text("Search") } .tag(1) ProfileTabView() .tabItem { Image(systemName: "person.fill") - Text("Profile") } .tag(2) } From 4ddeda7a95dc9a5f210a7d18d7fb1271df7e7be0 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 10 Jan 2026 17:49:24 -0300 Subject: [PATCH 10/77] feat(ui): enhance HomeView with search functionality and user profile integration --- .../Plotwist/Localization/Strings.swift | 677 +++++++++++------- .../Plotwist/Services/AuthService.swift | 30 + .../Plotwist/Services/TMDBService.swift | 167 +++++ apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 81 ++- .../Plotwist/Views/Home/HomeView.swift | 623 ++++++++++++++-- 5 files changed, 1214 insertions(+), 364 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Services/TMDBService.swift diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index c0bb777a..28481918 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -6,277 +6,414 @@ import Foundation enum L10n { - static var current: Strings { strings[Language.current] ?? strings[.enUS]! } - - private static let strings: [Language: Strings] = [ - .enUS: Strings( - // Login - loginLabel: "Email or username", - loginPlaceholder: "Email or username", - passwordLabel: "Password", - passwordPlaceholder: "*********", - accessButton: "Access", - doNotHaveAccount: "Don't have an account?", - createNow: "Create now", - loginRequired: "Please enter your email or username.", - passwordRequired: "Please enter your password.", - passwordLength: "Your password must be at least 8 characters long.", - invalidCredentials: "Invalid login credentials.", - continueWithGoogle: "Continue with Google", - continueWithApple: "Continue with Apple", - or: "or", - // Sign Up - startNow: "Start now", - startYourJourney: "Start your journey in just a few steps.", - emailLabel: "Email", - emailPlaceholder: "email@domain.com", - continueButton: "Continue", - alreadyHaveAccount: "Already have an account?", - accessNow: "Access now", - selectUsername: "Select your username", - selectUsernameDescription: "Choose your username and finish your sign-up to start using the platform.", - usernamePlaceholder: "john-doe", - finishSignUp: "Finish sign-up", - emailRequired: "Please enter your email.", - emailInvalid: "Please enter a valid email.", - usernameRequired: "Please enter a username.", - emailAlreadyTaken: "This email is already in use.", - usernameAlreadyTaken: "This username is already taken.", - signUpSuccess: "Registration successful. Welcome! 🎉" - ), - .ptBR: Strings( - loginLabel: "E-mail ou nome de usuário", - loginPlaceholder: "E-mail ou nome de usuário", - passwordLabel: "Senha", - passwordPlaceholder: "*********", - accessButton: "Acessar", - doNotHaveAccount: "Não tem uma conta?", - createNow: "Crie agora", - loginRequired: "Por favor, insira seu e-mail ou nome de usuário.", - passwordRequired: "Por favor, insira sua senha.", - passwordLength: "Sua senha deve ter pelo menos 8 caracteres.", - invalidCredentials: "Credenciais de login inválidas.", - continueWithGoogle: "Continuar com Google", - continueWithApple: "Continuar com Apple", - or: "ou", - startNow: "Comece agora", - startYourJourney: "Comece sua jornada em poucos passos.", - emailLabel: "E-mail", - emailPlaceholder: "email@dominio.com", - continueButton: "Continuar", - alreadyHaveAccount: "Já tem uma conta?", - accessNow: "Acesse agora", - selectUsername: "Escolha seu nome de usuário", - selectUsernameDescription: "Escolha seu nome de usuário e finalize seu cadastro para começar a usar a plataforma.", - usernamePlaceholder: "joao-silva", - finishSignUp: "Finalizar cadastro", - emailRequired: "Por favor, insira seu e-mail.", - emailInvalid: "Por favor, insira um e-mail válido.", - usernameRequired: "Por favor, insira um nome de usuário.", - emailAlreadyTaken: "Este e-mail já está em uso.", - usernameAlreadyTaken: "Este nome de usuário já está em uso.", - signUpSuccess: "Cadastro realizado com sucesso. Bem-vindo! 🎉" - ), - .esES: Strings( - loginLabel: "Correo electrónico o nombre de usuario", - loginPlaceholder: "Correo electrónico o nombre de usuario", - passwordLabel: "Contraseña", - passwordPlaceholder: "*********", - accessButton: "Acceder", - doNotHaveAccount: "¿No tienes una cuenta?", - createNow: "Crea una ahora", - loginRequired: "Por favor, introduce tu correo electrónico o nombre de usuario.", - passwordRequired: "Por favor, introduce tu contraseña.", - passwordLength: "Tu contraseña debe tener al menos 8 caracteres.", - invalidCredentials: "Credenciales de inicio de sesión no válidas.", - continueWithGoogle: "Continuar con Google", - continueWithApple: "Continuar con Apple", - or: "o", - startNow: "Empieza ahora", - startYourJourney: "Comienza tu viaje en unos pocos pasos.", - emailLabel: "Correo electrónico", - emailPlaceholder: "email@dominio.com", - continueButton: "Continuar", - alreadyHaveAccount: "¿Ya tienes una cuenta?", - accessNow: "Accede ahora", - selectUsername: "Selecciona tu nombre de usuario", - selectUsernameDescription: "Elige tu nombre de usuario y finaliza tu registro para comenzar a usar la plataforma.", - usernamePlaceholder: "juan-perez", - finishSignUp: "Finalizar registro", - emailRequired: "Por favor, introduce tu correo electrónico.", - emailInvalid: "Por favor, introduce un correo electrónico válido.", - usernameRequired: "Por favor, introduce un nombre de usuario.", - emailAlreadyTaken: "Este correo electrónico ya está en uso.", - usernameAlreadyTaken: "Este nombre de usuario ya está en uso.", - signUpSuccess: "Registro exitoso. ¡Bienvenido! 🎉" - ), - .frFR: Strings( - loginLabel: "E-mail ou nom d'utilisateur", - loginPlaceholder: "E-mail ou nom d'utilisateur", - passwordLabel: "Mot de passe", - passwordPlaceholder: "*********", - accessButton: "Accéder", - doNotHaveAccount: "Vous n'avez pas de compte?", - createNow: "Créez-en un maintenant", - loginRequired: "Veuillez entrer votre e-mail ou nom d'utilisateur.", - passwordRequired: "Veuillez entrer votre mot de passe.", - passwordLength: "Votre mot de passe doit contenir au moins 8 caractères.", - invalidCredentials: "Identifiants de connexion invalides.", - continueWithGoogle: "Continuer avec Google", - continueWithApple: "Continuer avec Apple", - or: "ou", - startNow: "Commencez maintenant", - startYourJourney: "Commencez votre voyage en quelques étapes.", - emailLabel: "E-mail", - emailPlaceholder: "email@domaine.com", - continueButton: "Continuer", - alreadyHaveAccount: "Vous avez déjà un compte?", - accessNow: "Connectez-vous", - selectUsername: "Choisissez votre nom d'utilisateur", - selectUsernameDescription: "Choisissez votre nom d'utilisateur et terminez votre inscription pour commencer à utiliser la plateforme.", - usernamePlaceholder: "jean-dupont", - finishSignUp: "Terminer l'inscription", - emailRequired: "Veuillez entrer votre e-mail.", - emailInvalid: "Veuillez entrer un e-mail valide.", - usernameRequired: "Veuillez entrer un nom d'utilisateur.", - emailAlreadyTaken: "Cet e-mail est déjà utilisé.", - usernameAlreadyTaken: "Ce nom d'utilisateur est déjà utilisé.", - signUpSuccess: "Inscription réussie. Bienvenue! 🎉" - ), - .deDE: Strings( - loginLabel: "E-Mail oder Benutzername", - loginPlaceholder: "E-Mail oder Benutzername", - passwordLabel: "Passwort", - passwordPlaceholder: "*********", - accessButton: "Zugreifen", - doNotHaveAccount: "Haben Sie kein Konto?", - createNow: "Jetzt erstellen", - loginRequired: "Bitte geben Sie Ihre E-Mail-Adresse oder Ihren Benutzernamen ein.", - passwordRequired: "Bitte geben Sie Ihr Passwort ein.", - passwordLength: "Ihr Passwort muss mindestens 8 Zeichen lang sein.", - invalidCredentials: "Ungültige Anmeldeinformationen.", - continueWithGoogle: "Weiter mit Google", - continueWithApple: "Weiter mit Apple", - or: "oder", - startNow: "Jetzt starten", - startYourJourney: "Beginnen Sie Ihre Reise in wenigen Schritten.", - emailLabel: "E-Mail", - emailPlaceholder: "email@domain.de", - continueButton: "Weiter", - alreadyHaveAccount: "Haben Sie bereits ein Konto?", - accessNow: "Jetzt anmelden", - selectUsername: "Wählen Sie Ihren Benutzernamen", - selectUsernameDescription: "Wählen Sie Ihren Benutzernamen und schließen Sie Ihre Registrierung ab, um die Plattform zu nutzen.", - usernamePlaceholder: "max-mustermann", - finishSignUp: "Registrierung abschließen", - emailRequired: "Bitte geben Sie Ihre E-Mail-Adresse ein.", - emailInvalid: "Bitte geben Sie eine gültige E-Mail-Adresse ein.", - usernameRequired: "Bitte geben Sie einen Benutzernamen ein.", - emailAlreadyTaken: "Diese E-Mail-Adresse wird bereits verwendet.", - usernameAlreadyTaken: "Dieser Benutzername ist bereits vergeben.", - signUpSuccess: "Registrierung erfolgreich. Willkommen! 🎉" - ), - .itIT: Strings( - loginLabel: "E-mail o nome utente", - loginPlaceholder: "E-mail o nome utente", - passwordLabel: "Password", - passwordPlaceholder: "*********", - accessButton: "Accedi", - doNotHaveAccount: "Non hai un account?", - createNow: "Crea ora", - loginRequired: "Inserisci il tuo indirizzo e-mail o nome utente.", - passwordRequired: "Inserisci la tua password.", - passwordLength: "La tua password deve contenere almeno 8 caratteri.", - invalidCredentials: "Credenziali di accesso non valide.", - continueWithGoogle: "Continua con Google", - continueWithApple: "Continua con Apple", - or: "o", - startNow: "Inizia ora", - startYourJourney: "Inizia il tuo viaggio in pochi passi.", - emailLabel: "E-mail", - emailPlaceholder: "email@dominio.com", - continueButton: "Continua", - alreadyHaveAccount: "Hai già un account?", - accessNow: "Accedi ora", - selectUsername: "Scegli il tuo nome utente", - selectUsernameDescription: "Scegli il tuo nome utente e completa la registrazione per iniziare a usare la piattaforma.", - usernamePlaceholder: "mario-rossi", - finishSignUp: "Completa registrazione", - emailRequired: "Inserisci la tua e-mail.", - emailInvalid: "Inserisci un'e-mail valida.", - usernameRequired: "Inserisci un nome utente.", - emailAlreadyTaken: "Questa email è già in uso.", - usernameAlreadyTaken: "Questo nome utente è già in uso.", - signUpSuccess: "Registrazione completata. Benvenuto! 🎉" - ), - .jaJP: Strings( - loginLabel: "メールアドレスまたはユーザー名", - loginPlaceholder: "メールアドレスまたはユーザー名", - passwordLabel: "パスワード", - passwordPlaceholder: "*********", - accessButton: "アクセス", - doNotHaveAccount: "アカウントをお持ちではありませんか?", - createNow: "今すぐ作成", - loginRequired: "メールアドレスまたはユーザー名を入力してください。", - passwordRequired: "パスワードを入力してください。", - passwordLength: "パスワードは8文字以上でなければなりません。", - invalidCredentials: "ログイン認証情報が無効です。", - continueWithGoogle: "Googleで続ける", - continueWithApple: "Appleで続ける", - or: "または", - startNow: "今すぐ始める", - startYourJourney: "数ステップで旅を始めましょう。", - emailLabel: "メールアドレス", - emailPlaceholder: "email@domain.com", - continueButton: "続ける", - alreadyHaveAccount: "すでにアカウントをお持ちですか?", - accessNow: "ログイン", - selectUsername: "ユーザー名を選択", - selectUsernameDescription: "ユーザー名を選択し、プラットフォームの利用を開始するためにサインアップを完了してください。", - usernamePlaceholder: "taro-yamada", - finishSignUp: "登録を完了", - emailRequired: "メールアドレスを入力してください。", - emailInvalid: "有効なメールアドレスを入力してください。", - usernameRequired: "ユーザー名を入力してください。", - emailAlreadyTaken: "このメールアドレスは既に使用されています。", - usernameAlreadyTaken: "このユーザー名は既に使用されています。", - signUpSuccess: "登録が完了しました。ようこそ!🎉" - ) - ] + static var current: Strings { strings[Language.current] ?? strings[.enUS]! } + + private static let strings: [Language: Strings] = [ + .enUS: Strings( + // Login + loginLabel: "Email or username", + loginPlaceholder: "Email or username", + passwordLabel: "Password", + passwordPlaceholder: "*********", + accessButton: "Access", + doNotHaveAccount: "Don't have an account?", + createNow: "Create now", + loginRequired: "Please enter your email or username.", + passwordRequired: "Please enter your password.", + passwordLength: "Your password must be at least 8 characters long.", + invalidCredentials: "Invalid login credentials.", + continueWithGoogle: "Continue with Google", + continueWithApple: "Continue with Apple", + or: "or", + // Sign Up + startNow: "Start now", + startYourJourney: "Start your journey in just a few steps.", + emailLabel: "Email", + emailPlaceholder: "email@domain.com", + continueButton: "Continue", + alreadyHaveAccount: "Already have an account?", + accessNow: "Access now", + selectUsername: "Select your username", + selectUsernameDescription: + "Choose your username and finish your sign-up to start using the platform.", + usernamePlaceholder: "john-doe", + finishSignUp: "Finish sign-up", + emailRequired: "Please enter your email.", + emailInvalid: "Please enter a valid email.", + usernameRequired: "Please enter a username.", + emailAlreadyTaken: "This email is already in use.", + usernameAlreadyTaken: "This username is already taken.", + signUpSuccess: "Registration successful. Welcome! 🎉", + // Search + searchPlaceholder: "Search movies, series, people...", + movies: "Movies", + tvSeries: "TV Series", + people: "People", + noResults: "No results found.", + cancel: "Cancel", + popularMovies: "Popular Movies", + popularTVSeries: "Popular TV Series", + settings: "Settings", + theme: "Theme", + themeSystem: "System", + themeLight: "Light", + themeDark: "Dark", + language: "Language", + done: "Done", + signOut: "Sign Out" + ), + .ptBR: Strings( + loginLabel: "E-mail ou nome de usuário", + loginPlaceholder: "E-mail ou nome de usuário", + passwordLabel: "Senha", + passwordPlaceholder: "*********", + accessButton: "Acessar", + doNotHaveAccount: "Não tem uma conta?", + createNow: "Crie agora", + loginRequired: "Por favor, insira seu e-mail ou nome de usuário.", + passwordRequired: "Por favor, insira sua senha.", + passwordLength: "Sua senha deve ter pelo menos 8 caracteres.", + invalidCredentials: "Credenciais de login inválidas.", + continueWithGoogle: "Continuar com Google", + continueWithApple: "Continuar com Apple", + or: "ou", + startNow: "Comece agora", + startYourJourney: "Comece sua jornada em poucos passos.", + emailLabel: "E-mail", + emailPlaceholder: "email@dominio.com", + continueButton: "Continuar", + alreadyHaveAccount: "Já tem uma conta?", + accessNow: "Acesse agora", + selectUsername: "Escolha seu nome de usuário", + selectUsernameDescription: + "Escolha seu nome de usuário e finalize seu cadastro para começar a usar a plataforma.", + usernamePlaceholder: "joao-silva", + finishSignUp: "Finalizar cadastro", + emailRequired: "Por favor, insira seu e-mail.", + emailInvalid: "Por favor, insira um e-mail válido.", + usernameRequired: "Por favor, insira um nome de usuário.", + emailAlreadyTaken: "Este e-mail já está em uso.", + usernameAlreadyTaken: "Este nome de usuário já está em uso.", + signUpSuccess: "Cadastro realizado com sucesso. Bem-vindo! 🎉", + searchPlaceholder: "Buscar filmes, séries, pessoas...", + movies: "Filmes", + tvSeries: "Séries de TV", + people: "Pessoas", + noResults: "Nenhum resultado encontrado.", + cancel: "Cancelar", + popularMovies: "Filmes Populares", + popularTVSeries: "Séries Populares", + settings: "Configurações", + theme: "Tema", + themeSystem: "Sistema", + themeLight: "Claro", + themeDark: "Escuro", + language: "Idioma", + done: "Concluído", + signOut: "Sair" + ), + .esES: Strings( + loginLabel: "Correo electrónico o nombre de usuario", + loginPlaceholder: "Correo electrónico o nombre de usuario", + passwordLabel: "Contraseña", + passwordPlaceholder: "*********", + accessButton: "Acceder", + doNotHaveAccount: "¿No tienes una cuenta?", + createNow: "Crea una ahora", + loginRequired: "Por favor, introduce tu correo electrónico o nombre de usuario.", + passwordRequired: "Por favor, introduce tu contraseña.", + passwordLength: "Tu contraseña debe tener al menos 8 caracteres.", + invalidCredentials: "Credenciales de inicio de sesión no válidas.", + continueWithGoogle: "Continuar con Google", + continueWithApple: "Continuar con Apple", + or: "o", + startNow: "Empieza ahora", + startYourJourney: "Comienza tu viaje en unos pocos pasos.", + emailLabel: "Correo electrónico", + emailPlaceholder: "email@dominio.com", + continueButton: "Continuar", + alreadyHaveAccount: "¿Ya tienes una cuenta?", + accessNow: "Accede ahora", + selectUsername: "Selecciona tu nombre de usuario", + selectUsernameDescription: + "Elige tu nombre de usuario y finaliza tu registro para comenzar a usar la plataforma.", + usernamePlaceholder: "juan-perez", + finishSignUp: "Finalizar registro", + emailRequired: "Por favor, introduce tu correo electrónico.", + emailInvalid: "Por favor, introduce un correo electrónico válido.", + usernameRequired: "Por favor, introduce un nombre de usuario.", + emailAlreadyTaken: "Este correo electrónico ya está en uso.", + usernameAlreadyTaken: "Este nombre de usuario ya está en uso.", + signUpSuccess: "Registro exitoso. ¡Bienvenido! 🎉", + searchPlaceholder: "Buscar películas, series, personas...", + movies: "Películas", + tvSeries: "Series de TV", + people: "Personas", + noResults: "No se encontraron resultados.", + cancel: "Cancelar", + popularMovies: "Películas Populares", + popularTVSeries: "Series Populares", + settings: "Configuración", + theme: "Tema", + themeSystem: "Sistema", + themeLight: "Claro", + themeDark: "Oscuro", + language: "Idioma", + done: "Listo", + signOut: "Cerrar sesión" + ), + .frFR: Strings( + loginLabel: "E-mail ou nom d'utilisateur", + loginPlaceholder: "E-mail ou nom d'utilisateur", + passwordLabel: "Mot de passe", + passwordPlaceholder: "*********", + accessButton: "Accéder", + doNotHaveAccount: "Vous n'avez pas de compte?", + createNow: "Créez-en un maintenant", + loginRequired: "Veuillez entrer votre e-mail ou nom d'utilisateur.", + passwordRequired: "Veuillez entrer votre mot de passe.", + passwordLength: "Votre mot de passe doit contenir au moins 8 caractères.", + invalidCredentials: "Identifiants de connexion invalides.", + continueWithGoogle: "Continuer avec Google", + continueWithApple: "Continuer avec Apple", + or: "ou", + startNow: "Commencez maintenant", + startYourJourney: "Commencez votre voyage en quelques étapes.", + emailLabel: "E-mail", + emailPlaceholder: "email@domaine.com", + continueButton: "Continuer", + alreadyHaveAccount: "Vous avez déjà un compte?", + accessNow: "Connectez-vous", + selectUsername: "Choisissez votre nom d'utilisateur", + selectUsernameDescription: + "Choisissez votre nom d'utilisateur et terminez votre inscription pour commencer à utiliser la plateforme.", + usernamePlaceholder: "jean-dupont", + finishSignUp: "Terminer l'inscription", + emailRequired: "Veuillez entrer votre e-mail.", + emailInvalid: "Veuillez entrer un e-mail valide.", + usernameRequired: "Veuillez entrer un nom d'utilisateur.", + emailAlreadyTaken: "Cet e-mail est déjà utilisé.", + usernameAlreadyTaken: "Ce nom d'utilisateur est déjà utilisé.", + signUpSuccess: "Inscription réussie. Bienvenue! 🎉", + searchPlaceholder: "Rechercher films, séries, personnes...", + movies: "Films", + tvSeries: "Séries TV", + people: "Personnes", + noResults: "Aucun résultat trouvé.", + cancel: "Annuler", + popularMovies: "Films Populaires", + popularTVSeries: "Séries Populaires", + settings: "Paramètres", + theme: "Thème", + themeSystem: "Système", + themeLight: "Clair", + themeDark: "Sombre", + language: "Langue", + done: "Terminé", + signOut: "Déconnexion" + ), + .deDE: Strings( + loginLabel: "E-Mail oder Benutzername", + loginPlaceholder: "E-Mail oder Benutzername", + passwordLabel: "Passwort", + passwordPlaceholder: "*********", + accessButton: "Zugreifen", + doNotHaveAccount: "Haben Sie kein Konto?", + createNow: "Jetzt erstellen", + loginRequired: "Bitte geben Sie Ihre E-Mail-Adresse oder Ihren Benutzernamen ein.", + passwordRequired: "Bitte geben Sie Ihr Passwort ein.", + passwordLength: "Ihr Passwort muss mindestens 8 Zeichen lang sein.", + invalidCredentials: "Ungültige Anmeldeinformationen.", + continueWithGoogle: "Weiter mit Google", + continueWithApple: "Weiter mit Apple", + or: "oder", + startNow: "Jetzt starten", + startYourJourney: "Beginnen Sie Ihre Reise in wenigen Schritten.", + emailLabel: "E-Mail", + emailPlaceholder: "email@domain.de", + continueButton: "Weiter", + alreadyHaveAccount: "Haben Sie bereits ein Konto?", + accessNow: "Jetzt anmelden", + selectUsername: "Wählen Sie Ihren Benutzernamen", + selectUsernameDescription: + "Wählen Sie Ihren Benutzernamen und schließen Sie Ihre Registrierung ab, um die Plattform zu nutzen.", + usernamePlaceholder: "max-mustermann", + finishSignUp: "Registrierung abschließen", + emailRequired: "Bitte geben Sie Ihre E-Mail-Adresse ein.", + emailInvalid: "Bitte geben Sie eine gültige E-Mail-Adresse ein.", + usernameRequired: "Bitte geben Sie einen Benutzernamen ein.", + emailAlreadyTaken: "Diese E-Mail-Adresse wird bereits verwendet.", + usernameAlreadyTaken: "Dieser Benutzername ist bereits vergeben.", + signUpSuccess: "Registrierung erfolgreich. Willkommen! 🎉", + searchPlaceholder: "Filme, Serien, Personen suchen...", + movies: "Filme", + tvSeries: "TV-Serien", + people: "Personen", + noResults: "Keine Ergebnisse gefunden.", + cancel: "Abbrechen", + popularMovies: "Beliebte Filme", + popularTVSeries: "Beliebte Serien", + settings: "Einstellungen", + theme: "Design", + themeSystem: "System", + themeLight: "Hell", + themeDark: "Dunkel", + language: "Sprache", + done: "Fertig", + signOut: "Abmelden" + ), + .itIT: Strings( + loginLabel: "E-mail o nome utente", + loginPlaceholder: "E-mail o nome utente", + passwordLabel: "Password", + passwordPlaceholder: "*********", + accessButton: "Accedi", + doNotHaveAccount: "Non hai un account?", + createNow: "Crea ora", + loginRequired: "Inserisci il tuo indirizzo e-mail o nome utente.", + passwordRequired: "Inserisci la tua password.", + passwordLength: "La tua password deve contenere almeno 8 caratteri.", + invalidCredentials: "Credenziali di accesso non valide.", + continueWithGoogle: "Continua con Google", + continueWithApple: "Continua con Apple", + or: "o", + startNow: "Inizia ora", + startYourJourney: "Inizia il tuo viaggio in pochi passi.", + emailLabel: "E-mail", + emailPlaceholder: "email@dominio.com", + continueButton: "Continua", + alreadyHaveAccount: "Hai già un account?", + accessNow: "Accedi ora", + selectUsername: "Scegli il tuo nome utente", + selectUsernameDescription: + "Scegli il tuo nome utente e completa la registrazione per iniziare a usare la piattaforma.", + usernamePlaceholder: "mario-rossi", + finishSignUp: "Completa registrazione", + emailRequired: "Inserisci la tua e-mail.", + emailInvalid: "Inserisci un'e-mail valida.", + usernameRequired: "Inserisci un nome utente.", + emailAlreadyTaken: "Questa email è già in uso.", + usernameAlreadyTaken: "Questo nome utente è già in uso.", + signUpSuccess: "Registrazione completata. Benvenuto! 🎉", + searchPlaceholder: "Cerca film, serie, persone...", + movies: "Film", + tvSeries: "Serie TV", + people: "Persone", + noResults: "Nessun risultato trovato.", + cancel: "Annulla", + popularMovies: "Film Popolari", + popularTVSeries: "Serie Popolari", + settings: "Impostazioni", + theme: "Tema", + themeSystem: "Sistema", + themeLight: "Chiaro", + themeDark: "Scuro", + language: "Lingua", + done: "Fatto", + signOut: "Esci" + ), + .jaJP: Strings( + loginLabel: "メールアドレスまたはユーザー名", + loginPlaceholder: "メールアドレスまたはユーザー名", + passwordLabel: "パスワード", + passwordPlaceholder: "*********", + accessButton: "アクセス", + doNotHaveAccount: "アカウントをお持ちではありませんか?", + createNow: "今すぐ作成", + loginRequired: "メールアドレスまたはユーザー名を入力してください。", + passwordRequired: "パスワードを入力してください。", + passwordLength: "パスワードは8文字以上でなければなりません。", + invalidCredentials: "ログイン認証情報が無効です。", + continueWithGoogle: "Googleで続ける", + continueWithApple: "Appleで続ける", + or: "または", + startNow: "今すぐ始める", + startYourJourney: "数ステップで旅を始めましょう。", + emailLabel: "メールアドレス", + emailPlaceholder: "email@domain.com", + continueButton: "続ける", + alreadyHaveAccount: "すでにアカウントをお持ちですか?", + accessNow: "ログイン", + selectUsername: "ユーザー名を選択", + selectUsernameDescription: "ユーザー名を選択し、プラットフォームの利用を開始するためにサインアップを完了してください。", + usernamePlaceholder: "taro-yamada", + finishSignUp: "登録を完了", + emailRequired: "メールアドレスを入力してください。", + emailInvalid: "有効なメールアドレスを入力してください。", + usernameRequired: "ユーザー名を入力してください。", + emailAlreadyTaken: "このメールアドレスは既に使用されています。", + usernameAlreadyTaken: "このユーザー名は既に使用されています。", + signUpSuccess: "登録が完了しました。ようこそ!🎉", + searchPlaceholder: "映画、シリーズ、人物を検索...", + movies: "映画", + tvSeries: "テレビシリーズ", + people: "人物", + noResults: "結果が見つかりません。", + cancel: "キャンセル", + popularMovies: "人気の映画", + popularTVSeries: "人気のテレビシリーズ", + settings: "設定", + theme: "テーマ", + themeSystem: "システム", + themeLight: "ライト", + themeDark: "ダーク", + language: "言語", + done: "完了", + signOut: "サインアウト" + ), + ] } struct Strings { - // Login - let loginLabel: String - let loginPlaceholder: String - let passwordLabel: String - let passwordPlaceholder: String - let accessButton: String - let doNotHaveAccount: String - let createNow: String - let loginRequired: String - let passwordRequired: String - let passwordLength: String - let invalidCredentials: String - let continueWithGoogle: String - let continueWithApple: String - let or: String - // Sign Up - let startNow: String - let startYourJourney: String - let emailLabel: String - let emailPlaceholder: String - let continueButton: String - let alreadyHaveAccount: String - let accessNow: String - let selectUsername: String - let selectUsernameDescription: String - let usernamePlaceholder: String - let finishSignUp: String - let emailRequired: String - let emailInvalid: String - let usernameRequired: String - let emailAlreadyTaken: String - let usernameAlreadyTaken: String - let signUpSuccess: String + // Login + let loginLabel: String + let loginPlaceholder: String + let passwordLabel: String + let passwordPlaceholder: String + let accessButton: String + let doNotHaveAccount: String + let createNow: String + let loginRequired: String + let passwordRequired: String + let passwordLength: String + let invalidCredentials: String + let continueWithGoogle: String + let continueWithApple: String + let or: String + // Sign Up + let startNow: String + let startYourJourney: String + let emailLabel: String + let emailPlaceholder: String + let continueButton: String + let alreadyHaveAccount: String + let accessNow: String + let selectUsername: String + let selectUsernameDescription: String + let usernamePlaceholder: String + let finishSignUp: String + let emailRequired: String + let emailInvalid: String + let usernameRequired: String + let emailAlreadyTaken: String + let usernameAlreadyTaken: String + let signUpSuccess: String + // Search + let searchPlaceholder: String + let movies: String + let tvSeries: String + let people: String + let noResults: String + let cancel: String + let popularMovies: String + let popularTVSeries: String + // Settings + let settings: String + let theme: String + let themeSystem: String + let themeLight: String + let themeDark: String + let language: String + let done: String + let signOut: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift index 402d4649..bfd6e5b4 100644 --- a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift @@ -102,6 +102,28 @@ class AuthService { return http.statusCode == 200 } + // MARK: - Get Current User + func getCurrentUser() async throws -> User { + guard let token = UserDefaults.standard.string(forKey: "token"), + let url = URL(string: "\(API.baseURL)/me") + else { + throw AuthError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw AuthError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return try decoder.decode(User.self, from: data) + } + // MARK: - Sign Out func signOut() { UserDefaults.standard.removeObject(forKey: "token") @@ -113,6 +135,14 @@ class AuthService { } } +// MARK: - Models +struct User: Codable { + let id: String + let username: String + let email: String + let imagePath: String? +} + struct LoginResponse: Codable { let token: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift new file mode 100644 index 00000000..f0dd8fad --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -0,0 +1,167 @@ +// +// TMDBService.swift +// Plotwist +// + +import Foundation + +class TMDBService { + static let shared = TMDBService() + private init() {} + + private let baseURL = "https://api.themoviedb.org/3" + private let apiKey = + "eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiI5MGYyYjQyNWU1ZmYxYjgwMWVkOWRjY2Y0YmFmYWRkZSIsIm5iZiI6MTYyNjQ3OTE5Ny41MjYsInN1YiI6IjYwZjIxYTVkN2Q1ZGI1MDAyZmM5MTNiMyIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.HblE_tHKIktjGrwEONxxZFgPGwxNkwKSZEwC24WIrzM" // TODO: Replace with actual API key + + // MARK: - Search Multi + func searchMulti(query: String, language: String = "en-US") async throws -> SearchMultiResponse { + guard !query.isEmpty else { + return SearchMultiResponse(results: []) + } + + guard let encodedQuery = query.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed), + let url = URL(string: "\(baseURL)/search/multi?query=\(encodedQuery)&language=\(language)") + else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return try decoder.decode(SearchMultiResponse.self, from: data) + } + + // MARK: - Popular Movies + func getPopularMovies(language: String = "en-US") async throws -> [SearchResult] { + guard let url = URL(string: "\(baseURL)/movie/popular?language=\(language)") else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return result.results.map { $0.toSearchResult(mediaType: "movie") } + } + + // MARK: - Popular TV Series + func getPopularTVSeries(language: String = "en-US") async throws -> [SearchResult] { + guard let url = URL(string: "\(baseURL)/tv/popular?language=\(language)") else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return result.results.map { $0.toSearchResult(mediaType: "tv") } + } +} + +// MARK: - Popular Response +struct PopularResponse: Codable { + let results: [PopularItem] +} + +struct PopularItem: Codable { + let id: Int + let title: String? + let name: String? + let posterPath: String? + let releaseDate: String? + let firstAirDate: String? + let overview: String? + let voteAverage: Double? + + func toSearchResult(mediaType: String) -> SearchResult { + SearchResult( + id: id, + mediaType: mediaType, + title: title, + name: name, + posterPath: posterPath, + profilePath: nil, + releaseDate: releaseDate, + firstAirDate: firstAirDate, + overview: overview, + voteAverage: voteAverage, + knownForDepartment: nil + ) + } +} + +// MARK: - Response Models +struct SearchMultiResponse: Codable { + let results: [SearchResult] +} + +struct SearchResult: Codable, Identifiable { + let id: Int + let mediaType: String? + let title: String? + let name: String? + let posterPath: String? + let profilePath: String? + let releaseDate: String? + let firstAirDate: String? + let overview: String? + let voteAverage: Double? + let knownForDepartment: String? + + var displayTitle: String { + title ?? name ?? "Unknown" + } + + var displayDate: String? { + releaseDate ?? firstAirDate + } + + var year: String? { + guard let date = displayDate, date.count >= 4 else { return nil } + return String(date.prefix(4)) + } + + var imageURL: URL? { + let path = posterPath ?? profilePath + guard let path else { return nil } + return URL(string: "https://image.tmdb.org/t/p/w200\(path)") + } +} + +enum TMDBError: LocalizedError { + case invalidURL, invalidResponse + + var errorDescription: String? { + switch self { + case .invalidURL: return "Invalid URL" + case .invalidResponse: return "Invalid response" + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift index a966ddc4..3e3c4320 100644 --- a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -6,35 +6,54 @@ import SwiftUI extension Color { - // MARK: - Adaptive Colors (Light/Dark mode) - - static var appBackgroundAdaptive: Color { - Color(UIColor { $0.userInterfaceStyle == .dark - ? UIColor(hue: 240/360, saturation: 0.10, brightness: 0.039, alpha: 1) - : UIColor(hue: 0, saturation: 0, brightness: 1, alpha: 1) - }) - } - - static var appForegroundAdaptive: Color { - Color(UIColor { $0.userInterfaceStyle == .dark - ? UIColor(hue: 0, saturation: 0, brightness: 0.98, alpha: 1) - : UIColor(hue: 240/360, saturation: 0.10, brightness: 0.039, alpha: 1) - }) - } - - static var appBorderAdaptive: Color { - Color(UIColor { $0.userInterfaceStyle == .dark - ? UIColor(hue: 240/360, saturation: 0.037, brightness: 0.159, alpha: 1) - : UIColor(hue: 240/360, saturation: 0.059, brightness: 0.90, alpha: 1) - }) - } - - static var appMutedForegroundAdaptive: Color { - Color(UIColor { $0.userInterfaceStyle == .dark - ? UIColor(hue: 240/360, saturation: 0.05, brightness: 0.649, alpha: 1) - : UIColor(hue: 240/360, saturation: 0.038, brightness: 0.461, alpha: 1) - }) - } - - static let appDestructive = Color(hue: 0, saturation: 0.842, brightness: 0.602) + // MARK: - Adaptive Colors (Light/Dark mode) + + // #09090B for dark mode, white for light mode + static var appBackgroundAdaptive: Color { + Color( + UIColor { + $0.userInterfaceStyle == .dark + ? UIColor(red: 9 / 255, green: 9 / 255, blue: 11 / 255, alpha: 1) + : UIColor(hue: 0, saturation: 0, brightness: 1, alpha: 1) + }) + } + + static var appForegroundAdaptive: Color { + Color( + UIColor { + $0.userInterfaceStyle == .dark + ? UIColor(hue: 0, saturation: 0, brightness: 0.98, alpha: 1) + : UIColor(hue: 240 / 360, saturation: 0.10, brightness: 0.039, alpha: 1) + }) + } + + static var appBorderAdaptive: Color { + Color( + UIColor { + $0.userInterfaceStyle == .dark + ? UIColor(hue: 240 / 360, saturation: 0.037, brightness: 0.159, alpha: 1) + : UIColor(hue: 240 / 360, saturation: 0.059, brightness: 0.90, alpha: 1) + }) + } + + static var appMutedForegroundAdaptive: Color { + Color( + UIColor { + $0.userInterfaceStyle == .dark + ? UIColor(hue: 240 / 360, saturation: 0.05, brightness: 0.649, alpha: 1) + : UIColor(hue: 240 / 360, saturation: 0.038, brightness: 0.461, alpha: 1) + }) + } + + // #F3F4F6 for light mode, darker for dark mode + static var appInputFilled: Color { + Color( + UIColor { + $0.userInterfaceStyle == .dark + ? UIColor(hue: 220 / 360, saturation: 0.06, brightness: 0.14, alpha: 1) + : UIColor(red: 243 / 255, green: 244 / 255, blue: 246 / 255, alpha: 1) + }) + } + + static let appDestructive = Color(hue: 0, saturation: 0.842, brightness: 0.602) } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index 3b9bb40b..d566f80d 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -6,92 +6,589 @@ import SwiftUI struct HomeView: View { - @State private var selectedTab = 0 - - var body: some View { - TabView(selection: $selectedTab) { - HomeTabView() - .tabItem { - Image(systemName: "house.fill") - } - .tag(0) - - SearchTabView() - .tabItem { - Image(systemName: "magnifyingglass") - } - .tag(1) - - ProfileTabView() - .tabItem { - Image(systemName: "person.fill") - } - .tag(2) + @State private var selectedTab = 0 + + var body: some View { + TabView(selection: $selectedTab) { + HomeTabView() + .tabItem { + Image(systemName: "house.fill") + } + .tag(0) + + SearchTabView() + .tabItem { + Image(systemName: "magnifyingglass") + } + .tag(1) + + ProfileTabView() + .tabItem { + Image(systemName: "person.fill") } - .tint(.appForegroundAdaptive) + .tag(2) } + .tint(.appForegroundAdaptive) + .onAppear { + let appearance = UITabBarAppearance() + appearance.configureWithOpaqueBackground() + appearance.shadowColor = UIColor(Color.appBorderAdaptive) + appearance.stackedLayoutAppearance.normal.iconColor = UIColor( + Color.appMutedForegroundAdaptive) + appearance.stackedLayoutAppearance.selected.iconColor = UIColor(Color.appForegroundAdaptive) + + // Add vertical padding to icons - move them down from top border + let iconOffset = UIOffset(horizontal: 0, vertical: 4) + appearance.stackedLayoutAppearance.normal.titlePositionAdjustment = iconOffset + appearance.stackedLayoutAppearance.selected.titlePositionAdjustment = iconOffset + + UITabBar.appearance().standardAppearance = appearance + UITabBar.appearance().scrollEdgeAppearance = appearance + } + .safeAreaInset(edge: .bottom) { + Color.clear.frame(height: 24) + } + } } // MARK: - Home Tab struct HomeTabView: View { - var body: some View { - NavigationView { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - Text("Home") - .font(.title2) - .foregroundColor(.appMutedForegroundAdaptive) - } - .navigationBarHidden(true) - } + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + Text("Home") + .font(.title2) + .foregroundColor(.appMutedForegroundAdaptive) + } + .navigationBarHidden(true) } + } } // MARK: - Search Tab struct SearchTabView: View { - var body: some View { - NavigationView { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - Text("Search") - .font(.title2) - .foregroundColor(.appMutedForegroundAdaptive) + @State private var searchText = "" + @State private var results: [SearchResult] = [] + @State private var popularMovies: [SearchResult] = [] + @State private var popularTVSeries: [SearchResult] = [] + @State private var isLoading = false + @State private var isLoadingPopular = true + @State private var strings = L10n.current + @State private var searchTask: Task? + + private var movies: [SearchResult] { + results.filter { $0.mediaType == "movie" } + } + + private var tvSeries: [SearchResult] { + results.filter { $0.mediaType == "tv" } + } + + private var people: [SearchResult] { + results.filter { $0.mediaType == "person" } + } + + private var isSearching: Bool { + !searchText.isEmpty + } + + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Search Header + VStack(spacing: 0) { + HStack(spacing: 12) { + HStack(spacing: 12) { + Image(systemName: "magnifyingglass") + .foregroundColor(.appMutedForegroundAdaptive) + + TextField(strings.searchPlaceholder, text: $searchText) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + } + .padding(12) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 12)) + + if !searchText.isEmpty { + Button { + withAnimation(.easeInOut(duration: 0.2)) { + searchText = "" + results = [] + } + } label: { + Text(strings.cancel) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + } + .transition(.opacity.combined(with: .move(edge: .trailing))) + } } - .navigationBarHidden(true) + .animation(.easeInOut(duration: 0.2), value: searchText.isEmpty) + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + } + + // Results + if isLoading || isLoadingPopular { + ScrollView { + LazyVStack(alignment: .leading, spacing: 24) { + SearchSkeletonSection() + SearchSkeletonSection() + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } else if isSearching { + if results.isEmpty { + Spacer() + Text(strings.noResults) + .foregroundColor(.appMutedForegroundAdaptive) + Spacer() + } else { + ScrollView { + LazyVStack(alignment: .leading, spacing: 24) { + if !movies.isEmpty { + SearchSection(title: strings.movies, results: movies) + } + + if !tvSeries.isEmpty { + SearchSection(title: strings.tvSeries, results: tvSeries) + } + + if !people.isEmpty { + SearchSection(title: strings.people, results: people) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } + } else { + // Show popular content + ScrollView { + LazyVStack(alignment: .leading, spacing: 24) { + if !popularMovies.isEmpty { + SearchSection(title: strings.popularMovies, results: popularMovies) + } + + if !popularTVSeries.isEmpty { + SearchSection(title: strings.popularTVSeries, results: popularTVSeries) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } + } + } + .navigationBarHidden(true) + } + .task { + await loadPopularContent() + } + .onChange(of: searchText) { newValue in + searchTask?.cancel() + searchTask = Task { + try? await Task.sleep(nanoseconds: 500_000_000) // 500ms debounce + guard !Task.isCancelled else { return } + await performSearch(query: newValue) + } + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func loadPopularContent() async { + isLoadingPopular = true + defer { isLoadingPopular = false } + + let language = Language.current.rawValue + + async let moviesTask = TMDBService.shared.getPopularMovies(language: language) + async let tvTask = TMDBService.shared.getPopularTVSeries(language: language) + + do { + let (movies, tv) = try await (moviesTask, tvTask) + popularMovies = movies + popularTVSeries = tv + } catch { + popularMovies = [] + popularTVSeries = [] + } + } + + private func performSearch(query: String) async { + guard !query.isEmpty else { + results = [] + return + } + + isLoading = true + defer { isLoading = false } + + do { + let response = try await TMDBService.shared.searchMulti( + query: query, + language: Language.current.rawValue + ) + results = response.results + } catch { + results = [] + } + } +} + +// MARK: - Search Section +struct SearchSection: View { + let title: String + let results: [SearchResult] + + private let columns = [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ] + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + Text(title) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + LazyVGrid(columns: columns, spacing: 12) { + ForEach(results.prefix(9)) { result in + PosterCard(result: result) } + } } + } +} + +// MARK: - Poster Card +struct PosterCard: View { + let result: SearchResult + + var body: some View { + AsyncImage(url: result.imageURL) { phase in + switch phase { + case .empty: + RoundedRectangle(cornerRadius: 8) + .fill(Color.appBorderAdaptive) + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + case .failure: + RoundedRectangle(cornerRadius: 8) + .fill(Color.appBorderAdaptive) + .overlay( + Image(systemName: result.mediaType == "person" ? "person.fill" : "film") + .foregroundColor(.appMutedForegroundAdaptive) + ) + @unknown default: + RoundedRectangle(cornerRadius: 8) + .fill(Color.appBorderAdaptive) + } + } + .aspectRatio(2 / 3, contentMode: .fit) + .clipShape(RoundedRectangle(cornerRadius: 8)) + .shadow(color: Color.black.opacity(0.15), radius: 4, x: 0, y: 2) + } +} + +// MARK: - Skeleton Loading +struct SearchSkeletonSection: View { + private let columns = [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ] + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + // Title skeleton + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(width: 80, height: 16) + .shimmer() + + LazyVGrid(columns: columns, spacing: 12) { + ForEach(0..<6, id: \.self) { _ in + PosterSkeletonCard() + } + } + } + } +} + +struct PosterSkeletonCard: View { + var body: some View { + RoundedRectangle(cornerRadius: 8) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() + } +} + +// MARK: - Shimmer Effect +struct ShimmerModifier: ViewModifier { + @State private var phase: CGFloat = 0 + + func body(content: Content) -> some View { + content + .overlay( + GeometryReader { geometry in + LinearGradient( + gradient: Gradient(colors: [ + Color.clear, + Color.white.opacity(0.3), + Color.clear, + ]), + startPoint: .leading, + endPoint: .trailing + ) + .frame(width: geometry.size.width * 2) + .offset(x: -geometry.size.width + (geometry.size.width * 2 * phase)) + } + .mask(content) + ) + .onAppear { + withAnimation(.linear(duration: 1.5).repeatForever(autoreverses: false)) { + phase = 1 + } + } + } +} + +extension View { + func shimmer() -> some View { + modifier(ShimmerModifier()) + } } // MARK: - Profile Tab struct ProfileTabView: View { - var body: some View { - NavigationView { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - VStack(spacing: 24) { - Text("Profile") - .font(.title2) - .foregroundColor(.appMutedForegroundAdaptive) - - Button { - AuthService.shared.signOut() - } label: { - HStack { - Image(systemName: "rectangle.portrait.and.arrow.right") - Text("Sign Out") - } - .foregroundColor(.appDestructive) - } + @State private var user: User? + @State private var isLoading = true + @State private var showSettings = false + @State private var strings = L10n.current + + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header with settings button + HStack { + Spacer() + Button { + showSettings = true + } label: { + Image(systemName: "gearshape") + .font(.system(size: 18)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 44, height: 44) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + } + .padding(.horizontal, 24) + .padding(.top, 8) + + Spacer() + + if isLoading { + ProgressView() + } else if let user { + VStack(spacing: 16) { + // Avatar placeholder + Circle() + .fill(Color.appInputFilled) + .frame(width: 80, height: 80) + .overlay( + Text(String(user.username.prefix(1)).uppercased()) + .font(.title.bold()) + .foregroundColor(.appForegroundAdaptive) + ) + + Text("@\(user.username)") + .font(.title2.bold()) + .foregroundColor(.appForegroundAdaptive) + } + } + + Spacer() + + // Sign out button + Button { + AuthService.shared.signOut() + } label: { + HStack { + Image(systemName: "rectangle.portrait.and.arrow.right") + Text(strings.signOut) + } + .foregroundColor(.appDestructive) + } + .padding(.bottom, 32) + } + } + .navigationBarHidden(true) + } + .task { + await loadUser() + } + .sheet(isPresented: $showSettings) { + SettingsSheet() + .presentationDetents([.medium]) + .presentationDragIndicator(.visible) + .presentationCornerRadius(24) + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func loadUser() async { + isLoading = true + defer { isLoading = false } + + do { + user = try await AuthService.shared.getCurrentUser() + } catch { + user = nil + } + } +} + +// MARK: - Settings Sheet +struct SettingsSheet: View { + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 32) { + // Header + Text(strings.settings) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + .padding(.top, 8) + + // Theme Picker + VStack(alignment: .leading, spacing: 12) { + Text(strings.theme) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + + HStack(spacing: 12) { + ForEach(AppTheme.allCases, id: \.self) { theme in + ThemeOptionButton( + theme: theme, + isSelected: themeManager.current == theme, + label: themeDisplayName(theme) + ) { + themeManager.current = theme + } + } + } + } + + // Language Picker + VStack(alignment: .leading, spacing: 12) { + Text(strings.language) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + + Menu { + ForEach(Language.allCases, id: \.self) { lang in + Button { + Language.current = lang + } label: { + HStack { + Text(lang.displayName) + if Language.current == lang { + Image(systemName: "checkmark") + } } + } } - .navigationBarHidden(true) + } label: { + HStack { + Text(Language.current.displayName) + Spacer() + Image(systemName: "chevron.down") + } + .padding(12) + .foregroundColor(.appForegroundAdaptive) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 12)) + } } + + Spacer() + } + .padding(.horizontal, 24) + .padding(.top, 16) + } + .preferredColorScheme(effectiveColorScheme) + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func themeDisplayName(_ theme: AppTheme) -> String { + switch theme { + case .system: return strings.themeSystem + case .light: return strings.themeLight + case .dark: return strings.themeDark + } + } +} + +// MARK: - Theme Option Button +struct ThemeOptionButton: View { + let theme: AppTheme + let isSelected: Bool + let label: String + let action: () -> Void + + var body: some View { + Button(action: action) { + VStack(spacing: 8) { + Image(systemName: theme.icon) + .font(.system(size: 20)) + + Text(label) + .font(.caption) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 16) + .foregroundColor(isSelected ? .appForegroundAdaptive : .appMutedForegroundAdaptive) + .background(isSelected ? Color.appInputFilled : Color.clear) + .clipShape(RoundedRectangle(cornerRadius: 12)) } + } } #Preview { - HomeView() + HomeView() } From 4f3f12863cf474222120f5812da1587d66717f97 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 10 Jan 2026 18:22:15 -0300 Subject: [PATCH 11/77] feat(ui): add movie and TV series detail views with asynchronous data loading --- .../Plotwist/Services/TMDBService.swift | 96 +++++++++ .../Views/Details/MediaDetailView.swift | 196 ++++++++++++++++++ .../Plotwist/Views/Home/HomeView.swift | 30 ++- 3 files changed, 314 insertions(+), 8 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index f0dd8fad..617e1c14 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -83,6 +83,102 @@ class TMDBService { let result = try decoder.decode(PopularResponse.self, from: data) return result.results.map { $0.toSearchResult(mediaType: "tv") } } + + // MARK: - Movie Details + func getMovieDetails(id: Int, language: String = "en-US") async throws -> MovieDetails { + guard let url = URL(string: "\(baseURL)/movie/\(id)?language=\(language)") else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return try decoder.decode(MovieDetails.self, from: data) + } + + // MARK: - TV Series Details + func getTVSeriesDetails(id: Int, language: String = "en-US") async throws -> MovieDetails { + guard let url = URL(string: "\(baseURL)/tv/\(id)?language=\(language)") else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return try decoder.decode(MovieDetails.self, from: data) + } +} + +// MARK: - Movie Details Model +struct MovieDetails: Codable, Identifiable { + let id: Int + let title: String? + let name: String? + let overview: String? + let posterPath: String? + let backdropPath: String? + let releaseDate: String? + let firstAirDate: String? + let voteAverage: Double? + let runtime: Int? + let genres: [Genre]? + + var displayTitle: String { + title ?? name ?? "Unknown" + } + + var year: String? { + let date = releaseDate ?? firstAirDate + guard let date, date.count >= 4 else { return nil } + return String(date.prefix(4)) + } + + func formattedReleaseDate(locale: String) -> String? { + let dateString = releaseDate ?? firstAirDate + guard let dateString else { return nil } + + let formatter = DateFormatter() + formatter.dateFormat = "yyyy-MM-dd" + guard let date = formatter.date(from: dateString) else { return nil } + + let outputFormatter = DateFormatter() + outputFormatter.dateStyle = .long + outputFormatter.locale = Locale(identifier: locale.replacingOccurrences(of: "-", with: "_")) + return outputFormatter.string(from: date) + } + + var posterURL: URL? { + guard let posterPath else { return nil } + return URL(string: "https://image.tmdb.org/t/p/w500\(posterPath)") + } + + var backdropURL: URL? { + guard let backdropPath else { return nil } + return URL(string: "https://image.tmdb.org/t/p/w1280\(backdropPath)") + } +} + +struct Genre: Codable, Identifiable { + let id: Int + let name: String } // MARK: - Popular Response diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift new file mode 100644 index 00000000..73ff6c66 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -0,0 +1,196 @@ +// +// MediaDetailView.swift +// Plotwist +// + +import SwiftUI + +struct MediaDetailView: View { + let mediaId: Int + let mediaType: String + + @Environment(\.dismiss) private var dismiss + @State private var details: MovieDetails? + @State private var isLoading = true + @ObservedObject private var themeManager = ThemeManager.shared + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + if isLoading { + ProgressView() + } else if let details { + ScrollView(showsIndicators: false) { + VStack(alignment: .leading, spacing: 0) { + // Backdrop + ZStack(alignment: .topLeading) { + AsyncImage(url: details.backdropURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appBorderAdaptive) + } + } + .frame(height: 240) + .frame(maxWidth: .infinity) + .clipped() + + // Back button + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.white) + .frame(width: 40, height: 40) + .background(.ultraThinMaterial) + .clipShape(Circle()) + } + .padding(.top, 60) + .padding(.leading, 24) + } + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1), + alignment: .bottom + ) + + // Content with poster overlap + HStack(alignment: .bottom, spacing: 16) { + // Poster + AsyncImage(url: details.posterURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + } + } + .frame(width: 140, height: 210) + .clipShape(RoundedRectangle(cornerRadius: 16)) + .shadow(color: Color.black.opacity(0.3), radius: 8, x: 0, y: 4) + + // Info + VStack(alignment: .leading, spacing: 4) { + if let releaseDate = details.formattedReleaseDate(locale: Language.current.rawValue) + { + Text(releaseDate) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + + Text(details.displayTitle) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + } + + Spacer() + } + .padding(.horizontal, 24) + .offset(y: -70) + + // Overview + if let overview = details.overview, !overview.isEmpty { + Text(overview) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .lineSpacing(4) + .padding(.horizontal, 24) + .padding(.top, -54) + } + + // Genres and Rating Badges + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 8) { + if let genres = details.genres { + ForEach(genres) { genre in + BadgeView(text: genre.name) + } + } + + if let rating = details.voteAverage, rating > 0 { + RatingBadge(rating: rating) + } + } + .padding(.horizontal, 24) + } + .padding(.top, 16) + } + .padding(.bottom, 100) + } + .ignoresSafeArea(edges: .top) + } + } + .navigationBarHidden(true) + .preferredColorScheme(themeManager.current.colorScheme) + .task { + await loadDetails() + } + } + + private func loadDetails() async { + isLoading = true + defer { isLoading = false } + + do { + if mediaType == "movie" { + details = try await TMDBService.shared.getMovieDetails( + id: mediaId, + language: Language.current.rawValue + ) + } else { + details = try await TMDBService.shared.getTVSeriesDetails( + id: mediaId, + language: Language.current.rawValue + ) + } + } catch { + details = nil + } + } +} + +// MARK: - Badge View +struct BadgeView: View { + let text: String + + var body: some View { + Text(text) + .font(.caption) + .foregroundColor(.appForegroundAdaptive) + .padding(.horizontal, 10) + .padding(.vertical, 6) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 8)) + } +} + +// MARK: - Rating Badge +struct RatingBadge: View { + let rating: Double + + var body: some View { + HStack(spacing: 4) { + Image(systemName: "star.fill") + .font(.caption) + .foregroundColor(.yellow) + + Text(String(format: "%.1f", rating)) + .font(.caption.bold()) + .foregroundColor(.appForegroundAdaptive) + } + .padding(.horizontal, 10) + .padding(.vertical, 6) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 8)) + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index d566f80d..600221c6 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -178,11 +178,13 @@ struct SearchTabView: View { ScrollView { LazyVStack(alignment: .leading, spacing: 24) { if !popularMovies.isEmpty { - SearchSection(title: strings.popularMovies, results: popularMovies) + SearchSection( + title: strings.popularMovies, results: popularMovies) } if !popularTVSeries.isEmpty { - SearchSection(title: strings.popularTVSeries, results: popularTVSeries) + SearchSection( + title: strings.popularTVSeries, results: popularTVSeries) } } .padding(.horizontal, 24) @@ -268,7 +270,19 @@ struct SearchSection: View { LazyVGrid(columns: columns, spacing: 12) { ForEach(results.prefix(9)) { result in - PosterCard(result: result) + if result.mediaType != "person" { + NavigationLink { + MediaDetailView( + mediaId: result.id, + mediaType: result.mediaType ?? "movie" + ) + } label: { + PosterCard(result: result) + } + .buttonStyle(.plain) + } else { + PosterCard(result: result) + } } } } @@ -283,26 +297,26 @@ struct PosterCard: View { AsyncImage(url: result.imageURL) { phase in switch phase { case .empty: - RoundedRectangle(cornerRadius: 8) + RoundedRectangle(cornerRadius: 12) .fill(Color.appBorderAdaptive) case .success(let image): image .resizable() .aspectRatio(contentMode: .fill) case .failure: - RoundedRectangle(cornerRadius: 8) + RoundedRectangle(cornerRadius: 12) .fill(Color.appBorderAdaptive) .overlay( Image(systemName: result.mediaType == "person" ? "person.fill" : "film") .foregroundColor(.appMutedForegroundAdaptive) ) @unknown default: - RoundedRectangle(cornerRadius: 8) + RoundedRectangle(cornerRadius: 12) .fill(Color.appBorderAdaptive) } } .aspectRatio(2 / 3, contentMode: .fit) - .clipShape(RoundedRectangle(cornerRadius: 8)) + .clipShape(RoundedRectangle(cornerRadius: 12)) .shadow(color: Color.black.opacity(0.15), radius: 4, x: 0, y: 2) } } @@ -334,7 +348,7 @@ struct SearchSkeletonSection: View { struct PosterSkeletonCard: View { var body: some View { - RoundedRectangle(cornerRadius: 8) + RoundedRectangle(cornerRadius: 12) .fill(Color.appBorderAdaptive) .aspectRatio(2 / 3, contentMode: .fit) .shimmer() From df30ed6898c442192b0630b28663da632137dafe Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 12 Jan 2026 22:28:26 -0300 Subject: [PATCH 12/77] refactor(ui): update shadow effects and rearrange badge display in MediaDetailView and HomeView --- .../Plotwist/Views/Details/MediaDetailView.swift | 12 ++++++------ apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 73ff6c66..8496023e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -77,7 +77,7 @@ struct MediaDetailView: View { } .frame(width: 140, height: 210) .clipShape(RoundedRectangle(cornerRadius: 16)) - .shadow(color: Color.black.opacity(0.3), radius: 8, x: 0, y: 4) + .shadow(color: Color.black.opacity(0.15), radius: 4, x: 0, y: 2) // Info VStack(alignment: .leading, spacing: 4) { @@ -108,18 +108,18 @@ struct MediaDetailView: View { .padding(.top, -54) } - // Genres and Rating Badges + // Rating and Genres Badges ScrollView(.horizontal, showsIndicators: false) { HStack(spacing: 8) { + if let rating = details.voteAverage, rating > 0 { + RatingBadge(rating: rating) + } + if let genres = details.genres { ForEach(genres) { genre in BadgeView(text: genre.name) } } - - if let rating = details.voteAverage, rating > 0 { - RatingBadge(rating: rating) - } } .padding(.horizontal, 24) } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index 600221c6..bdc9411a 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -317,7 +317,7 @@ struct PosterCard: View { } .aspectRatio(2 / 3, contentMode: .fit) .clipShape(RoundedRectangle(cornerRadius: 12)) - .shadow(color: Color.black.opacity(0.15), radius: 4, x: 0, y: 2) + .shadow(color: Color.black.opacity(0.08), radius: 2, x: 0, y: 1) } } From 34a33b903e29f157a46456c9e2139683b3e8a074 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Wed, 14 Jan 2026 21:59:01 -0300 Subject: [PATCH 13/77] feat(review): implement review functionality with UI components and localization support --- .../Plotwist/Components/StarRatingView.swift | 91 +++++++++ .../Plotwist/Extensions/View+Sheet.swift | 16 ++ .../Plotwist/Localization/Strings.swift | 104 +++++++++- .../Plotwist/Services/ReviewService.swift | 181 +++++++++++++++++ .../Plotwist/Views/Auth/SignUpView.swift | 3 +- .../Views/Details/MediaDetailView.swift | 47 +++++ .../Plotwist/Views/Details/ReviewSheet.swift | 184 ++++++++++++++++++ .../Plotwist/Views/Home/HomeView.swift | 4 +- 8 files changed, 618 insertions(+), 12 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Components/StarRatingView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Extensions/View+Sheet.swift create mode 100644 apps/ios/Plotwist/Plotwist/Services/ReviewService.swift create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/StarRatingView.swift b/apps/ios/Plotwist/Plotwist/Components/StarRatingView.swift new file mode 100644 index 00000000..2c40d53e --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/StarRatingView.swift @@ -0,0 +1,91 @@ +// +// StarRatingView.swift +// Plotwist +// + +import SwiftUI + +struct StarRatingView: View { + @Binding var rating: Double + let maxRating: Int = 5 + let size: CGFloat + let interactive: Bool + + init(rating: Binding, size: CGFloat = 24, interactive: Bool = true) { + self._rating = rating + self.size = size + self.interactive = interactive + } + + var body: some View { + HStack(spacing: 4) { + ForEach(1...maxRating, id: \.self) { index in + GeometryReader { geometry in + ZStack { + Image(systemName: starImage(for: index)) + .font(.system(size: size)) + .foregroundColor(starColor(for: index)) + .frame(width: geometry.size.width, height: geometry.size.height) + } + .contentShape(Rectangle()) + .gesture( + DragGesture(minimumDistance: 0) + .onEnded { value in + if interactive { + handleTap(at: value.location, in: geometry.size, for: index) + } + } + ) + } + .frame(width: size, height: size) + } + } + .frame(height: size) + } + + private func handleTap(at location: CGPoint, in size: CGSize, for index: Int) { + let tapPosition = location.x + + // If tapped on left half, use .5, if right half use 1.0 + if tapPosition < size.width / 2 { + rating = Double(index) - 0.5 + } else { + rating = Double(index) + } + } + + private func starImage(for index: Int) -> String { + let fillLevel = rating - Double(index - 1) + + if fillLevel >= 1.0 { + return "star.fill" + } else if fillLevel >= 0.5 { + return "star.leadinghalf.filled" + } else { + return "star.fill" + } + } + + private func starColor(for index: Int) -> Color { + let fillLevel = rating - Double(index - 1) + + if fillLevel >= 1.0 { + return .yellow + } else if fillLevel >= 0.5 { + return .yellow + } else { + return Color.gray.opacity(0.3) + } + } +} + +// MARK: - Preview +#Preview { + VStack(spacing: 20) { + StarRatingView(rating: .constant(0), size: 32) + StarRatingView(rating: .constant(2.5), size: 32) + StarRatingView(rating: .constant(5), size: 32) + StarRatingView(rating: .constant(3.5), size: 24, interactive: false) + } + .padding() +} diff --git a/apps/ios/Plotwist/Plotwist/Extensions/View+Sheet.swift b/apps/ios/Plotwist/Plotwist/Extensions/View+Sheet.swift new file mode 100644 index 00000000..94f2c130 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Extensions/View+Sheet.swift @@ -0,0 +1,16 @@ +// +// View+Sheet.swift +// Plotwist +// + +import SwiftUI + +extension View { + /// Aplica o estilo padrão para sheets/drawers do app + func standardSheetStyle(detents: Set = [.height(500), .large]) -> some View { + self + .presentationCornerRadius(24) + .presentationDetents(detents) + .presentationDragIndicator(.hidden) + } +} diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 28481918..f18f37a2 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -60,7 +60,19 @@ enum L10n { themeDark: "Dark", language: "Language", done: "Done", - signOut: "Sign Out" + signOut: "Sign Out", + // Reviews + whatDidYouThink: "What did you think?", + review: "Review", + reviewed: "Reviewed", + shareYourOpinion: "Share your opinion here...", + containSpoilers: "Contains spoilers", + submitReview: "Submit review", + editReview: "Edit review", + reviewRequired: "Please write your review.", + reviewSuccess: "Review submitted successfully!", + reviewUpdateSuccess: "Review updated successfully!", + reviewDeleteSuccess: "Review deleted successfully!" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -110,7 +122,18 @@ enum L10n { themeDark: "Escuro", language: "Idioma", done: "Concluído", - signOut: "Sair" + signOut: "Sair", + whatDidYouThink: "O que você achou?", + review: "Avaliar", + reviewed: "Avaliado", + shareYourOpinion: "Compartilhe sua opinião aqui...", + containSpoilers: "Contém spoilers", + submitReview: "Enviar avaliação", + editReview: "Editar avaliação", + reviewRequired: "Por favor, escreva sua avaliação.", + reviewSuccess: "Avaliação enviada com sucesso!", + reviewUpdateSuccess: "Avaliação atualizada com sucesso!", + reviewDeleteSuccess: "Avaliação excluída com sucesso!" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -160,7 +183,18 @@ enum L10n { themeDark: "Oscuro", language: "Idioma", done: "Listo", - signOut: "Cerrar sesión" + signOut: "Cerrar sesión", + whatDidYouThink: "¿Qué te pareció?", + review: "Reseñar", + reviewed: "Reseñado", + shareYourOpinion: "Comparte tu opinión aquí...", + containSpoilers: "Contiene spoilers", + submitReview: "Enviar reseña", + editReview: "Editar reseña", + reviewRequired: "Por favor, escribe tu reseña.", + reviewSuccess: "¡Reseña enviada con éxito!", + reviewUpdateSuccess: "¡Reseña actualizada con éxito!", + reviewDeleteSuccess: "¡Reseña eliminada con éxito!" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -210,7 +244,18 @@ enum L10n { themeDark: "Sombre", language: "Langue", done: "Terminé", - signOut: "Déconnexion" + signOut: "Déconnexion", + whatDidYouThink: "Qu'en avez-vous pensé?", + review: "Évaluer", + reviewed: "Évalué", + shareYourOpinion: "Partagez votre opinion ici...", + containSpoilers: "Contient des spoilers", + submitReview: "Soumettre l'avis", + editReview: "Modifier l'avis", + reviewRequired: "Veuillez écrire votre avis.", + reviewSuccess: "Avis soumis avec succès!", + reviewUpdateSuccess: "Avis mis à jour avec succès!", + reviewDeleteSuccess: "Avis supprimé avec succès!" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -260,7 +305,18 @@ enum L10n { themeDark: "Dunkel", language: "Sprache", done: "Fertig", - signOut: "Abmelden" + signOut: "Abmelden", + whatDidYouThink: "Was haben Sie gedacht?", + review: "Bewerten", + reviewed: "Bewertet", + shareYourOpinion: "Teilen Sie Ihre Meinung hier...", + containSpoilers: "Enthält Spoiler", + submitReview: "Bewertung abschicken", + editReview: "Bewertung bearbeiten", + reviewRequired: "Bitte schreiben Sie Ihre Bewertung.", + reviewSuccess: "Bewertung erfolgreich eingereicht!", + reviewUpdateSuccess: "Bewertung erfolgreich aktualisiert!", + reviewDeleteSuccess: "Bewertung erfolgreich gelöscht!" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -310,7 +366,18 @@ enum L10n { themeDark: "Scuro", language: "Lingua", done: "Fatto", - signOut: "Esci" + signOut: "Esci", + whatDidYouThink: "Cosa ne pensi?", + review: "Recensire", + reviewed: "Recensito", + shareYourOpinion: "Condividi la tua opinione qui...", + containSpoilers: "Contiene spoiler", + submitReview: "Invia recensione", + editReview: "Modifica recensione", + reviewRequired: "Scrivi la tua recensione.", + reviewSuccess: "Recensione inviata con successo!", + reviewUpdateSuccess: "Recensione aggiornata con successo!", + reviewDeleteSuccess: "Recensione eliminata con successo!" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -359,7 +426,18 @@ enum L10n { themeDark: "ダーク", language: "言語", done: "完了", - signOut: "サインアウト" + signOut: "サインアウト", + whatDidYouThink: "どう思いましたか?", + review: "レビュー", + reviewed: "レビュー済み", + shareYourOpinion: "ここにあなたの意見を共有してください...", + containSpoilers: "ネタバレを含む", + submitReview: "レビューを送信", + editReview: "レビューを編集", + reviewRequired: "レビューを書いてください。", + reviewSuccess: "レビューが正常に送信されました!", + reviewUpdateSuccess: "レビューが正常に更新されました!", + reviewDeleteSuccess: "レビューが正常に削除されました!" ), ] } @@ -416,4 +494,16 @@ struct Strings { let language: String let done: String let signOut: String + // Reviews + let whatDidYouThink: String + let review: String + let reviewed: String + let shareYourOpinion: String + let containSpoilers: String + let submitReview: String + let editReview: String + let reviewRequired: String + let reviewSuccess: String + let reviewUpdateSuccess: String + let reviewDeleteSuccess: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift b/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift new file mode 100644 index 00000000..13430c5e --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift @@ -0,0 +1,181 @@ +// +// ReviewService.swift +// Plotwist +// + +import Foundation + +class ReviewService { + static let shared = ReviewService() + private init() {} + + // MARK: - Get User Review + func getUserReview( + tmdbId: Int, + mediaType: String, + seasonNumber: Int? = nil, + episodeNumber: Int? = nil + ) async throws -> Review? { + var urlString = "\(API.baseURL)/review?tmdbId=\(tmdbId)&mediaType=\(mediaType)" + + if let seasonNumber = seasonNumber { + urlString += "&seasonNumber=\(seasonNumber)" + } + + if let episodeNumber = episodeNumber { + urlString += "&episodeNumber=\(episodeNumber)" + } + + guard let url = URL(string: urlString), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw ReviewError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw ReviewError.invalidResponse + } + + if http.statusCode == 404 { + return nil + } + + guard http.statusCode == 200 else { + throw ReviewError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(ReviewResponse.self, from: data) + return result.review + } + + // MARK: - Create Review + func createReview(_ reviewData: ReviewData) async throws { + guard let url = URL(string: "\(API.baseURL)/review"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw ReviewError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + let encoder = JSONEncoder() + encoder.keyEncodingStrategy = .convertToSnakeCase + request.httpBody = try encoder.encode(reviewData) + + let (_, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw ReviewError.invalidResponse + } + + guard http.statusCode == 200 || http.statusCode == 201 else { + throw ReviewError.invalidResponse + } + } + + // MARK: - Update Review + func updateReview(id: String, _ reviewData: ReviewData) async throws { + guard let url = URL(string: "\(API.baseURL)/review/by/\(id)"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw ReviewError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "PUT" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + let encoder = JSONEncoder() + encoder.keyEncodingStrategy = .convertToSnakeCase + request.httpBody = try encoder.encode(reviewData) + + let (_, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw ReviewError.invalidResponse + } + + guard http.statusCode == 200 else { + throw ReviewError.invalidResponse + } + } + + // MARK: - Delete Review + func deleteReview(id: String) async throws { + guard let url = URL(string: "\(API.baseURL)/review/by/\(id)"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw ReviewError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "DELETE" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + + let (_, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw ReviewError.invalidResponse + } + + guard http.statusCode == 200 || http.statusCode == 204 else { + throw ReviewError.invalidResponse + } + } +} + +// MARK: - Models +struct Review: Codable, Identifiable { + let id: String + let userId: String + let tmdbId: Int + let mediaType: String + let review: String + let rating: Double + let hasSpoilers: Bool + let seasonNumber: Int? + let episodeNumber: Int? + let language: String + let createdAt: String + let updatedAt: String +} + +struct ReviewResponse: Codable { + let review: Review? +} + +struct ReviewData: Codable { + let tmdbId: Int + let mediaType: String + let review: String + let rating: Double + let hasSpoilers: Bool + let seasonNumber: Int? + let episodeNumber: Int? + let language: String +} + +enum ReviewError: LocalizedError { + case invalidURL + case invalidResponse + case notFound + + var errorDescription: String? { + switch self { + case .invalidURL: return "Invalid URL" + case .invalidResponse: return "Invalid response" + case .notFound: return "Review not found" + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift index 52b2a74b..3a19b8cf 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift @@ -119,8 +119,7 @@ struct SignUpView: View { password: password, onError: { self.error = $0 } ) - .presentationDetents([.height(320)]) - .presentationDragIndicator(.visible) + .standardSheetStyle(detents: [.height(320)]) } .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 8496023e..c1f1ec23 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -12,6 +12,8 @@ struct MediaDetailView: View { @Environment(\.dismiss) private var dismiss @State private var details: MovieDetails? @State private var isLoading = true + @State private var userReview: Review? + @State private var showReviewSheet = false @ObservedObject private var themeManager = ThemeManager.shared var body: some View { @@ -124,6 +126,27 @@ struct MediaDetailView: View { .padding(.horizontal, 24) } .padding(.top, 16) + + // Review Button + if AuthService.shared.isAuthenticated { + Button(action: { showReviewSheet = true }) { + HStack(spacing: 8) { + Image(systemName: userReview != nil ? "star.fill" : "star") + .font(.system(size: 14)) + .foregroundColor(userReview != nil ? .yellow : .appForegroundAdaptive) + + Text(userReview != nil ? L10n.current.reviewed : L10n.current.review) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + } + .padding(.horizontal, 16) + .padding(.vertical, 10) + .background(Color.appInputFilled) + .cornerRadius(8) + } + .padding(.horizontal, 24) + .padding(.top, 16) + } } .padding(.bottom, 100) } @@ -132,8 +155,21 @@ struct MediaDetailView: View { } .navigationBarHidden(true) .preferredColorScheme(themeManager.current.colorScheme) + .sheet(isPresented: $showReviewSheet) { + ReviewSheet(mediaId: mediaId, mediaType: mediaType, existingReview: userReview) + } .task { await loadDetails() + if AuthService.shared.isAuthenticated { + await loadUserReview() + } + } + .onChange(of: showReviewSheet) { _, isPresented in + if !isPresented && AuthService.shared.isAuthenticated { + Task { + await loadUserReview() + } + } } } @@ -157,6 +193,17 @@ struct MediaDetailView: View { details = nil } } + + private func loadUserReview() async { + do { + userReview = try await ReviewService.shared.getUserReview( + tmdbId: mediaId, + mediaType: mediaType == "movie" ? "MOVIE" : "TV_SHOW" + ) + } catch { + userReview = nil + } + } } // MARK: - Badge View diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift new file mode 100644 index 00000000..001cb287 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift @@ -0,0 +1,184 @@ +// +// ReviewSheet.swift +// Plotwist +// + +import SwiftUI + +struct ReviewSheet: View { + let mediaId: Int + let mediaType: String + let existingReview: Review? + @Environment(\.dismiss) private var dismiss + @ObservedObject private var themeManager = ThemeManager.shared + + @State private var rating: Double = 0 + @State private var reviewText: String = "" + @State private var hasSpoilers: Bool = false + @State private var isLoading: Bool = false + @State private var errorMessage: String? + + init(mediaId: Int, mediaType: String, existingReview: Review? = nil) { + self.mediaId = mediaId + self.mediaType = mediaType + self.existingReview = existingReview + + if let existingReview = existingReview { + _rating = State(initialValue: existingReview.rating) + _reviewText = State(initialValue: existingReview.review) + _hasSpoilers = State(initialValue: existingReview.hasSpoilers) + } + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Drag Indicator + RoundedRectangle(cornerRadius: 2.5) + .fill(Color.gray.opacity(0.4)) + .frame(width: 36, height: 5) + .padding(.top, 12) + .padding(.bottom, 8) + + ScrollView { + VStack(spacing: 20) { + // Title + Text(L10n.current.whatDidYouThink) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + .frame(maxWidth: .infinity, alignment: .center) + .padding(.top, 8) + + // Rating + VStack(spacing: 12) { + StarRatingView(rating: $rating, size: 36) + .frame(maxWidth: .infinity) + } + + // Review Text + VStack(alignment: .leading, spacing: 8) { + ZStack(alignment: .topLeading) { + if reviewText.isEmpty { + Text(L10n.current.shareYourOpinion) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 16) + .padding(.vertical, 12) + } + + TextEditor(text: $reviewText) + .frame(minHeight: 120) + .padding(.horizontal, 12) + .padding(.vertical, 8) + .background(Color.appInputFilled) + .cornerRadius(12) + .foregroundColor(.appForegroundAdaptive) + .scrollContentBackground(.hidden) + } + } + + // Spoilers Checkbox + HStack(spacing: 12) { + Button(action: { hasSpoilers.toggle() }) { + HStack(spacing: 8) { + Image(systemName: hasSpoilers ? "checkmark.square.fill" : "square") + .font(.system(size: 20)) + .foregroundColor(hasSpoilers ? .accentColor : .gray) + + Text(L10n.current.containSpoilers) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } + } + .frame(maxWidth: .infinity) + } + .padding(.vertical, 4) + + // Error Message + if let errorMessage = errorMessage { + Text(errorMessage) + .font(.caption) + .foregroundColor(.red) + .frame(maxWidth: .infinity, alignment: .center) + } + + // Submit Button + Button(action: submitReview) { + Group { + if isLoading { + ProgressView() + .tint(.appBackgroundAdaptive) + } else { + Text(existingReview != nil ? L10n.current.editReview : L10n.current.submitReview) + .fontWeight(.semibold) + } + } + .frame(maxWidth: .infinity) + .frame(height: 48) + .background(Color.appForegroundAdaptive) + .foregroundColor(.appBackgroundAdaptive) + .cornerRadius(12) + } + .disabled(!isFormValid || isLoading) + .opacity(!isFormValid || isLoading ? 0.5 : 1) + } + .padding(.horizontal, 24) + .padding(.bottom, 24) + } + } + } + .standardSheetStyle() + .preferredColorScheme(themeManager.current.colorScheme) + } + + private var isFormValid: Bool { + rating > 0 && !reviewText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty + } + + private func submitReview() { + guard isFormValid else { + errorMessage = L10n.current.reviewRequired + return + } + + isLoading = true + errorMessage = nil + + Task { + do { + let reviewData = ReviewData( + tmdbId: mediaId, + mediaType: mediaType == "movie" ? "MOVIE" : "TV_SHOW", + review: reviewText, + rating: rating, + hasSpoilers: hasSpoilers, + seasonNumber: nil, + episodeNumber: nil, + language: Language.current.rawValue + ) + + if let existingReview = existingReview { + try await ReviewService.shared.updateReview(id: existingReview.id, reviewData) + } else { + try await ReviewService.shared.createReview(reviewData) + } + + await MainActor.run { + isLoading = false + dismiss() + } + } catch { + await MainActor.run { + isLoading = false + errorMessage = error.localizedDescription + } + } + } + } +} + +// MARK: - Preview +#Preview { + ReviewSheet(mediaId: 550, mediaType: "movie") +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index bdc9411a..a1468d04 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -465,9 +465,7 @@ struct ProfileTabView: View { } .sheet(isPresented: $showSettings) { SettingsSheet() - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) - .presentationCornerRadius(24) + .standardSheetStyle(detents: [.medium]) } .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current From 17bc10c4455627bc4d619b80a28fb0149e286928 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Wed, 14 Jan 2026 22:39:36 -0300 Subject: [PATCH 14/77] feat(ui): enhance review functionality with new ActionButton and tabbed navigation in MediaDetailView --- .../Plotwist/Components/PrimaryButton.swift | 77 +++++-- .../Plotwist/Localization/Strings.swift | 71 +++++- .../Plotwist/Services/ReviewService.swift | 73 +++++- .../Plotwist/Views/Auth/LoginView.swift | 5 +- .../Views/Details/MediaDetailView.swift | 212 ++++++++++++++---- .../Plotwist/Views/Details/ReviewSheet.swift | 52 ++--- 6 files changed, 389 insertions(+), 101 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift b/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift index e29ad60b..aaacccc3 100644 --- a/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift +++ b/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift @@ -38,15 +38,15 @@ struct PrimaryButton: View { .fontWeight(.semibold) } } - .frame(maxWidth: .infinity) - .frame(height: 48) - .background(variant == .filled ? Color.appForegroundAdaptive : Color.clear) - .foregroundColor(variant == .filled ? .appBackgroundAdaptive : .appForegroundAdaptive) - .cornerRadius(12) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(variant == .filled ? Color.clear : Color.appBorderAdaptive, lineWidth: 1) - ) + .frame(maxWidth: .infinity) + .frame(height: 48) + .background(variant == .filled ? Color.appForegroundAdaptive : Color.clear) + .foregroundColor(variant == .filled ? .appBackgroundAdaptive : .appForegroundAdaptive) + .cornerRadius(12) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(variant == .filled ? Color.clear : Color.appBorderAdaptive, lineWidth: 1) + ) } .disabled(isLoading || isDisabled) .opacity(isDisabled ? 0.5 : 1) @@ -73,20 +73,57 @@ struct SocialButton: View { Text(title) .fontWeight(.medium) } - .frame(maxWidth: .infinity) - .frame(height: 48) - .background(Color.clear) - .foregroundColor(.appForegroundAdaptive) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) + .frame(maxWidth: .infinity) + .frame(height: 48) + .background(Color.clear) + .foregroundColor(.appForegroundAdaptive) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) } .disabled(isDisabled) .opacity(isDisabled ? 0.5 : 1) } } +struct ActionButton: View { + let title: String + let icon: String + let iconColor: Color? + let action: () -> Void + + init( + _ title: String, + icon: String, + iconColor: Color? = nil, + action: @escaping () -> Void + ) { + self.title = title + self.icon = icon + self.iconColor = iconColor + self.action = action + } + + var body: some View { + Button(action: action) { + HStack(spacing: 8) { + Image(systemName: icon) + .font(.system(size: 14)) + .foregroundColor(iconColor ?? .appForegroundAdaptive) + + Text(title) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + } + .padding(.horizontal, 16) + .padding(.vertical, 12) + .background(Color.appInputFilled) + .cornerRadius(12) + } + } +} + #Preview { VStack(spacing: 16) { PrimaryButton("Access", variant: .filled) {} @@ -95,6 +132,12 @@ struct SocialButton: View { PrimaryButton("Disabled", isDisabled: true) {} SocialButton("Continue with Google", icon: "globe") {} SocialButton("Continue with Apple", icon: "apple.logo", isDisabled: true) {} + + HStack { + ActionButton("Review", icon: "star") {} + ActionButton("Reviewed", icon: "star.fill", iconColor: .yellow) {} + Spacer() + } } .padding() } diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index f18f37a2..8b9c40f3 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -72,7 +72,14 @@ enum L10n { reviewRequired: "Please write your review.", reviewSuccess: "Review submitted successfully!", reviewUpdateSuccess: "Review updated successfully!", - reviewDeleteSuccess: "Review deleted successfully!" + reviewDeleteSuccess: "Review deleted successfully!", + tabReviews: "Reviews", + tabWhereToWatch: "Where to Watch", + tabCredits: "Credits", + tabRecommendations: "Recommendations", + tabSimilar: "Similar", + tabImages: "Images", + tabVideos: "Videos" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -133,7 +140,14 @@ enum L10n { reviewRequired: "Por favor, escreva sua avaliação.", reviewSuccess: "Avaliação enviada com sucesso!", reviewUpdateSuccess: "Avaliação atualizada com sucesso!", - reviewDeleteSuccess: "Avaliação excluída com sucesso!" + reviewDeleteSuccess: "Avaliação excluída com sucesso!", + tabReviews: "Avaliações", + tabWhereToWatch: "Onde Assistir", + tabCredits: "Elenco", + tabRecommendations: "Recomendações", + tabSimilar: "Similares", + tabImages: "Imagens", + tabVideos: "Vídeos" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -194,7 +208,14 @@ enum L10n { reviewRequired: "Por favor, escribe tu reseña.", reviewSuccess: "¡Reseña enviada con éxito!", reviewUpdateSuccess: "¡Reseña actualizada con éxito!", - reviewDeleteSuccess: "¡Reseña eliminada con éxito!" + reviewDeleteSuccess: "¡Reseña eliminada con éxito!", + tabReviews: "Reseñas", + tabWhereToWatch: "Dónde Ver", + tabCredits: "Créditos", + tabRecommendations: "Recomendaciones", + tabSimilar: "Similares", + tabImages: "Imágenes", + tabVideos: "Videos" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -255,7 +276,14 @@ enum L10n { reviewRequired: "Veuillez écrire votre avis.", reviewSuccess: "Avis soumis avec succès!", reviewUpdateSuccess: "Avis mis à jour avec succès!", - reviewDeleteSuccess: "Avis supprimé avec succès!" + reviewDeleteSuccess: "Avis supprimé avec succès!", + tabReviews: "Avis", + tabWhereToWatch: "Où Regarder", + tabCredits: "Crédits", + tabRecommendations: "Recommandations", + tabSimilar: "Similaires", + tabImages: "Images", + tabVideos: "Vidéos" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -316,7 +344,14 @@ enum L10n { reviewRequired: "Bitte schreiben Sie Ihre Bewertung.", reviewSuccess: "Bewertung erfolgreich eingereicht!", reviewUpdateSuccess: "Bewertung erfolgreich aktualisiert!", - reviewDeleteSuccess: "Bewertung erfolgreich gelöscht!" + reviewDeleteSuccess: "Bewertung erfolgreich gelöscht!", + tabReviews: "Bewertungen", + tabWhereToWatch: "Wo Ansehen", + tabCredits: "Besetzung", + tabRecommendations: "Empfehlungen", + tabSimilar: "Ähnliche", + tabImages: "Bilder", + tabVideos: "Videos" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -377,7 +412,14 @@ enum L10n { reviewRequired: "Scrivi la tua recensione.", reviewSuccess: "Recensione inviata con successo!", reviewUpdateSuccess: "Recensione aggiornata con successo!", - reviewDeleteSuccess: "Recensione eliminata con successo!" + reviewDeleteSuccess: "Recensione eliminata con successo!", + tabReviews: "Recensioni", + tabWhereToWatch: "Dove Guardare", + tabCredits: "Cast", + tabRecommendations: "Raccomandazioni", + tabSimilar: "Simili", + tabImages: "Immagini", + tabVideos: "Video" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -437,7 +479,14 @@ enum L10n { reviewRequired: "レビューを書いてください。", reviewSuccess: "レビューが正常に送信されました!", reviewUpdateSuccess: "レビューが正常に更新されました!", - reviewDeleteSuccess: "レビューが正常に削除されました!" + reviewDeleteSuccess: "レビューが正常に削除されました!", + tabReviews: "レビュー", + tabWhereToWatch: "視聴方法", + tabCredits: "キャスト", + tabRecommendations: "おすすめ", + tabSimilar: "類似作品", + tabImages: "画像", + tabVideos: "動画" ), ] } @@ -506,4 +555,12 @@ struct Strings { let reviewSuccess: String let reviewUpdateSuccess: String let reviewDeleteSuccess: String + // Tabs + let tabReviews: String + let tabWhereToWatch: String + let tabCredits: String + let tabRecommendations: String + let tabSimilar: String + let tabImages: String + let tabVideos: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift b/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift index 13430c5e..8f6bc9e8 100644 --- a/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift @@ -68,17 +68,37 @@ class ReviewService { request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") request.setValue("application/json", forHTTPHeaderField: "Content-Type") - let encoder = JSONEncoder() - encoder.keyEncodingStrategy = .convertToSnakeCase - request.httpBody = try encoder.encode(reviewData) + // Create JSON dictionary with camelCase keys (as expected by Drizzle schema) + var jsonDict: [String: Any] = [ + "tmdbId": reviewData.tmdbId, + "mediaType": reviewData.mediaType, + "review": reviewData.review, + "rating": reviewData.rating, + "hasSpoilers": reviewData.hasSpoilers, + "language": reviewData.language, + ] - let (_, response) = try await URLSession.shared.data(for: request) + // Only add optional values if they exist + if let seasonNumber = reviewData.seasonNumber { + jsonDict["seasonNumber"] = seasonNumber + } + if let episodeNumber = reviewData.episodeNumber { + jsonDict["episodeNumber"] = episodeNumber + } + + let jsonData = try JSONSerialization.data(withJSONObject: jsonDict, options: []) + request.httpBody = jsonData + + let (data, response) = try await URLSession.shared.data(for: request) guard let http = response as? HTTPURLResponse else { throw ReviewError.invalidResponse } guard http.statusCode == 200 || http.statusCode == 201 else { + if let errorString = String(data: data, encoding: .utf8) { + throw ReviewError.serverError(errorString) + } throw ReviewError.invalidResponse } } @@ -96,9 +116,15 @@ class ReviewService { request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") request.setValue("application/json", forHTTPHeaderField: "Content-Type") - let encoder = JSONEncoder() - encoder.keyEncodingStrategy = .convertToSnakeCase - request.httpBody = try encoder.encode(reviewData) + // For update, we only send the fields that can be updated (camelCase) + let jsonDict: [String: Any] = [ + "rating": reviewData.rating, + "review": reviewData.review, + "hasSpoilers": reviewData.hasSpoilers, + ] + + let jsonData = try JSONSerialization.data(withJSONObject: jsonDict, options: []) + request.httpBody = jsonData let (_, response) = try await URLSession.shared.data(for: request) @@ -164,18 +190,49 @@ struct ReviewData: Codable { let seasonNumber: Int? let episodeNumber: Int? let language: String + + enum CodingKeys: String, CodingKey { + case tmdbId = "tmdb_id" + case mediaType = "media_type" + case review + case rating + case hasSpoilers = "has_spoilers" + case seasonNumber = "season_number" + case episodeNumber = "episode_number" + case language + } + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(tmdbId, forKey: .tmdbId) + try container.encode(mediaType, forKey: .mediaType) + try container.encode(review, forKey: .review) + try container.encode(rating, forKey: .rating) + try container.encode(hasSpoilers, forKey: .hasSpoilers) + try container.encode(language, forKey: .language) + + // Only encode optional values if they're not nil + if let seasonNumber = seasonNumber { + try container.encode(seasonNumber, forKey: .seasonNumber) + } + if let episodeNumber = episodeNumber { + try container.encode(episodeNumber, forKey: .episodeNumber) + } + } } enum ReviewError: LocalizedError { case invalidURL case invalidResponse case notFound + case serverError(String) var errorDescription: String? { switch self { case .invalidURL: return "Invalid URL" - case .invalidResponse: return "Invalid response" + case .invalidResponse: return "Invalid response from server" case .notFound: return "Review not found" + case .serverError(let message): return "Server error: \(message)" } } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift index 2a20544e..03a49d7c 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift @@ -92,7 +92,9 @@ struct LoginView: View { ) Button { - showPassword.toggle() + withAnimation(.none) { + showPassword.toggle() + } } label: { Image(systemName: showPassword ? "eye" : "eye.slash") .foregroundColor(.appMutedForegroundAdaptive) @@ -103,6 +105,7 @@ struct LoginView: View { .stroke(Color.appBorderAdaptive, lineWidth: 1) ) } + .transaction { $0.animation = nil } } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index c1f1ec23..b4becc51 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -16,6 +16,10 @@ struct MediaDetailView: View { @State private var showReviewSheet = false @ObservedObject private var themeManager = ThemeManager.shared + // Layout constants + private let posterOverlapOffset: CGFloat = -70 + private let contentOffset: CGFloat = -54 + var body: some View { ZStack { Color.appBackgroundAdaptive.ignoresSafeArea() @@ -98,57 +102,60 @@ struct MediaDetailView: View { Spacer() } .padding(.horizontal, 24) - .offset(y: -70) - - // Overview - if let overview = details.overview, !overview.isEmpty { - Text(overview) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .lineSpacing(4) - .padding(.horizontal, 24) - .padding(.top, -54) - } + .offset(y: posterOverlapOffset) - // Rating and Genres Badges - ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 8) { - if let rating = details.voteAverage, rating > 0 { - RatingBadge(rating: rating) - } - - if let genres = details.genres { - ForEach(genres) { genre in - BadgeView(text: genre.name) + // Content Section + VStack(alignment: .leading, spacing: 20) { + // Review Button + if AuthService.shared.isAuthenticated { + HStack { + ActionButton( + userReview != nil ? L10n.current.reviewed : L10n.current.review, + icon: userReview != nil ? "star.fill" : "star", + iconColor: userReview != nil ? .yellow : nil + ) { + showReviewSheet = true } + + Spacer() } } - .padding(.horizontal, 24) - } - .padding(.top, 16) - // Review Button - if AuthService.shared.isAuthenticated { - Button(action: { showReviewSheet = true }) { + // Overview + if let overview = details.overview, !overview.isEmpty { + Text(overview) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .lineSpacing(4) + } + + // Rating and Genres Badges + ScrollView(.horizontal, showsIndicators: false) { HStack(spacing: 8) { - Image(systemName: userReview != nil ? "star.fill" : "star") - .font(.system(size: 14)) - .foregroundColor(userReview != nil ? .yellow : .appForegroundAdaptive) + if let rating = details.voteAverage, rating > 0 { + RatingBadge(rating: rating) + } - Text(userReview != nil ? L10n.current.reviewed : L10n.current.review) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appForegroundAdaptive) + if let genres = details.genres { + ForEach(genres) { genre in + BadgeView(text: genre.name) + } + } } - .padding(.horizontal, 16) - .padding(.vertical, 10) - .background(Color.appInputFilled) - .cornerRadius(8) } - .padding(.horizontal, 24) - .padding(.top, 16) } + .padding(.horizontal, 24) + .offset(y: contentOffset) + + // Tabs + MediaTabsView( + mediaId: mediaId, + mediaType: mediaType + ) + .padding(.top, 20) + .offset(y: contentOffset) } - .padding(.bottom, 100) + .padding(.bottom, 80) } .ignoresSafeArea(edges: .top) } @@ -206,6 +213,127 @@ struct MediaDetailView: View { } } +// MARK: - Tabs View +struct MediaTabsView: View { + let mediaId: Int + let mediaType: String + + @State private var selectedTab: Tab = .reviews + + enum Tab: String, CaseIterable { + case reviews + case whereToWatch + case credits + case recommendations + case similar + case images + case videos + + var title: String { + let strings = L10n.current + switch self { + case .reviews: return strings.tabReviews + case .whereToWatch: return strings.tabWhereToWatch + case .credits: return strings.tabCredits + case .recommendations: return strings.tabRecommendations + case .similar: return strings.tabSimilar + case .images: return strings.tabImages + case .videos: return strings.tabVideos + } + } + + var isEnabled: Bool { + true + } + } + + var body: some View { + VStack(spacing: 0) { + // Tab Bar + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 4) { + ForEach(Tab.allCases, id: \.self) { tab in + Button(action: { + if tab.isEnabled { + selectedTab = tab + } + }) { + Text(tab.title) + .font(.subheadline.weight(.medium)) + .foregroundColor( + selectedTab == tab + ? .appForegroundAdaptive + : .appMutedForegroundAdaptive + ) + .padding(.horizontal, 12) + .padding(.vertical, 6) + .background( + selectedTab == tab + ? Color.appBackgroundAdaptive + : Color.clear + ) + .cornerRadius(6) + .shadow( + color: selectedTab == tab ? Color.black.opacity(0.08) : Color.clear, + radius: 2, + x: 0, + y: 1 + ) + } + .disabled(!tab.isEnabled) + } + } + .padding(4) + .background(Color.appInputFilled) + .cornerRadius(10) + .padding(.horizontal, 24) + } + + // Tab Content + VStack(spacing: 0) { + switch selectedTab { + case .reviews: + Text("Reviews list") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 32) + case .whereToWatch: + Text("Where to Watch") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 32) + case .credits: + Text("Credits") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 32) + case .recommendations: + Text("Recommendations") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 32) + case .similar: + Text("Similar") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 32) + case .images: + Text("Images") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 32) + case .videos: + Text("Videos") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 32) + } + } + .padding(.top, 16) + } + } +} + // MARK: - Badge View struct BadgeView: View { let text: String @@ -233,11 +361,11 @@ struct RatingBadge: View { Text(String(format: "%.1f", rating)) .font(.caption.bold()) - .foregroundColor(.appForegroundAdaptive) + .foregroundColor(.appBackgroundAdaptive) } .padding(.horizontal, 10) .padding(.vertical, 6) - .background(Color.appInputFilled) + .background(Color.appForegroundAdaptive) .clipShape(RoundedRectangle(cornerRadius: 8)) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift index 001cb287..9133cb72 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift @@ -16,7 +16,8 @@ struct ReviewSheet: View { @State private var reviewText: String = "" @State private var hasSpoilers: Bool = false @State private var isLoading: Bool = false - @State private var errorMessage: String? + @State private var showErrorAlert: Bool = false + @State private var errorMessage: String = "" init(mediaId: Int, mediaType: String, existingReview: Review? = nil) { self.mediaId = mediaId @@ -43,30 +44,21 @@ struct ReviewSheet: View { .padding(.bottom, 8) ScrollView { - VStack(spacing: 20) { + VStack(spacing: 16) { // Title Text(L10n.current.whatDidYouThink) .font(.title3.bold()) .foregroundColor(.appForegroundAdaptive) .frame(maxWidth: .infinity, alignment: .center) - .padding(.top, 8) + .padding(.top, 4) // Rating - VStack(spacing: 12) { - StarRatingView(rating: $rating, size: 36) - .frame(maxWidth: .infinity) - } + StarRatingView(rating: $rating, size: 36) + .frame(maxWidth: .infinity) // Review Text VStack(alignment: .leading, spacing: 8) { ZStack(alignment: .topLeading) { - if reviewText.isEmpty { - Text(L10n.current.shareYourOpinion) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.horizontal, 16) - .padding(.vertical, 12) - } - TextEditor(text: $reviewText) .frame(minHeight: 120) .padding(.horizontal, 12) @@ -75,6 +67,14 @@ struct ReviewSheet: View { .cornerRadius(12) .foregroundColor(.appForegroundAdaptive) .scrollContentBackground(.hidden) + + if reviewText.isEmpty { + Text(L10n.current.shareYourOpinion) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 16) + .padding(.vertical, 12) + .allowsHitTesting(false) + } } } @@ -85,7 +85,7 @@ struct ReviewSheet: View { Image(systemName: hasSpoilers ? "checkmark.square.fill" : "square") .font(.system(size: 20)) .foregroundColor(hasSpoilers ? .accentColor : .gray) - + Text(L10n.current.containSpoilers) .font(.subheadline) .foregroundColor(.appMutedForegroundAdaptive) @@ -95,14 +95,6 @@ struct ReviewSheet: View { } .padding(.vertical, 4) - // Error Message - if let errorMessage = errorMessage { - Text(errorMessage) - .font(.caption) - .foregroundColor(.red) - .frame(maxWidth: .infinity, alignment: .center) - } - // Submit Button Button(action: submitReview) { Group { @@ -124,12 +116,19 @@ struct ReviewSheet: View { .opacity(!isFormValid || isLoading ? 0.5 : 1) } .padding(.horizontal, 24) - .padding(.bottom, 24) + .padding(.bottom, 16) } } } - .standardSheetStyle() + .presentationDetents([.height(420)]) + .presentationCornerRadius(24) + .presentationDragIndicator(.hidden) .preferredColorScheme(themeManager.current.colorScheme) + .alert("Error", isPresented: $showErrorAlert) { + Button("OK", role: .cancel) {} + } message: { + Text(errorMessage) + } } private var isFormValid: Bool { @@ -139,11 +138,11 @@ struct ReviewSheet: View { private func submitReview() { guard isFormValid else { errorMessage = L10n.current.reviewRequired + showErrorAlert = true return } isLoading = true - errorMessage = nil Task { do { @@ -172,6 +171,7 @@ struct ReviewSheet: View { await MainActor.run { isLoading = false errorMessage = error.localizedDescription + showErrorAlert = true } } } From 2f8a4fa55fcdf5b232f96065e4a987ef833fdb6f Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Wed, 14 Jan 2026 22:39:56 -0300 Subject: [PATCH 15/77] feat(ui): introduce ReviewButton component and integrate it into MediaDetailView for improved review interaction --- .../Plotwist/Components/ReviewButton.swift | 35 +++++++++++++++++++ .../Views/Details/MediaDetailView.swift | 6 +--- 2 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift b/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift new file mode 100644 index 00000000..a4762645 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift @@ -0,0 +1,35 @@ +// +// ReviewButton.swift +// Plotwist +// + +import SwiftUI + +struct ReviewButton: View { + let hasReview: Bool + let action: () -> Void + + var body: some View { + ActionButton( + hasReview ? L10n.current.reviewed : L10n.current.review, + icon: hasReview ? "star.fill" : "star", + iconColor: hasReview ? .yellow : nil, + action: action + ) + } +} + +#Preview { + VStack(spacing: 16) { + HStack { + ReviewButton(hasReview: false) {} + Spacer() + } + + HStack { + ReviewButton(hasReview: true) {} + Spacer() + } + } + .padding() +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index b4becc51..52798bb2 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -109,11 +109,7 @@ struct MediaDetailView: View { // Review Button if AuthService.shared.isAuthenticated { HStack { - ActionButton( - userReview != nil ? L10n.current.reviewed : L10n.current.review, - icon: userReview != nil ? "star.fill" : "star", - iconColor: userReview != nil ? .yellow : nil - ) { + ReviewButton(hasReview: userReview != nil) { showReviewSheet = true } From df6d07d545351e8a2c1fdfdf6328548f44764f36 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Wed, 14 Jan 2026 22:52:48 -0300 Subject: [PATCH 16/77] feat(review): add ReviewItemView and ReviewListView components for displaying reviews with loading and error states --- .../Plotwist/Components/ReviewItemView.swift | 207 ++++++++++++++++++ .../Plotwist/Localization/Strings.swift | 23 +- .../Plotwist/Services/ReviewService.swift | 80 ++++++- .../Views/Details/MediaDetailView.swift | 5 +- .../Views/Details/ReviewListView.swift | 132 +++++++++++ 5 files changed, 434 insertions(+), 13 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift b/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift new file mode 100644 index 00000000..a84af2f1 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift @@ -0,0 +1,207 @@ +// +// ReviewItemView.swift +// Plotwist +// + +import SwiftUI + +struct ReviewItemView: View { + let review: ReviewListItem + + private var usernameInitial: String { + review.user.username.first?.uppercased() ?? "?" + } + + private var timeAgo: String { + let formatter = RelativeDateTimeFormatter() + formatter.unitsStyle = .abbreviated + + let dateFormatter = ISO8601DateFormatter() + dateFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + + if let date = dateFormatter.date(from: review.createdAt) { + return formatter.localizedString(for: date, relativeTo: Date()) + } + return "" + } + + var body: some View { + HStack(alignment: .top, spacing: 12) { + // Avatar + if let avatarUrl = review.user.avatarUrl, + let url = URL(string: avatarUrl) + { + AsyncImage(url: url) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + avatarFallback + } + } + .frame(width: 40, height: 40) + .clipShape(Circle()) + .overlay(Circle().stroke(Color.appBorderAdaptive, lineWidth: 1)) + } else { + avatarFallback + } + + // Content + VStack(alignment: .leading, spacing: 8) { + // Header + HStack(spacing: 6) { + Text(review.user.username) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + + Circle() + .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) + .frame(width: 4, height: 4) + + // Rating stars + HStack(spacing: 2) { + ForEach(1...5, id: \.self) { index in + Image(systemName: ratingIcon(for: index)) + .font(.system(size: 10)) + .foregroundColor(ratingColor(for: index)) + } + } + + Circle() + .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) + .frame(width: 4, height: 4) + + Text(timeAgo) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + + // Review content + if !review.review.isEmpty { + ZStack(alignment: .topLeading) { + Text(review.review) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + .lineSpacing(4) + .blur(radius: review.hasSpoilers ? 6 : 0) + + if review.hasSpoilers { + Text(L10n.current.containSpoilers) + .font(.caption.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background(Color.appInputFilled) + .cornerRadius(6) + } + } + .padding(12) + .frame(maxWidth: .infinity, alignment: .leading) + .background(Color.appInputFilled.opacity(0.5)) + .overlay( + RoundedRectangle(cornerRadius: 8) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + .cornerRadius(8) + } + + // Actions + HStack(spacing: 16) { + HStack(spacing: 4) { + Image(systemName: "heart") + .font(.system(size: 12)) + Text("\(review.likeCount)") + .font(.caption) + } + .foregroundColor(.appMutedForegroundAdaptive) + + HStack(spacing: 4) { + Image(systemName: "bubble.right") + .font(.system(size: 12)) + Text("\(review.replyCount)") + .font(.caption) + } + .foregroundColor(.appMutedForegroundAdaptive) + } + } + } + } + + private var avatarFallback: some View { + Circle() + .fill(Color.appInputFilled) + .frame(width: 40, height: 40) + .overlay( + Text(usernameInitial) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + ) + .overlay(Circle().stroke(Color.appBorderAdaptive, lineWidth: 1)) + } + + private func ratingIcon(for index: Int) -> String { + let rating = review.rating + if Double(index) <= rating { + return "star.fill" + } else if Double(index) - 0.5 <= rating { + return "star.leadinghalf.filled" + } else { + return "star" + } + } + + private func ratingColor(for index: Int) -> Color { + let rating = review.rating + if Double(index) <= rating || Double(index) - 0.5 <= rating { + return .yellow + } else { + return .gray.opacity(0.3) + } + } +} + +#Preview { + VStack(spacing: 16) { + ReviewItemView( + review: ReviewListItem( + id: "1", + userId: "user1", + tmdbId: 123, + mediaType: "MOVIE", + review: + "This is an amazing movie! The cinematography was beautiful and the acting was superb.", + rating: 4.5, + hasSpoilers: false, + seasonNumber: nil, + episodeNumber: nil, + language: "en-US", + createdAt: "2025-01-10T12:00:00.000Z", + user: ReviewUser(id: "user1", username: "johndoe", avatarUrl: nil), + likeCount: 5, + replyCount: 2, + userLike: nil + )) + + ReviewItemView( + review: ReviewListItem( + id: "2", + userId: "user2", + tmdbId: 123, + mediaType: "MOVIE", + review: "Contains major plot spoilers about the ending!", + rating: 3.0, + hasSpoilers: true, + seasonNumber: nil, + episodeNumber: nil, + language: "en-US", + createdAt: "2025-01-09T12:00:00.000Z", + user: ReviewUser(id: "user2", username: "janedoe", avatarUrl: nil), + likeCount: 10, + replyCount: 0, + userLike: nil + )) + } + .padding() +} diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 8b9c40f3..41598e31 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -79,7 +79,8 @@ enum L10n { tabRecommendations: "Recommendations", tabSimilar: "Similar", tabImages: "Images", - tabVideos: "Videos" + tabVideos: "Videos", + beFirstToReview: "Be the first to leave your opinion" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -147,7 +148,8 @@ enum L10n { tabRecommendations: "Recomendações", tabSimilar: "Similares", tabImages: "Imagens", - tabVideos: "Vídeos" + tabVideos: "Vídeos", + beFirstToReview: "Seja o primeiro a deixar sua opinião" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -215,7 +217,8 @@ enum L10n { tabRecommendations: "Recomendaciones", tabSimilar: "Similares", tabImages: "Imágenes", - tabVideos: "Videos" + tabVideos: "Videos", + beFirstToReview: "Sé el primero en dejar tu opinión" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -283,7 +286,8 @@ enum L10n { tabRecommendations: "Recommandations", tabSimilar: "Similaires", tabImages: "Images", - tabVideos: "Vidéos" + tabVideos: "Vidéos", + beFirstToReview: "Soyez le premier à donner votre avis" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -351,7 +355,8 @@ enum L10n { tabRecommendations: "Empfehlungen", tabSimilar: "Ähnliche", tabImages: "Bilder", - tabVideos: "Videos" + tabVideos: "Videos", + beFirstToReview: "Sei der Erste, der seine Meinung teilt" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -419,7 +424,8 @@ enum L10n { tabRecommendations: "Raccomandazioni", tabSimilar: "Simili", tabImages: "Immagini", - tabVideos: "Video" + tabVideos: "Video", + beFirstToReview: "Sii il primo a lasciare la tua opinione" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -486,7 +492,8 @@ enum L10n { tabRecommendations: "おすすめ", tabSimilar: "類似作品", tabImages: "画像", - tabVideos: "動画" + tabVideos: "動画", + beFirstToReview: "最初にレビューを書いてください" ), ] } @@ -563,4 +570,6 @@ struct Strings { let tabSimilar: String let tabImages: String let tabVideos: String + // Review List + let beFirstToReview: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift b/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift index 8f6bc9e8..1bfd3d99 100644 --- a/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift @@ -159,6 +159,52 @@ class ReviewService { throw ReviewError.invalidResponse } } + + // MARK: - Get Reviews List + func getReviews( + tmdbId: Int, + mediaType: String, + orderBy: String = "createdAt", + limit: Int = 50, + seasonNumber: Int? = nil, + episodeNumber: Int? = nil + ) async throws -> [ReviewListItem] { + var urlString = + "\(API.baseURL)/reviews?tmdbId=\(tmdbId)&mediaType=\(mediaType)&orderBy=\(orderBy)&limit=\(limit)" + + if let seasonNumber = seasonNumber { + urlString += "&seasonNumber=\(seasonNumber)" + } + + if let episodeNumber = episodeNumber { + urlString += "&episodeNumber=\(episodeNumber)" + } + + guard let url = URL(string: urlString) else { + throw ReviewError.invalidURL + } + + var request = URLRequest(url: url) + + // Add token if available (optional auth) + if let token = UserDefaults.standard.string(forKey: "token") { + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + } + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw ReviewError.invalidResponse + } + + guard http.statusCode == 200 else { + throw ReviewError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return try decoder.decode([ReviewListItem].self, from: data) + } } // MARK: - Models @@ -172,15 +218,45 @@ struct Review: Codable, Identifiable { let hasSpoilers: Bool let seasonNumber: Int? let episodeNumber: Int? - let language: String + let language: String? let createdAt: String - let updatedAt: String } struct ReviewResponse: Codable { let review: Review? } +struct ReviewUser: Codable { + let id: String + let username: String + let avatarUrl: String? +} + +struct UserLike: Codable { + let id: String + let entityId: String + let userId: String + let createdAt: String +} + +struct ReviewListItem: Codable, Identifiable { + let id: String + let userId: String + let tmdbId: Int + let mediaType: String + let review: String + let rating: Double + let hasSpoilers: Bool + let seasonNumber: Int? + let episodeNumber: Int? + let language: String? + let createdAt: String + let user: ReviewUser + let likeCount: Int + let replyCount: Int + let userLike: UserLike? +} + struct ReviewData: Codable { let tmdbId: Int let mediaType: String diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 52798bb2..d0700d5b 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -289,10 +289,7 @@ struct MediaTabsView: View { VStack(spacing: 0) { switch selectedTab { case .reviews: - Text("Reviews list") - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.top, 32) + ReviewListView(mediaId: mediaId, mediaType: mediaType) case .whereToWatch: Text("Where to Watch") .font(.subheadline) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift new file mode 100644 index 00000000..83e4fd8a --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift @@ -0,0 +1,132 @@ +// +// ReviewListView.swift +// Plotwist +// + +import SwiftUI + +struct ReviewListView: View { + let mediaId: Int + let mediaType: String + + @State private var reviews: [ReviewListItem] = [] + @State private var isLoading = true + @State private var error: String? + + var body: some View { + VStack(spacing: 0) { + if isLoading { + // Loading state + VStack(spacing: 16) { + ForEach(0..<3, id: \.self) { _ in + ReviewItemSkeleton() + } + } + .padding(.horizontal, 24) + .padding(.top, 16) + } else if let error = error { + // Error state + VStack(spacing: 8) { + Image(systemName: "exclamationmark.triangle") + .font(.title) + .foregroundColor(.appMutedForegroundAdaptive) + Text(error) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } + .padding(.top, 32) + } else if reviews.isEmpty { + // Empty state + VStack(spacing: 8) { + Text(L10n.current.beFirstToReview) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + Text(L10n.current.shareYourOpinion) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 32) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(style: StrokeStyle(lineWidth: 1, dash: [5])) + .foregroundColor(.appBorderAdaptive) + ) + .padding(.horizontal, 24) + .padding(.top, 16) + } else { + // Reviews list + LazyVStack(spacing: 24) { + ForEach(reviews.filter { !$0.review.isEmpty }) { review in + ReviewItemView(review: review) + } + } + .padding(.horizontal, 24) + .padding(.top, 16) + } + } + .task { + await loadReviews() + } + } + + private func loadReviews() async { + isLoading = true + error = nil + + do { + let apiMediaType = mediaType == "movie" ? "MOVIE" : "TV_SHOW" + reviews = try await ReviewService.shared.getReviews( + tmdbId: mediaId, + mediaType: apiMediaType + ) + isLoading = false + } catch { + self.error = error.localizedDescription + isLoading = false + } + } +} + +// MARK: - Skeleton +struct ReviewItemSkeleton: View { + var body: some View { + HStack(alignment: .top, spacing: 12) { + // Avatar skeleton + Circle() + .fill(Color.appInputFilled) + .frame(width: 40, height: 40) + + VStack(alignment: .leading, spacing: 8) { + // Header skeleton + HStack(spacing: 8) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appInputFilled) + .frame(width: 80, height: 14) + + RoundedRectangle(cornerRadius: 4) + .fill(Color.appInputFilled) + .frame(width: 60, height: 14) + } + + // Content skeleton + VStack(alignment: .leading, spacing: 4) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appInputFilled) + .frame(height: 14) + RoundedRectangle(cornerRadius: 4) + .fill(Color.appInputFilled) + .frame(width: 200, height: 14) + } + .padding(12) + .background(Color.appInputFilled.opacity(0.3)) + .cornerRadius(8) + } + } + .redacted(reason: .placeholder) + } +} + +#Preview { + ReviewListView(mediaId: 123, mediaType: "movie") +} From 66879ff01279d1c5d3845af172725cd99bc1850b Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 19:17:07 -0300 Subject: [PATCH 17/77] feat(review): enhance ReviewItemView and ReviewListView with improved layout, loading states, and new localization strings for better user experience --- .../Plotwist/Components/ReviewItemView.swift | 76 +-- .../Plotwist/Localization/Strings.swift | 30 +- apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 21 + .../Views/Details/MediaDetailView.swift | 462 +++++++++++++----- .../Views/Details/ReviewListView.swift | 46 +- .../Plotwist/Views/Home/HomeView.swift | 2 +- 6 files changed, 433 insertions(+), 204 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift b/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift index a84af2f1..589999db 100644 --- a/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift +++ b/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift @@ -43,42 +43,36 @@ struct ReviewItemView: View { } .frame(width: 40, height: 40) .clipShape(Circle()) - .overlay(Circle().stroke(Color.appBorderAdaptive, lineWidth: 1)) } else { avatarFallback } // Content - VStack(alignment: .leading, spacing: 8) { - // Header - HStack(spacing: 6) { + VStack(alignment: .leading, spacing: 0) { + // Header: Username + Time (aligned to top) + HStack(alignment: .top) { Text(review.user.username) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - - Circle() - .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) - .frame(width: 4, height: 4) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) - // Rating stars - HStack(spacing: 2) { - ForEach(1...5, id: \.self) { index in - Image(systemName: ratingIcon(for: index)) - .font(.system(size: 10)) - .foregroundColor(ratingColor(for: index)) - } - } - - Circle() - .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) - .frame(width: 4, height: 4) + Spacer() Text(timeAgo) .font(.caption) .foregroundColor(.appMutedForegroundAdaptive) } - // Review content + // Rating stars (below username) + HStack(spacing: 2) { + ForEach(1...5, id: \.self) { index in + Image(systemName: ratingIcon(for: index)) + .font(.system(size: 14)) + .foregroundColor(ratingColor(for: index)) + } + } + .padding(.top, 4) + + // Review content (below stars) if !review.review.isEmpty { ZStack(alignment: .topLeading) { Text(review.review) @@ -97,48 +91,22 @@ struct ReviewItemView: View { .cornerRadius(6) } } - .padding(12) - .frame(maxWidth: .infinity, alignment: .leading) - .background(Color.appInputFilled.opacity(0.5)) - .overlay( - RoundedRectangle(cornerRadius: 8) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) - .cornerRadius(8) - } - - // Actions - HStack(spacing: 16) { - HStack(spacing: 4) { - Image(systemName: "heart") - .font(.system(size: 12)) - Text("\(review.likeCount)") - .font(.caption) - } - .foregroundColor(.appMutedForegroundAdaptive) - - HStack(spacing: 4) { - Image(systemName: "bubble.right") - .font(.system(size: 12)) - Text("\(review.replyCount)") - .font(.caption) - } - .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 8) } } } + .frame(maxWidth: .infinity, alignment: .leading) } private var avatarFallback: some View { Circle() - .fill(Color.appInputFilled) + .fill(Color.appForegroundAdaptive) .frame(width: 40, height: 40) .overlay( Text(usernameInitial) .font(.subheadline.weight(.medium)) - .foregroundColor(.appForegroundAdaptive) + .foregroundColor(.appBackgroundAdaptive) ) - .overlay(Circle().stroke(Color.appBorderAdaptive, lineWidth: 1)) } private func ratingIcon(for index: Int) -> String { @@ -163,7 +131,7 @@ struct ReviewItemView: View { } #Preview { - VStack(spacing: 16) { + VStack(spacing: 32) { ReviewItemView( review: ReviewListItem( id: "1", diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 41598e31..b2092d1d 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -80,7 +80,9 @@ enum L10n { tabSimilar: "Similar", tabImages: "Images", tabVideos: "Videos", - beFirstToReview: "Be the first to leave your opinion" + beFirstToReview: "Be the first to leave your opinion", + seeAll: "See all reviews", + showMore: "Show more" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -149,7 +151,9 @@ enum L10n { tabSimilar: "Similares", tabImages: "Imagens", tabVideos: "Vídeos", - beFirstToReview: "Seja o primeiro a deixar sua opinião" + beFirstToReview: "Seja o primeiro a deixar sua opinião", + seeAll: "Ver todas as avaliações", + showMore: "Ver mais" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -218,7 +222,9 @@ enum L10n { tabSimilar: "Similares", tabImages: "Imágenes", tabVideos: "Videos", - beFirstToReview: "Sé el primero en dejar tu opinión" + beFirstToReview: "Sé el primero en dejar tu opinión", + seeAll: "Ver todas las reseñas", + showMore: "Ver más" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -287,7 +293,9 @@ enum L10n { tabSimilar: "Similaires", tabImages: "Images", tabVideos: "Vidéos", - beFirstToReview: "Soyez le premier à donner votre avis" + beFirstToReview: "Soyez le premier à donner votre avis", + seeAll: "Voir tous les avis", + showMore: "Voir plus" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -356,7 +364,9 @@ enum L10n { tabSimilar: "Ähnliche", tabImages: "Bilder", tabVideos: "Videos", - beFirstToReview: "Sei der Erste, der seine Meinung teilt" + beFirstToReview: "Sei der Erste, der seine Meinung teilt", + seeAll: "Alle Bewertungen anzeigen", + showMore: "Mehr anzeigen" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -425,7 +435,9 @@ enum L10n { tabSimilar: "Simili", tabImages: "Immagini", tabVideos: "Video", - beFirstToReview: "Sii il primo a lasciare la tua opinione" + beFirstToReview: "Sii il primo a lasciare la tua opinione", + seeAll: "Vedi tutte le recensioni", + showMore: "Mostra di più" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -493,7 +505,9 @@ enum L10n { tabSimilar: "類似作品", tabImages: "画像", tabVideos: "動画", - beFirstToReview: "最初にレビューを書いてください" + beFirstToReview: "最初にレビューを書いてください", + seeAll: "すべてのレビューを見る", + showMore: "もっと見る" ), ] } @@ -572,4 +586,6 @@ struct Strings { let tabVideos: String // Review List let beFirstToReview: String + let seeAll: String + let showMore: String } diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift index 3e3c4320..05653afa 100644 --- a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -57,3 +57,24 @@ extension Color { static let appDestructive = Color(hue: 0, saturation: 0.842, brightness: 0.602) } + +// MARK: - Layered Shadow Modifier +extension View { + /// Applies a smooth layered shadow effect similar to iOS app icons + /// Based on the "Derek Briggs" shadow style with multiple stacked layers + func posterShadow() -> some View { + self + // Base border shadow (spread: 1px simulated with small radius) + .shadow(color: Color.black.opacity(0.05), radius: 0.5, x: 0, y: 0) + // Layer 1: Y: 1px, Blur: 1px + .shadow(color: Color.black.opacity(0.05), radius: 0.5, x: 0, y: 1) + // Layer 2: Y: 2px, Blur: 2px + .shadow(color: Color.black.opacity(0.05), radius: 1, x: 0, y: 2) + // Layer 3: Y: 4px, Blur: 4px + .shadow(color: Color.black.opacity(0.05), radius: 2, x: 0, y: 4) + // Layer 4: Y: 8px, Blur: 8px + .shadow(color: Color.black.opacity(0.05), radius: 4, x: 0, y: 8) + // Layer 5: Y: 16px, Blur: 16px + .shadow(color: Color.black.opacity(0.05), radius: 8, x: 0, y: 16) + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index d0700d5b..415ca23e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -83,7 +83,7 @@ struct MediaDetailView: View { } .frame(width: 140, height: 210) .clipShape(RoundedRectangle(cornerRadius: 16)) - .shadow(color: Color.black.opacity(0.15), radius: 4, x: 0, y: 2) + .posterShadow() // Info VStack(alignment: .leading, spacing: 4) { @@ -125,14 +125,10 @@ struct MediaDetailView: View { .lineSpacing(4) } - // Rating and Genres Badges - ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 8) { - if let rating = details.voteAverage, rating > 0 { - RatingBadge(rating: rating) - } - - if let genres = details.genres { + // Genres Badges + if let genres = details.genres, !genres.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 8) { ForEach(genres) { genre in BadgeView(text: genre.name) } @@ -143,12 +139,22 @@ struct MediaDetailView: View { .padding(.horizontal, 24) .offset(y: contentOffset) - // Tabs - MediaTabsView( + Spacer() + .frame(height: 24) + .offset(y: contentOffset) + + // Divider + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + .padding(.horizontal, 24) + .offset(y: contentOffset) + + // Rating Section (Airbnb style) + RatingSectionView( mediaId: mediaId, mediaType: mediaType ) - .padding(.top, 20) .offset(y: contentOffset) } .padding(.bottom, 80) @@ -209,120 +215,341 @@ struct MediaDetailView: View { } } -// MARK: - Tabs View -struct MediaTabsView: View { +// MARK: - Rating Section (Airbnb style) +struct RatingSectionView: View { let mediaId: Int let mediaType: String - @State private var selectedTab: Tab = .reviews - - enum Tab: String, CaseIterable { - case reviews - case whereToWatch - case credits - case recommendations - case similar - case images - case videos - - var title: String { - let strings = L10n.current - switch self { - case .reviews: return strings.tabReviews - case .whereToWatch: return strings.tabWhereToWatch - case .credits: return strings.tabCredits - case .recommendations: return strings.tabRecommendations - case .similar: return strings.tabSimilar - case .images: return strings.tabImages - case .videos: return strings.tabVideos - } - } + @State private var reviews: [ReviewListItem] = [] + @State private var isLoading = true + @State private var error: String? - var isEnabled: Bool { - true - } + private var averageRating: Double { + guard !reviews.isEmpty else { return 0 } + let total = reviews.reduce(0) { $0 + $1.rating } + return total / Double(reviews.count) + } + + private var reviewsWithText: [ReviewListItem] { + reviews.filter { !$0.review.isEmpty } } var body: some View { VStack(spacing: 0) { - // Tab Bar - ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 4) { - ForEach(Tab.allCases, id: \.self) { tab in - Button(action: { - if tab.isEnabled { - selectedTab = tab + // Rating Header + VStack(spacing: 16) { + if isLoading { + // Loading skeleton + VStack(spacing: 8) { + RoundedRectangle(cornerRadius: 8) + .fill(Color.appInputFilled) + .frame(width: 80, height: 48) + RoundedRectangle(cornerRadius: 4) + .fill(Color.appInputFilled) + .frame(width: 100, height: 16) + } + .shimmer() + .padding(.vertical, 24) + } else if reviews.isEmpty { + // Empty state + VStack(spacing: 8) { + Text(L10n.current.beFirstToReview) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + Text(L10n.current.shareYourOpinion) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 32) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(style: StrokeStyle(lineWidth: 1, dash: [5])) + .foregroundColor(.appBorderAdaptive) + ) + .padding(.horizontal, 24) + .padding(.top, 24) + } else { + // Rating display + VStack(spacing: 4) { + // Large rating number + Text(String(format: "%.1f", averageRating)) + .font(.system(size: 56, weight: .semibold, design: .rounded)) + .foregroundColor(.appForegroundAdaptive) + + // Stars + HStack(spacing: 4) { + ForEach(1...5, id: \.self) { index in + Image(systemName: starIcon(for: index)) + .font(.system(size: 14)) + .foregroundColor(starColor(for: index)) } - }) { - Text(tab.title) - .font(.subheadline.weight(.medium)) - .foregroundColor( - selectedTab == tab - ? .appForegroundAdaptive - : .appMutedForegroundAdaptive - ) - .padding(.horizontal, 12) - .padding(.vertical, 6) - .background( - selectedTab == tab - ? Color.appBackgroundAdaptive - : Color.clear - ) - .cornerRadius(6) - .shadow( - color: selectedTab == tab ? Color.black.opacity(0.08) : Color.clear, - radius: 2, - x: 0, - y: 1 - ) } - .disabled(!tab.isEnabled) + + // Reviews count + Text( + "\(reviews.count) \(reviews.count == 1 ? L10n.current.review.lowercased() : L10n.current.tabReviews.lowercased())" + ) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 4) } + .frame(maxWidth: .infinity) + .padding(.vertical, 24) } - .padding(4) - .background(Color.appInputFilled) - .cornerRadius(10) - .padding(.horizontal, 24) } - // Tab Content - VStack(spacing: 0) { - switch selectedTab { - case .reviews: - ReviewListView(mediaId: mediaId, mediaType: mediaType) - case .whereToWatch: - Text("Where to Watch") - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.top, 32) - case .credits: - Text("Credits") - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.top, 32) - case .recommendations: - Text("Recommendations") - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.top, 32) - case .similar: - Text("Similar") - .font(.subheadline) + // Horizontal scrolling reviews + if !isLoading && !reviewsWithText.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 0) { + ForEach(Array(reviewsWithText.enumerated()), id: \.element.id) { index, review in + HStack(spacing: 0) { + ReviewCardView(review: review) + .frame(width: UIScreen.main.bounds.width * 0.8) + + // Vertical divider (except for last item) + if index < reviewsWithText.count - 1 { + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(width: 1) + .padding(.vertical, 16) + .padding(.trailing, 16) + } + } + } + } + .padding(.leading, 8) + } + .padding(.top, 8) + + // See all button + Button(action: { + // TODO: Navigate to all reviews + }) { + Text(L10n.current.seeAll) + .font(.subheadline.weight(.medium)) .foregroundColor(.appMutedForegroundAdaptive) - .padding(.top, 32) - case .images: - Text("Images") - .font(.subheadline) + .frame(maxWidth: .infinity) + .padding(.vertical, 14) + .background(Color.appInputFilled) + .cornerRadius(12) + } + .disabled(true) + .opacity(0.5) + .padding(.horizontal, 24) + .padding(.top, 16) + } + } + .task { + await loadReviews() + } + } + + private func loadReviews() async { + isLoading = true + error = nil + + do { + let apiMediaType = mediaType == "movie" ? "MOVIE" : "TV_SHOW" + reviews = try await ReviewService.shared.getReviews( + tmdbId: mediaId, + mediaType: apiMediaType + ) + isLoading = false + } catch { + self.error = error.localizedDescription + isLoading = false + } + } + + private func starIcon(for index: Int) -> String { + if Double(index) <= averageRating { + return "star.fill" + } else if Double(index) - 0.5 <= averageRating { + return "star.leadinghalf.filled" + } else { + return "star" + } + } + + private func starColor(for index: Int) -> Color { + if Double(index) <= averageRating || Double(index) - 0.5 <= averageRating { + return .appForegroundAdaptive + } else { + return .gray.opacity(0.3) + } + } +} + +// MARK: - Review Card (for horizontal scroll) +struct ReviewCardView: View { + let review: ReviewListItem + + // Fixed height for review card content + private let cardHeight: CGFloat = 180 + private let maxTextLines: Int = 3 + + private var usernameInitial: String { + review.user.username.first?.uppercased() ?? "?" + } + + private var timeAgo: String { + let formatter = RelativeDateTimeFormatter() + formatter.unitsStyle = .abbreviated + + let dateFormatter = ISO8601DateFormatter() + dateFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + + if let date = dateFormatter.date(from: review.createdAt) { + return formatter.localizedString(for: date, relativeTo: Date()) + } + return "" + } + + private var userRank: String { + // Fictional rank based on review count or rating + let ranks = ["Cinéfilo", "Crítico", "Entusiasta", "Maratonista", "Expert"] + let index = abs(review.user.id.hashValue) % ranks.count + return ranks[index] + } + + // Check if text is likely truncated (rough estimate) + private var isTextLong: Bool { + review.review.count > 150 + } + + var body: some View { + VStack(alignment: .leading, spacing: 8) { + // Header: Avatar + Username + Badge + HStack(spacing: 10) { + // Avatar + if let avatarUrl = review.user.avatarUrl, + let url = URL(string: avatarUrl) + { + AsyncImage(url: url) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + avatarFallback + } + } + .frame(width: 40, height: 40) + .clipShape(Circle()) + } else { + avatarFallback + } + + VStack(alignment: .leading, spacing: 2) { + Text(review.user.username) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + + // Rank badge + Text(userRank) + .font(.caption) .foregroundColor(.appMutedForegroundAdaptive) - .padding(.top, 32) - case .videos: - Text("Videos") - .font(.subheadline) + } + + Spacer() + } + + // Stars + Time + HStack(spacing: 6) { + // Stars + HStack(spacing: 2) { + ForEach(1...5, id: \.self) { index in + Image(systemName: ratingIcon(for: index)) + .font(.system(size: 10)) + .foregroundColor(ratingColor(for: index)) + } + } + + Circle() + .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) + .frame(width: 3, height: 3) + + Text(timeAgo) + .font(.caption2) + .foregroundColor(.appMutedForegroundAdaptive) + + Spacer() + } + + // Review text + if !review.review.isEmpty { + Text(review.review) + .font(.callout) + .foregroundColor(.appForegroundAdaptive) + .lineSpacing(4) + .lineLimit(maxTextLines) + .frame(maxWidth: .infinity, alignment: .leading) + .blur(radius: review.hasSpoilers ? 6 : 0) + .overlay( + review.hasSpoilers + ? Text(L10n.current.containSpoilers) + .font(.caption.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background(Color.appInputFilled) + .cornerRadius(6) + : nil + ) + } + + // Show more button (if text is long) + if isTextLong && !review.hasSpoilers { + Button(action: { + // TODO: Expand review + }) { + Text(L10n.current.showMore) + .font(.subheadline.weight(.medium)) .foregroundColor(.appMutedForegroundAdaptive) - .padding(.top, 32) + .underline() } + .disabled(true) } - .padding(.top, 16) + + Spacer(minLength: 0) + } + .frame(height: cardHeight) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.leading, 16) + .padding(.trailing, 24) + } + + private var avatarFallback: some View { + Circle() + .fill(Color.appInputFilled) + .frame(width: 40, height: 40) + .overlay( + Text(usernameInitial) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + ) + } + + private func ratingIcon(for index: Int) -> String { + let rating = review.rating + if Double(index) <= rating { + return "star.fill" + } else if Double(index) - 0.5 <= rating { + return "star.leadinghalf.filled" + } else { + return "star" + } + } + + private func ratingColor(for index: Int) -> Color { + let rating = review.rating + if Double(index) <= rating || Double(index) - 0.5 <= rating { + return .yellow + } else { + return .gray.opacity(0.3) } } } @@ -341,24 +568,3 @@ struct BadgeView: View { .clipShape(RoundedRectangle(cornerRadius: 8)) } } - -// MARK: - Rating Badge -struct RatingBadge: View { - let rating: Double - - var body: some View { - HStack(spacing: 4) { - Image(systemName: "star.fill") - .font(.caption) - .foregroundColor(.yellow) - - Text(String(format: "%.1f", rating)) - .font(.caption.bold()) - .foregroundColor(.appBackgroundAdaptive) - } - .padding(.horizontal, 10) - .padding(.vertical, 6) - .background(Color.appForegroundAdaptive) - .clipShape(RoundedRectangle(cornerRadius: 8)) - } -} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift index 83e4fd8a..91864bdb 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift @@ -56,13 +56,21 @@ struct ReviewListView: View { .padding(.top, 16) } else { // Reviews list - LazyVStack(spacing: 24) { - ForEach(reviews.filter { !$0.review.isEmpty }) { review in - ReviewItemView(review: review) + LazyVStack(spacing: 0) { + ForEach(Array(reviews.filter { !$0.review.isEmpty }.enumerated()), id: \.element.id) { index, review in + VStack(spacing: 0) { + ReviewItemView(review: review) + .padding(.vertical, 16) + + // Divider (except for last item) + if index < reviews.filter({ !$0.review.isEmpty }).count - 1 { + Divider() + .background(Color.appBorderAdaptive.opacity(0.5)) + } + } } } .padding(.horizontal, 24) - .padding(.top, 16) } } .task { @@ -97,19 +105,31 @@ struct ReviewItemSkeleton: View { .fill(Color.appInputFilled) .frame(width: 40, height: 40) - VStack(alignment: .leading, spacing: 8) { - // Header skeleton - HStack(spacing: 8) { + VStack(alignment: .leading, spacing: 0) { + // Header: username + time + HStack { RoundedRectangle(cornerRadius: 4) .fill(Color.appInputFilled) - .frame(width: 80, height: 14) + .frame(width: 100, height: 14) + + Spacer() RoundedRectangle(cornerRadius: 4) .fill(Color.appInputFilled) - .frame(width: 60, height: 14) + .frame(width: 40, height: 12) + } + + // Stars skeleton + HStack(spacing: 2) { + ForEach(0..<5, id: \.self) { _ in + RoundedRectangle(cornerRadius: 2) + .fill(Color.appInputFilled) + .frame(width: 14, height: 14) + } } + .padding(.top, 4) - // Content skeleton + // Review text skeleton VStack(alignment: .leading, spacing: 4) { RoundedRectangle(cornerRadius: 4) .fill(Color.appInputFilled) @@ -118,12 +138,10 @@ struct ReviewItemSkeleton: View { .fill(Color.appInputFilled) .frame(width: 200, height: 14) } - .padding(12) - .background(Color.appInputFilled.opacity(0.3)) - .cornerRadius(8) + .padding(.top, 8) } } - .redacted(reason: .placeholder) + .shimmer() } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index a1468d04..50aaf7d7 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -317,7 +317,7 @@ struct PosterCard: View { } .aspectRatio(2 / 3, contentMode: .fit) .clipShape(RoundedRectangle(cornerRadius: 12)) - .shadow(color: Color.black.opacity(0.08), radius: 2, x: 0, y: 1) + .posterShadow() } } From a7b19a4d11dadd71ace1daedd7902a49e6321396 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 19:42:56 -0300 Subject: [PATCH 18/77] feat(ui): add FilmStrip asset and enhance MediaDetailView with featured rating display for highly rated content --- .../FilmStrip.imageset/Contents.json | 25 +++ .../FilmStrip.imageset/film-strip.png | Bin 0 -> 2300452 bytes .../Views/Details/MediaDetailView.swift | 144 +++++++++++++----- 3 files changed, 129 insertions(+), 40 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Assets.xcassets/FilmStrip.imageset/Contents.json create mode 100644 apps/ios/Plotwist/Plotwist/Assets.xcassets/FilmStrip.imageset/film-strip.png diff --git a/apps/ios/Plotwist/Plotwist/Assets.xcassets/FilmStrip.imageset/Contents.json b/apps/ios/Plotwist/Plotwist/Assets.xcassets/FilmStrip.imageset/Contents.json new file mode 100644 index 00000000..67f6f100 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Assets.xcassets/FilmStrip.imageset/Contents.json @@ -0,0 +1,25 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "film-strip.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "original" + } +} diff --git a/apps/ios/Plotwist/Plotwist/Assets.xcassets/FilmStrip.imageset/film-strip.png b/apps/ios/Plotwist/Plotwist/Assets.xcassets/FilmStrip.imageset/film-strip.png new file mode 100644 index 0000000000000000000000000000000000000000..a3e3a54ac92fd9fe680923e3a68ece9d835d97aa GIT binary patch literal 2300452 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¶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 lIrK|Hds%lHERRT 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∓dtW?J`=EO8S^lnk84*K-7tC1& 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𔥡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%0D}W>N{M_vPykoap(hcyVn^zfGvcH4( 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%0A>@eGZ&NC5bJ$u@xbml8y9Em{W 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≠FQ>>DZuw?}VK3-e&iooR`ItBx} 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

8?^P@Vv>g>|k(V3%wXTOHdNsnRb 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 -nnEHTD1kbyYcN1X1#<0WwA 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

#-qSZMzZnOtuTp=Jvv0 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

%S_)o2 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 YGH4yCWAQmjmO#D>uWC$;zEG*E!#l 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Ʀ<@z69ga21YQ>Vh%HPp83oa6BUfJbYw^+Y*+GRmj=kr88Q?u$YMVYX?>`A z5jMU{q=J`Mn5tyyqj=@}$#JW6DMmnGQ5iZ9>?#+-k1XE=j3`e>){vKrv~8%ikyY-YDW_rKP2L3ha!+*=Io-0i+maU_}T=82P) zrC&ttLPS^ISNHu~);{Jsn5-~3IO zZrp)?@s|zX``t(Q>bD))JHKWd4}ZfMTReIu+qHAnp1$GJ%O}`5cJ%#@0P7Z1xu@Am!IC`!?~w>tWEu^0yL;QuaJS=oYoG&XcVN>N zzjFX+M%559Fu7wf)rkbB>9!qb_6--$1&)@;yLZxV9mDS2VK_c_1~|8C*x5@Q904Eu zRN|AL1J3LvE?q>P*#pj;0rvL|M@PWHF>r8_c6baNEP>-=U^xSQgmjKfrJJwljG6p)KU>`4c~JU?2FwkKsRm%j5abJKt<~UcHIiH;(Ms zPBLzUZ?`SnfBz2d9z>eKBDx`FOq1t4r!A(*T%E+UK--MKgJlWD`;3o13Mn=|V$BH7kPy(6FNv|NMi-35B>i)g z($#_MR`TjZ$_<_l_6?Nf5Tav(sm}%# zB#097Gtcy_*qx}-r$Hl*9>fX=pp+LVeqTkD>3u@YjT~j?shnM;fmB>DInSqxWd5C6 zLrr{KKa*@|H0B1&K+8$ko5f#99m4dlf>XG|!_)}cc-64UDK~h1)UYUcO*1txevI5C zB?|E>U3egG0ye=!Dy#fpX<3D}ni|yvQcgego&8NZOPTO>W=s!__OQZ zqA<~BoWRtWf+any4DvIO@(fidawR9~9*#1z={aoFC1%w?)$eeO;;|aVk&d=0Re4rS z38F7}&xT4@_!%xg3f6bcHu14OKZgx?5ki>A)GRT9;6$~lPT@zeegT^5Qz|w}VZnT^ zm4hiHZkxtkCb3aNj-L!YyBZI-Q==E*9FN5*(qz2Dqz1ce>4;go8eb~XRWxWAfsFzg z8qv4OGzRa=H`TNZnvI(gOY6IYX$^fQET}4Xuh^{m0(=(}s<>bqR>{FQ-6}ZL@7L#F00-frv30!)YvuJ(M7>q33ctBMoRH0pRr$TDA zY?!-h*%opES&w?nbO)zQx1{>HIrP0cW&AmHwAmq3z)rD)H9J&AHe1bnF_nM>xEWI& z2(3_5fte*~=^F_>es;jfWLZNmiFiqXH{*SvL$X z4c^Aey`VFvo55>$q7}1jI*X7g%;qz&6H6&~7{P>heh(&ec9+wObkI8p27xpak+30H zte&eSGAD2!Xch2$r7psy!!@U^GofmNvs;Or)XYPff}{YK2%kZA0NtH(`Vu6i08^c5 z?L;*h2#S4UumrR|hv6K*;+;6ZpI4`svr(tMj%J-$WFbi^gp!O6QxmA;UYXt02Ibsl z)>-hGlE6sHAw7oK57I_AfzHYrg)s)d@Eqd<^deNU7&1D|%_|V6r23GFWHI(8bE-0x zvecS9Jq{?47I9>nLFMCSa;z>)hP*-`ZeQoaY-9EV5dtRghuRD>&ig4~XNipZmjrmc zK|lZj002ouK~$CmKBg{p3<+imBsHl6&y(-heKyk8)eKz8nWU3cD!&7`#=WYMWm?6@dJATm zzHR0$vDgM4e|_4W8~1SOGrtgv%aTb#`qcW(Nv zr(c9$H0N zq0O0C&6e{{qV1T)3675#|8~v*i!IAc*c@SQo{K3gy0JrH4O`yQJ>z&pGg&D#I!liWaMTRo{gBMnn`cTMRe&?!Wwg~ z9!RFv6;JX|437FnHMwkq-(5{WvmC?(v62)Aspd=4u)L`jtH;A;(FAx@!-wz6Nfelf zHg3z(I4pDBrnnU$#F{{775Z}(p~Jmjo1m(fOkzjv<5Hx_YpT|3=V_EU>M5RIA)0aa z4N313Q#V5g!^ZzgqAG>K#>l4bWHp*YxX#CS;&xGLLD;;3`6+xB2q*2~!fK;Ov-#z! z`J}Fdt~XgKno~l=pvEQm*_srkMZ7{JZ;H&aQ4_FiVC-vrIm19c0eI^}5yc;`oK(5v zuYK?LaJ5u29VDta>_kk-i(1n61aEsM-k1 zbO0)Vkd5zIY#a{}JMTO+7Kt?)kw_V!xJVI5tuaOx zx)QCVRTlMhH%$3pNEIBR0#@fATt!wR1K_hzm$K`ES8f7wcrw)IfC2#7iX0ct^uF13 zhrp1sra9j=q+&>r&5wCpS`RVHsk!dz9?R*N1yuz(L4=g^I?7~)1|Ky(ARNIzQ8w&G z)25QvljR^`kfG#L!6~s}NezgZ&wFyFvYG%9F{flw=Z{?h1mx-}qAikc#}%`XGAzL$ zz*>Ut&82*?D#l52P!TV-69Ag-p8_b|eG60u6OjnEP;y5zDFy2Gjeaqm-xb6R7!I=q zwD|9bK!k)!p$*e47Szq=AwzXaPypFXbD}Env3Y>PKuU@XpgxcYM_v-uV3CTzA(Ko= z`jn)q3uM7WH0gb3mZ1z8(u!G3UYj%M0$3)+OaUQwe|Sd1d8WquuPcIN$6d~KJro;hUyi^9FAj+03&y%y&7^f9Eye z)1L(9L!f7iGiS}Wc3a-(X|RsZ429H_prFIi?+Y}|L5w@ zgRS3=>o9C}?|sg>_q*TxM&J#2z{A5l&;SWQ0wE5jB1$qT#-=4Xwo+l@M2@SXRHYI- zE;&x65;-cfY{#VHR3#NLQY8`@6=SAEhZISX;sA;w0RkXF0>t=6y!o5IJDl^|-T7m! z-seK70>St0z32Rfy?d`-y?S-F_1fBDL%XoSs;?7=W_<(L;R@S3r}@fnf8L(^!@F2r zSz&!Ja@m=kodx=`2GTMR9FN?%cE=dlF2Jr@nM5dZTLiE&tk;GEZ@77T$(LRk_Qsp^ zZCE*Q;Q|5g-TQ{!l4wrn>4Pn<)IB>wW>{2utVcf^-|{-4_IH}2Ts#Un%} z?%mnp*6l6KIu4Hx^Wf+LZr!|ZKmPY#kDvJ8yz@fZI6K=41C5lioJmG+0@ga)blw(0 zxCpL_3!S51!wem)?5C=x!;O|e$f^7p;VNdRJt=)oCTdC^1UHM*RRmN;NQ804F)Vo= z&FIJ`@fR@pCgrRwFLGIBwU(bBnX?_BfHspiCHr+QgkfY=s|#!J_p^xpIxkGs_Mx*f zZQe7b{USPso->lqzXobU-b=csQaL0{B)tG#0O=w%kSNOmuV)r96$7p|iIlI(GQa|n zsns-mPJZDP6h0IYkReiZA`Zk5sqgfI7*lno7Zg17hdikw3`+vdLlSDSI?lBgaN@s! z{vF#1Q!?ZX;cAoGG>Dr*F@98E|2*kMaws8=;TRU0Hly=5nJ{}xEX!V*%XT`RF~h4+ zq;p*=5gSrmIM;VgL*Vs+*F6?Qr!ui5<-9(VhsFS`sZD~{tPcAiRi*o+Mn*kjMCgA(dL>a*~FB# ze0{k8)CXR;!uIDqtoq?0g@F`?bbCYft7kMSHq(JdKO&NM?OcJEPY{y?$*Oj!;3(Ck z@tUCgs8q9As+dU<1fn(iDHzAgpKr#ea=j&~*Uub>Qq%%Hi<)_dl^9HkO7f+-$77*+6 zO)a4zu;{gpl%<%+hX56>T4%^cqS>XK2~$z2DJR@3gAIB=^HH0K4i!$_rm`s9VE@&B z^%JPEC#l4cuIC2WKm>biLM)s?6(~g(x?L8-6LP!G$=rncT0)h2!;mk6*tsA>F)Yp< zRFY3bU=d5sn5a3spq$7uFot@ilxVW=O7fivN*tLb=^1m(NY>#M09ww#Jo}EIovS2+ z{VF0ckdr*v-z$OIIEUn8Nt84%pgF8{V9RfT>qpX; z)Ereok5H0Y%vchRP!5>dj5Qvl*kJ~noPVI}S1BQAa)kXM!j+DC8P(d; z_I(t5Zw6gI_T-J$B;Q|(0N`G7bjY`tAYSj;O_E>rTt$>zk+IWjtv8b!ueQ1ljk(di zWQCzvNz%wgsG7MdBTT=CuCb>Kcxpe0q~IE74_qk#`1~QFgB1f#J1)Rl=Lpwd2YBM2 z10$9^m`$t&%^CSlI09^7B{QVvB(5R`E?oew95wvL?;n5aAN)%E>}&V^q3?Vmmk&OU zIND?$TtLHsZx`U(MILN`JFmgscmsLivf(}NH@x+u2X^7{1K8yy#{%H>uyHG} zyO$Ance&lc$2RTcc;NI{K*|y5p1ozdd-oLpv)t~?#sJQ?p4*+pI19gfYuL#>;Ozdu zz5BrK9+S}Htqn(-Z{e-&d$8L8HU}JUci|AYv_e~71==CtYhdFIwi)oYURE2lI1BT2 zpdWS|9wjb5c!;*j#D&eWIy7HhUb_!794wK((Byb*GaM|(-+CQd-zI+pRZ=c24 z8_np5)Ul-Hb{DjoaAbOm4A}hu+<8=8;LtNclP@0 zf!p^imL+H~9l&-V&jz=^!h&R6*uV}B;75lI>-9+YZl}jfzHtwE=N@p6hJ+@g@I2eW zRt-4YB5&M9{-r+!{Q19d#n;X7&wqcLFMRXFzW)cWd1|Euw}-~GI=jxKvF zz}d3H@qHi`U~_b^^wk=tr(67||JRrL|K)%GzN6#aI6gaDxV~lFMCj9WCR7Yh5luyo z6L3cobC4Y6rmu5;pTt1qxprRcm4zYWF@y9{#%gbBH0+|p-2~=onnEuin)Qu&eZ()S zVkMK5p_~%JXC)md@E>(n#-JKaF(#D|lQU4WS%!XxpD)glVJ(THSoPwwB+QEGdlZ!j zrwSq|P9TUYqs|CnF*6sYigQ>+%%w112m^{X0Fp|EMe&!3yUuEU}eZZ2VaS>W)R?3l(#{*Gj3|13MwOjX6L_QOCPB;pq=`TM^ z9L>73he>dcUi64g7o~ZLpr+ZGH{fX}Yu%cSZy?R{fXf{a5 zIlXb{BV!Z$7BQb-Uc&suYVxA6wDxaSI|J9-NS%)W5`7w)^D_;WlI9bs$@nl})`co# z77-z{JsRpMT!3o=swS68!D=tK3If_Q)gtTgZ&w%_NsVcI44=h@W|7X->&!;3A1^u5V(DArRhmowbf2tdjcoEQr}u>_AtL>VfrIgYL7vrtlw;64(M= z*G)Qpwpn#oLAQxK8$P$970xLNU}AER*ny_96vk$BpT1e=4a+r3gP2q@e^ha$LFWf_ zK2%#7&sU_YEmO)UNfQ&|SVZ2rlN@o-OM*pcVKL)%bTW4pnD=1MY@jMbDANkasLCpN zHAxVvvc6{}vx2i;a@K=FF<@0y)f>%)EJzs zfG{IFms``RP$9NV$IdN_swkH+PtAVMT3-MH9dHpMb)<7Oz)+i8JbM&FS&U5V0}o6F zf;NLojlj@agAb#uI&H6pP@shyu*glp0dWLk>J+#{P@s%EkhA?fhLXNI8TG$(Q$6?0LB`cg;j$&v zl}c7u4C*xgVW!Na8cMgPRHTA9#jJB&%G63RgwZ;pzyp9%QtqEx-_x{I zv7?gd)a&NM<1}hiB?>l)Ij>j&22KcQa&J?aK_jkODLM%Bo`%4fDQ36;8sJK>wa64a z(g>tN2g-aU6(e2bT0N&)_p0i8dB9kcr2a;g~m^{?Dk6~=vS&P9o<2!Uqf}Ba%@lbPbxVMGvc1wQed;4#G_lMfU zzx>xs|& z4#xP66MN=8r+C}b8^8Xc#QLoV@Ph{1!foeqcy^kw5$3Jg0K6?2Teq{D;jcco#S7o+ z@$!ocZoQgz@79vXcY(80*vTmz4e`)5__eFRrOU7ft^?QKtgl}%yLiQ{UjSAcPaGt0V61<(bgX$W;1IwHiGyzF1K9Y$GT5oN0??B*)T#r= zVYrwa9Jg^=Y_72&(O})MgJG8)F&>1qlzlBB@G#&k1K-NTF&w9c#=h%)MXN$$ovY)Po#ffcC!nXG^A|TZkMiK$ZL-Tw#R|vk1I?{1 zISkguGHe-$0q2yM293q6>UAXrswy_{oWlgluJeTQWqNFg3k7PImTcd16ltN`-xnKv|(e^cTz6#;dQ1}7H5 zfbfQD{Y1oa)!c=9lERq_tRjrI(MLbAa!-9hp zXp%#hgT6VF`=Mmnt1uto06=z;A2CSC z3Fhm?5pyNgrsgDbtm=VjAbr9Lc6pBR&1RY3%x5ymqsrsB>r` zHNY0dj1bN-cs8yFFJ)iK=&#y(g>g}zGgIUF*6JC~{}l#F$iVil7=iui-KUV^_=>6!z6G6tm%6Our zi?#LO{Bn*GG`VI$ltYCV8M(AXE;bMF;=iJvW>hFw1w#o~G2{uZA1Aes(b}wB13{); z<&>JE=@D2=3871BiAqRZ?&@E#2gY$qr z=RLU+MD7y?Tp{ z-bCm~ujDZK9%eOZseqcQz5@|80))S3VhB?`t4L$uajqYe=@aiFt3yIyBvG@m)8se} z8hthvqF52Ik}Hu=pxPlNd6iL(B!tzo#OGHALb^vCL^QYC@860$BztI3I(x`O92B3J zO>~Rx0UhQZkhUdlwh-*&gJgT)Jm8`AZBk{h#Xv1RU|^gholM7Ok}#>UT9|~2su#)k zWYD1?PYtvEx+T6;HRc?!uC^f4JA!0~HXIELC6Gm4iRdWFUx2bOAW`a|dj9S@u(E0X zHbFH3aw#f8vS!9!81)2AJ_v&d04)=3g-mqZJPuo9*Z$o1*w6g=Pi%hXmw)f<&;Il; z$KQYMRXp(I1JNG82)y-C*x?Fz`E}slJ=jAJA)b63xqdS7&9B41@P))@|HWxO`paqW z`_o%I{sGIw2M?`XY_{7RVcgo`{__i7e(`R6>&xL^{VMF$8^GBX;eGh!L&v2{$VZMwo z^vy6_a!+&iJR1@RFf?S^0_!%g&6X6=!z?1#hUEf~Ez*G2x5g&0?D?53JFHBL}SCY}DNtvU_BA&xnlNL|y`#-SdvaHjuW)S+a(*z@sPk+l$Sx z%?o+rX7>i-zPG#uoZXH*yW{YeFmAsQ+Z#9h^jmM{-PiB9W(A=_7xM{56iupD-tUcmf^?3JyaQmY8i?- zimwY;;UxIywYlkDbbtHAb%tWLAXPyn)TgZY>z3*T&w0zHFp|YO08%dSYR%X}!Dy!n zsLm0ykObFe<+BX`s1^_*AxUK@(W&_CAa0By;IFvK4s^yS6E1-_9+dJm(wGyzs;Hz3 zdva6>)zAnvQ{ksbeSpuQ`nap|#!7FfcpxUA$ZsnFn9j2_aFnRNcchYbVPmzC(U-@l z#+_x!p+bVI3b@ChsG?XcL+r6y)FDY`0H*Pg0Ll_VXA9q*x6s2RA*Fm5VSyIT+2zAf zPVM|IK6@$=c|Dv&Q%RZn!=n=5oJv+AHId2!qd8m|mz`Tv=W>o}VR6W)S$U3W-wwTV z)BZ?c$v|_%0wWF&s6|ujNXmdpQi<7JiKUY39Pri+9NOG1>lL?dX78!FqVc~Os6jrMIwAK}i(Sek-yV|Gs zNmyZ5#k0yUEBSV+EE7%RX0$UL+E;b?%ul1yizH}TMsG9(;7!j#jgcPWu=e<@0V1We zY!{%^8P)bhH9Idl#=gB`u4@ZUIjcAxC2|B>4E%Q5rPE%b16RnZ^aaeSE+V`@v??ydB1M?+@NDEJ389C>4 z7eGfcF(z}ma70#|OU^?Hs3q@@*_9F$1$+#C*EH6dVk;&lYLi%0&Dgh zne$D9z0h@dnt+K72GulHDAGermLbFtI|y1_J^29lF5e$!kCH_N1qPrRUs=b}bURJS z$%g*UoQG9Z5?@rXo?jTy2Tcjld9Uu3Wb%I9TyLjhOz7_kk_?6#S=9AzrnCtO zZj$W51?5k`(AbofPtr)~wd>I2{^C352*TPti~}AD{7DaltTpXC6g+@z zF&SFhM~Jznp^AI$$r(rW&W9~j(wM4!mIT5|z?V#vs6TDr+EL=36uH1nRDhM&VaE4g z`jZ3++6KVA4z?7Fp91P6R1HSgc;n}{6(3CROrYEWM~C;&nn=J6o0VhbKy%>!?d9St zZ=QbFYp-m7_}<<48^^ccch7*ufQuKA&pZwL;CmY0_VMc(x9-^eg}H-R_bIsv@r{0>}5+KrU%R%Keg09b4?6$no89Xj#RLRGv zaK#lzk04VkLF)JPJhMs^CT>?HgW@irB1X)dh=fU|IPaWTw3JSKX2fKp@SF$$Rb%w5 zQ!Nj~M)NW8)lx;}EUfG+i)x7l@y(*UhZ{$jipVK~H)h381*fXUg6~7a3W@ndG*{gB zY}mJn4c))fvdnph|06Jik0T`f>_)Tt{9V~a#W?a3~wwPFy3k5W59@` zME0ZwMm7lznE1NR&Z>y=wVnG6Np9=htU7TedqwqC-8}aOOH^2D1aC7_%X93n->OLA zB0A3FTj4e{5n$CGtotuzf$pDLNv`(}-#=5`BUJ4#ytXfj(Zp|7wgDB0%44E_w-gFV zf<$YoaEe>Q$RT{!^tm8$=8bC+R1PEp$Sx%mJ*`?$xlQ$pMp0)0H?{-}wK951gy6Ht z)ROOawyL6X2%1uxVvhj5a!is42Cx`r!4aWhvv_Pu*gK>wcd&R@DTK9&p#munEoj}8 zazV-|J!cE!_Znj~+|iBr7*@qDeU8Wrmr+;1(QQ@~VkWu+>@DHq3C=J~Oy+k%&bfj^ z0Z0gm8_iUyL(EZYLKd^fe59dkk!8x{279Bs>O*I>p3F;~h!(-3cT2R$8NkW_EptKC zqL~LJFjGupJ-6wqvR*_66$$BJrAl*U$G0=PBO&<(+4P}gHxx$(276zeq{XP|3eH75 zvKZ;11E?x~164g|Ka!5H#(IZ z>bbS&0G1Z;>_9F8R|4-=EPGT~Mo|a+NnIO(iFW}TsaT51rKu%@9dmR3eproo;=M8; zovY?*BF0Gdc)8}UM!;L`K^{(&dGorNgsPI@++Ss|SxScTAaEW2kxs)hRl~?r=X`fgt5muY{4X!)S6?`YMOz;9|jJfNvXM-I)5bDH#y`Mb_;_U zjWCDQBb82>g1j}w7X@Yaq1eQ$H4#qH02^HI#h%x};ucsMfo&^?$0C4&?}(hJv6MN- zkd`_N$RbTdjCl3l3gr#0siyVHvr>_;*le(Ob3e6!pFt&-NR=iyqUR5WMa6iBcffWU z=_=x;u7MAO@g~jCRnaqR@D}LiXe-L1Ee*{|LXvjjQr>&}mCdg`{nX~y+R^*^qmNrolQhzxST{4+pf<6yl!N0yTk}9_ zFiwqVKrE4M1+&GN)SoDY+vpw75^w-(m1VXtI@vT}J%B;|FVDe07qXW)^6AZNFLapoahZ$hTs(D7!)iX zxCS+d#p3Dh=!X!8Uq*lUcA6bq$E`g2zMJjQ-JAHp?sbnBU(V(AW1PKw18+Qk8?QdM z%U8Y*fBD%QFW*7Cb2nqzocekNTztrJ?cp^ZcsQGl$kQDRZQ$eta3`OZE0{T2E{yw^ zj$nruk-z`Pi1)o?+n##Y5gvY|wQoMZ>J~URCTMkj@%)hHiyAG=!u}% zn^nCO6!xapN&Rht$_y5G8*CNug=c&TB;3lcsB!e6lJ=BqInP&3*n#{e0JVn*%V-w8 zTL6p895?1!II2gqVNN|FK2&0BPW+iEKO4+sju=b$6%cl+!WK!D4ASS_faDNqzzn;_ zHWpUlJI_xkPB?5RG_?S;>Kh^s!uGVyKq?u_smMqrWm9ni;?pQ|Aywv!B%?yd0)$@BU71iw|Or`m$Ws3o2EZ+nvDJie<~LTP?YljT7hNuQ(@)Pi9) ztHS9JF_Gwfg)w&WXyRH=jz7}%;oFoK37hKE%tlkZtd*32ihe`In{Hst8IEYiVwl%j zadcsE=nPk9Euc5m6wBBStSWv>nQ8)EiLo@n#8{4fe9+o2BfT(Jo{})Nk8)h|qP4I5 z35*qOzH`%iHJA_P4#}7o=Ljr4I6m`i=nnefnP?oRv2n@y%}G8$hhd4QYrP@dC3Y#){+1!|8%L`8t!Scpji06;k7;R-nw$`B#I{m60ktCXT(kOY|cQuw+d z(aVt^Fxc43FZO_?Lyo4-T4<^|R+6WB zUL}bsGJ#TXCGTREY&5-WRdjW5p%!~HEWxzgW%$FnxoQajwCP=k3;(VHJ!4B^$cQM^ zN>RQ1)Wl)Rn=&}BxPm!AhtX;;sNN|ztJZr42K9R}v*GS_Pt<^(6l2x^R4=uaS_7=c z(y-BGa-pOWJe0$mloGyo%ryc61}2+{JSw*+34Zk+mHa5kj&;+sD^ei|Z>_OfL6*)d zbA>OOY5`}0tI9ak&+W(>N1%k*I3{fXbKFY^BotVxj8JRMqG5Ufm;s*10ZD2 zkXtJWFQw*s_XZT>c~0I)ut*}Q%>8K4BmyLWaue;U@K5>WpfUkkE6qwOZUR2+PcekTkHmK zd=hr!roZReXSW}J?&Z@zx4LDYxOLC*#+^7lY*<}+(D9M?nEyNPJF<6u*A=_|t}8fr z{1W`=YT{@Ov~@7~ZHySZQ%5**n~1v!EW60vv1jm{vj!W%0?~L zzPHwLf!QfK9z@1vi*^qf51Y5`z-no&2k@?q9lq-otkG~4_s2WOYlh<&N51(|-@Wuk zzW&^s{`&9S#vgtG_~JJMfAl9?EQyE%`1LEm(IH}W)Ez6gH5M2mms1I05_xuJmP_Kf zSJ8gsGdn!-wk4l_YLm}?WAWeroj36VPd+dXFJ5RjZ{IUFVAUJJbPi->9<0pnof`UP zeLJo3%<%^A%CgNdhQT|DJ~zOEBeqmOCbag(sUKCyKyadp4E9(}w5i7G35=eU&N}}W zmE5TE+3cK0NE*;2g_q=W8owrAS(9v8aEVoOtzD&(B#I@mS0kM;hT>ZI>{0f}86#(f zFF=yqhk8qeuT)B)iCYuV!80iamnbV!^JL+;Go7grSy_YT87BuhH&qUKHg@v$V<+{# z&Jz=#!Os=!i5!F71JnBtE%MW9*07H18I_9C#Isr7|Ae*P zFMt%gXDm9YcvHz@m=u?FzM&~!n3)903(yt44B#jjV6s}u)og{~_`Q6FY@yQ%l~Pnm zA(TUSMJ<~oj+N(D1kWopU>LGd5#s8Pwi=bK?_au62X3 zr3i`?9)wcBQWsR63sMhAFU8^gawT3 z*;D}`1-Dgra4CONC*36T0>W0r@}c!s*u}$178M8$6LA1=r&CjF?i1TqdJE+)@G5@S zS`~S&SW?utp;4(UUzNg-VU??sw56Aw6gjEb##gU4p7LeGIlDW>LQ(B}rg~P5_}qfn znoCLQ78g+%ypK7KS^LI5dwg8`_%uYHM`cwr=9 z%``Sp7-gxvSG!3II+YOD9C|WRfTLm9qJ>x$JxC58!d#LlgPOkzMK#WX5@9Y3LYb85 z+YoD%x@JS^!X}Aoz|?J-X*P|3yjXafZ3|4cZSeDXwlt(IWRI6(2TRqEO7a6(#6r(8 zga)XEBE0~rBZ3uA-eJw8%vo73wS5^2Y6$wo2G-c~XJCbu2M<*BCSyyFzN+9FN@4>Y z$tlUdijE4Ms+3hAGx-MSprPcE2PM~W>ad$`3pB70Q$~3aNu-f6B{k)4JkKYclolnG z0u5fQ&15)ayjS;-mKd$Bzs&=v2+|?5q!A1fmSbY?B9+|O`%q2IsjMaUq?=iq+q2{zUR%45gfPzq_!DDEXYZ)4e5r~|c@-rC^g(;DCwsLq# zA%H!|OUt=eLwG+?DimFlG4M?94eiEk>ftQj!(u*PRtQENC;Wa@#0Vw?Wb|x3WA?%G z9ujOLNsTfI$tL%t-aY`^l+BoknZ% zd|&n5hGZ_*s`8=3In|qQgxb>qO8{X&p1=2+N&2?{VXY}WK0quqx;z^ID$oU((`qav z_}uilHmJ6Mq;biT+g>I%4CqxAq600QG^{rfAg$#4Z31Nz0SISxqnXh>5$ z^nDlO>U-YO`h!mbm#!pmfW!p@?!k5^z%nw9&m5;|d3tY&W!qYF&#@B&Z*X&%o2Pr4 zyJ2O3_w-Pu-2u3}FdE=X9cWatc}uflK-cC@%+ke3GmC^rLsj~Jn_d z;W)wd+RR(x@{!}w2LfOECh)tTJ+_a2_{bi9d=p>#qpg3(*Kf23o_-v6Z!9>zzhHF) zm^roq+r=pk4%Rs6TUlb*r#pT>=r3jr8y%js_cE|qDXTI8qB^N_Q=x$To>1Y4>E z<|9+BV+B8?zN-T!^ePmG#^CtPaZZKlE2tpi6W%C_!a(!144@_hRSBpZq}gY#>vEoR zRFvlIXRkO_$(?~qF=IhP$D$T3hXI3AhO8yVl0a3Xu)n3mKCV~sgMpQa4isBx{>DUz z(sJV#*m2o%@(77bcOW|0hM`UEG{~Vh35a#+zTOZ$;5jhhYAJ*cZ^d&{rck|wD5Y%S z7l4LmbQ#EWSO+kidtk62VZ}%Yvru*W?JBl1E^ZBon2iEj6iSjM2`IuF&LomN1kWl9 z(RW^zdhXyBOiT*D)R?_$n=6pl8rw-Q--mtM{Z4NJ5Th_pRH(4rw^3F>1l8M2m1(Jb z*-FN<(1H1VX^u9s_%?oiN$dwPTUFre-C8H1!>!tx{0HD|OaiCgALB-;Ae3USHJZn;Z>0G4#c1uc$xx&Sgg#DOTIl#-Ab9MtD1&$QWRVD-Anm` z1ZqlAC=yq}H03Kol|@SU(dcm?tPEA^C$5n)Fsjht(6u_Nj3Tzs4KiUO0oC>ejIxfH z!VSe11LI@lLKOlW)mDKNUdl$2CJk;)iU7>~)T%EEUM0vWl{c5Es;cMv-hQZEc_`r~ zrls(QMK}6Q2opPFC|gtv|FUVj8Bn8B=~tI5#6)4v!QVCMJF3WvYAujoK{NOWPNk?E zQ8~*#2ditLdbO!oNP&J;KN?fHusk$e_sE10ZVRBJ23RT~ru>HirKyi9=LT_O zuTjYqm`Emym1gh?U}%#M&}=IcB?YF`Nr$7rcS%A#6N`X2YYCFKD)}oZ7c$gmFSD>n zEG`Jt48CX~C!K3|QF5g~sE-F)Fl7k1fTka#vP>~<>}?6YhZtJRIS)-ha0;rY6q^bq zuC-aUNk&0BC56?iQPGp;C-PHJl@X)l{XlB`$4qo4I8b6Oz!9E^Arc2X_zb{shc8_C zV?eWI&)9@SblG-%4iyT1QU1+Np$vX9E#jR5h7F6CHYTMw&kc*&E!-^Zq|uubh1n% zyf0t}kmyMD1`T6t37J_Q&Q{t?y`L5aYXTA&Mfou(i0tpqv;iR&)dDRB(mMbu9Ms{> z&7XkTz;HRLs!ym*377O5nwjaHY5^w_MEL|{a^E%w7EiQc^H7)(aFR=ELx`M*N11n4 zMF<9^HGG+rk{OyWTvwjRg*j2nM06`+oWW`uGB9{%W8+YV>XD)M*!Si%^Pq+d1*PI( zBH}un6E*}^z^b2_&v7v2W?#)eP>|K72*5S<_>4lwd=0j!Z&vA&ZD z*a^`EHf~sfX>5E5Dh#r zHUI|bA+YKkU**j(;PgjG*5FQ?^(`s5L=~e2X?rOlYDY{9iKdT z)o|k#-2d_`c=Zc6@((_LVqf_x@CPpduirJG8Lk`|u3k#4yJ7Lfr#~Bb?4dJ!^xe&V z@s-Taedf0P*{9#04?KF&PM^Dh&3X-Ab!?X{#xCG1NBC|aGSZzRoSeyP^A(Nw1Qfjz zO>au5XaLyLFm_bXII6h9_&;*6qFDsoZ16Ukrw$RBT%*JU-6-3(B$jQC97?uRQt41K z0}Ti*2^Ip;HO*!g9F#yY3q>?~lo%Rn;)MpZGKnZ)GH=gxoRm3tN z0;$>F?tvxP=4e&bgUD+okp%5QWhmHcG@$3};@~0>!;l?lOC>x&>r4>Wsi_1GSW;UF zoev4k8Bc@xV9NxUe86m<+$R9Ayuku$_Iem~IG80x&J|p~3Fu?Vb8C19! z3ym1Y=R42;N)(BmThL6sSxreWbmdsQcRo*NDh5}UHPVHzsB#eylUh?aBy*At9Cyw2 z-z_oF=m!;$|B#@RP6!rs^?pU_OmeP3cVQ1RSPY*3h<(eD+CiAh<@6PCK+5Hzwr`sw zl!qA;XXSTAeoWKM)VTC2J`Aq=4n9AZ=Ti)0Tk+yj;twp=sFM>}1Pc+cppv$g4}_G% zZpcMP{K7aqNw^8!awhgeDp-e#k|OF74b8`t+MBoi*vCN(kEQ}rk&~HH=@2tI=;zYr z_q*U9FT?;U?2}ob5F;|06i9~XhL-iNRooMHE~SDg&m;jL1C!K(_o#q$PTmdZ(9uhd zll{a|#4e*Xf*5N>wYqkZ*0AbN# zLHN!zra*Iw3em=lDCwV` zrvn+m#90Tsn_>7siw2GY(Tfy8(!#J)3xJ!UjPrOf28TV#T*vBg^qAMhw3W4_>i@Ay zV=UQ2&4{OdZU+8x^W}jA$$i13RY5bASPTV+DCSg3i>fG;V7*3%u~*$ORGsEuYv!uH zKegW4!gbKgfj~-(RPzx9{N!A-)FA57sWu5{Lqfeod&wO4@(8khK6@z7CG-Mb(Ub^6 zNmu%;(25HLT5^4>5^yeGV}Ez-4=-eAl{%<4=wW~jN&FPYr2q&pX{{+7Bw@>*j{!U+ zyUTelNZtt0f!7^nrpT5Hw&U>qGkN7$KagbwCAQDlp9bLyrN#dnLzQ+vOTuQcG(Mb5yDx)JPf-Mkc~KTM3c}TTWmF zu3#@_x6WEVzr8nLja}unLFyqZ5>aCfQ}J=%la^Xbl-MC`9w?zzK+Mn?e+Gb+q?8W% zvLp~I_R?zaRU1Sv(??suJ+K=z{)se1Z@92A9BvZp^#;BKUVU?S^$)*v@}58ZlheQP z@~im4OGmi&z9$Xe^QW)p2fp+A?!ot7^?v2z4u`AA#e6K@x65v^*N(|Q*d3445th4V z%Sh{MOS81L8nEzYj&aB|w8Pn#Y#D6OP2_-wNY8AZHr(6>HKKz8IkR4ICb1hPCe7ht zxrCd*E6G@6v=|=fVHn*f8DO)rnI-jPayyhZkljl-F_2a^ra!Ot1eUNV_fJoaF)^%@ zX%H4N6&p9)^YR!7#Bhv8!l7$phL!kQp-c8-jm$Edehx6zq$qcmu;;<&HqkytNbo8l z?w+#KN=}jyTkQXCZEP+Xpd_aAQZQO5vYBo8)cR8Lioo`)xu0SaAWzXRTi9XxrMJhp zG;r{?d;Zj)y=U);SAkovVf)n=@zNJwi9h_^z-NDNm%sZ>v^!@8-vD0@!<#p@`0xG5 z0p9(Nb=+^ISYIIc6 zuq;XvRV-i+G6fu^yxXG$pMa4~DVmAhZJGy?1Rp3vGbSHR@iSylMKIceQvs}6G||va zYD8;jAPK;#7Z6}_N`tfxw?*e?qI%#PIQH3$_|A=FkLie3hJ(@(jPun{N#m8WV~9v` zS1aTQcmqc8eYF(HP9UWB&%W`r6(F0p0_#A|Hb3axLt<7E0njr_>!Yjk&8j-LS<5=r zi0{Hk-lVUjRN(Go!Zb+o8VTd_ZlTd~6N#_w2g#i?Fu=+&^BNViW@~ElUcD2aC!{13 zK8!t~Qzmq#GVdI}J&{mOxBS_VD}18QAFK#)&+)9Qq;z^`1QY)d(OI8KEU6gd#H^NF zOHnPlDZ(O5@kQ@NZRpB+NVb6aW%@+$%z-@N(Gg%TzjQsE62rvR?;Fygn& zdCyrR;ImR18HiRsS#e7&Shab=Fg;kzxxZ90AA7H@n1Ddv#}U}A8QQk4Ri8PU+3P|1{v&`7Sj6p=M& z)w{uRp?k0@L6()^O#z-prm0S;gQ)5Kxq>(&He}ni2P!sk5PPW@`o+|m-t(NIAs|<4 zO;ve=p|%{kjA}{YLpOw~(X~HylA*3);M=aow4;*1C1LDC4WBUp2{GYi?gEXa!vq5* z$LAj98f7Oo*N|mH%SFAa3U^6>#Q|qFRVP%k6j8-M8zAdUVocOoJ)0R#a4+{Ahn(j|DJ~k*O$$-$;=VuW7N4v+;kA>1a(i@Zz`4tP3z z?I{S%F;Od$r|DJA>}u5@(bCjEw=^Sx-ME*0#b?(eaOJ3>Z2}pNTeo&keEy5afAQI8 z<9~eX-gw`YhJz>H0{n$PbAS(j=R?c&r?2e}AG&V1cp-AJ+}+#l&Tj3nymGq9uwiIn zp6)VyX#FIbZ5-aiHY-QA^yV;2%jl7o=>yH1${^WLf>O4nS|H7ayETAghr7A?mZvg0 zpmw!Pbxs-@9sey&C8iwBteJrZl&O&$#Sig-WDk{rY%GMtRSq;%g_9At#kXzXxpNxm z?0*@76&xpW%4GeG6yVx`Lrb(AxNe3EaGbz#(txuRA@3kVU(Fp_i~!TSlBX0s?7*z- zr_$7FuB){iTH$HHPN&YIk4*iX!oQRt?CO zXbaK#at9s@VCilPY-A3Jf~6R z5E;zr?5^>hRBt)4#*(l`)6EQ<*vtf&)2R(&oL~t(L10Qcq0R!|SG$m!lCp2NG~~oa zG(_cfq%sG$hB1PKXcc5aNrb23FR>==4phwr3xF_IMyaG!Kd}?%z<3_k3i2tzjadMx zOvC7ENcFy){YUML!mlM3g3|CRj+wE|6UNrg%t`vYC9f|HttD~{xGI3<+Z0v%@P-yF zoWYa0NQH_}VqMDH!d_JB@w;g4cWQH*zKrI81ve~bG;ygAx({qYQ%O`_kV-V0$w!RQ&DFyWt@6n&LP`K<;e%;Pklaym zZdTb0UmbE#|87GYA$6vm%aDJx}E*a#s{rGqK|FtuwY6%z&~ zkF|u{q)?t}k%HYkBUy0cXOd!6RMmNHiP;`h=9)__&jwW0iugr6?>Y563gxNiq@%-A z`-f}Sn$|~Qy~5S$Di!4{Du{_^5-#Fp=15B9%Yaj^IE-K_&eDKbt)AsOlWdcb6<%3! z5eHYSse5*wP|bKBMV11>Nyc2Fe2hvJS)>$OL<}8<#fI*Kh^gA1<{AXw>)Zw=f=?t@ zig1%XBZ|n;Q97&fqm%(fkaL{UD?Q-xL)a{I9vlsQ(taAP0a0w&|X zT~HDoKuD#Kv+slpxq9HLhl{3i`@U_5s;yuhCo-oCW-i5g@&F{ur{uS#?t=_xC;%qi zshEW4K6x5G#4@GKX2hIHW`rzGfs(B>1IEB~h}7@!k<#rnBuUHqc_|(QSSj%)_@NqL z|NSh?Nct5+2Yiv=S`*pGNHxBPO5_bZ+;VWUl$$UOE@B$^u*$;KF<|IPqJeC)VfIe~ z3d(%eHCr@QZ8xx2vkC>M`LsF6rzWuYpg~K74iQ5vs`;<@T*@!TH7X{e3<)u%nAKAU zfGrITNHN027*Bay{XG=;OwTw&q))93la< z$0J&)l!EYHR|c9G}PIql>^O{|Y+Piekvz6I+#k!2nY$hnW%~ zDHjxAtD#1b}OtJBl*$Tz=v z?+3p8)!qN5$T|O7caK+6UGIm^VgPSA*@Ws>2En9--MQbw2z47oHh0L^Be68#!lW(Am z|1{6b0L+2#mU8cJSyeRb47<;UpFHO{x$UQ~e|1FXQOx zk1u%WKkUF0NbCet6WlfD7VxZB%myyQ?2$_B|EouabdDD^ITC8lBw)ZfVPXa?(GdIHg0L(z?=6MHElfW`TH1)D9Y5?BLR0%K|LkiQ`eIk>-;6Kms6BGW7l z(ap>+Alf?Z;`{C3Q%~dLpE}M@>|Qmz{03h8-Iwg=|KG3q&;2^$cfOMT*wy2F;ah(Y zpZxyE+FPHxj0+bJapEU9Xqm?+_mQyCS3R1>%0d+)o=bZ5p(?W4Ciw!00Wwu_H_|@D zO6si_NFPDWFs!QF<#j}S#Uq20g#w`@3L*)m%mW?Ivr$FGQFE-~L#<9$u&2n01cvmQ zHLb%X<1Sgc70%M@N}aJJVjV;0ZW8x=PtE&KFN)8#j z5$yMlvPD8;%d7afeREGr(ro+VrjZ{lM|IBlaIG^q9@RDd}m3+N?uphOW%d4 zh%1cv)1bDBDly1tJDFeEiu;QRKA(%1GQ7~4+Bk^cvZ4=i(K|)XXr(VRqQuyC_D zr-xKd&b}DlODG09_^eIrK_Zp!rj!l*uFyiMR&@2}qe@YpuJdm*S)8Ww!`LE`fiV&*=M0WqRK#>lpSHBY zR`Z|yiJt@{C8c{VH(_edEmVEaY7MAlevy=^eg|X;Te4b-*v)ZN21)Iq>UuB(EkeOT zH%KNO5UAfzG9?oxHVjNMSgn?{KlT+ct0yO^6=nAWnHor<t48B#(<(Wa6I4B6$zH^IS(yKP5i7}-x6*!nQGSH=} z^E~*9&GWfgGi8)uy4X^*D1gl8ufx8cy-PKLWL3bmfhz%Zc?4vR87xcc599iF7?xZp z^9010Gw?7E7mIERz^azOpnu+1*(txPVxwz^827xY2NjO^D~_JpPdY4X97}+s{V0}` zx*-9xq31{mb^$i3AJ_s?>&i>+7<&E!66kd(nPl{%q!)8sD9p58dHo@lvmBERRpCRG0JVd?r zP{k7mAalfYjke12VUeV;)EdU0L!euY!Msaxh;Vs2Qo4b z6L#db`*Pg-+}~@jefG;4o5qD%NOM|PS_c7rsKl<5AJU#E#maPyiyq-i_7mrNJqR;&$C8Py zjp(pk2J!^vY2D9a+3kAEdl6XB*5<%AfEot3aOLF^nTwe(2JFDbzpWd#${LrEV*%p6 z8+JhM0(sUD7|3WCTO^h+3x_Sh5<&8QBx12#76%54ihVV3c-fbux2NL*5YPMe8=s4t zKmR-U^r!Fn&;L5&8@GT9m(4%?{yskX!OQ-yynB>g>;?3zf@7cwvyvw(slPB0RdOPlQ&l))QmLpR zpt)B%WfTNg%*!E#q-sJUmn$l>f?xQD$~S;#G89u6!8V`3v#RGzAR+^y{#Inp&xgol z2p`R(MpE5WC@UOXtrVGq9Gr2-gm9%*mO0o;M(Hwt7o$z$oxGfV8xc?{Edti-Ya zMW5$tg5djIbk>?osC?Y`#Bv-mB;KF}J&Q}|0)pC)hVhKc~4^^32 zu^lE;K{NQ^+ufVa>3mdS&4jN@4XetWrsW7efywx6fy_k7_6dnf3NE4n#CKizJM})Z zJbDIDZtLVUv>q*|7%GE43N}B(zO8beAy5AQ$Z-p^;jqK|WZh-?a}3o42ODxQkKId80K*5>o90%(}Se)8}9 z1Ov>#WG7>!Dn&!mln~R9wKn+xCD#Z>AEf$=LpR8Iw@|Q1+_W)HWm~(mk}s4W6PCP`55S6IFGWipJW_X{Y%0OFboBA2e2RYCYoNC zt;jD49Lf!|h=|FU$vu@gRR=8Ku89d+&mgyvmFE3mIhUx zKqA5$4+6@ps5~jqkVqYPCgNbfOsr9H6EfKWFs1yaXC3;zY6e~D`EkjslCJtFd$jiN zXWwt=A`PkVC`MBANVuFdD%9E(fz3ri!i8)vHRoClDz+N`fooN&g9?(7hGv>UoJrSW zl(&aT2FW#TnXn$5GGbc&aZVk@RbIEN_K_5e?|K$7`{$-Q%6O#*9oVedJ8S{my}f<- z*%#0L_6slX{>^57@jdU@#QQ&RAs&0`qCfGjYqq*{aU{}r$4lIQbBp`8PB50OBLd!g zx_hE!Yu?gZL+@^VO*ejTfO`)B-kKw=MQ;Gy8Yd`tn6ozE?i5lqGg=d@g)=iO&Cv{D zwBl#J;F)3pX}08yY0ZFDvt@UT=H2YVLB!F4TkBy}Mja;&yITZ%ON4hbv&+c!gRo5p zmaQRI05-^655U~4Wmr%5)&R@2m6^3fI_XbqpkAZK{T(IXnQ;Wz19AWN{)hfcfAfpk z9`5a-cl5Y?rQ6Y!i&$Se2wR&0E9@2k%MQ(Yj@z%cZ+-nfp8XxfkN&;yGkfZ1(((k3 zd$1-)RZescJ}0KKl-T^9!$G^WZuL+}5j0IJkU0SC4$i z+R-zH!*3;y-fz*K9>bqP!xdYyqoaG~opisG`+CiiwBrkKIN1Wj8PN(xCU$Aqf>yu* z;0)N^2{g?mRN1ncM>-C$* zw}CMhj8XfwRAng6Sy)C!T?h<$zeKgKRV6VnJwh1z1Iv;#UPYFXmlBU))tY0JZ5mwd z@c~#ENmrXSfoVy*Ef^o+hM{q`RkBU!ZaBUL2UP|`(8Gyw`mIC(T_rB?8LfUgHiZGHQaS3gH*<`>oO0Us_o{OZiP0xISS%*X5XNM(M0Uds^>r_M;0DRe=%b zjMI_zL+wE&bV*flsqPY*=TeF>Q_KKKuaxRJzQ)GB`#RqEu$}ieo-8 zI!y#cM74nZpa0HJ(iAHOH?Y`MvyfPi@gEv0F3u>M=ZmEHZVtTFx<~X1JN*Spn6G>IoU-6jpEXFIwzFmN&R2}8X=mluL8D$ zyBowF2U4HU3UF;s1wmVQz@_!Ck0}*ORSn7H@7q~L^D>SU zt!0!_)7T^C!OqR7aeDy-X?#_IRFzJfrhDm>bXH1M&j}MujD2QP6jsI2IYyDDdfcOG zH*i<~-Cz(-%sI&Xb6$V-{XjvAhKm&#^}L~3vXW>O6A0+}ga{c^r2>-p4X#(z_gB&d z1{;Efh1CZuCR*!1C6lVLH0lTB;Vz@7N|*%{+;oYq(5~w*i6P^Xv0An4y_v7*cwmi))ZN|P zz~W1TnOj-|dVBS}vh_@zfaoMzYJOaIwN+E;%+@yw?l zj2I`ey>;5K^H_3tF7jzuVBTAJ>$W*ska=id{3mzg6CYXOZU4n*E%O2MaS!M#(Yn1> zjA~r6BZkX8h)`Xrt5){~06xC(?_X=rei?ZD-CHc%#Mutm-d6lF!-=&p3tT>oxcnB_ z#doaQ)%RY<<#&Ay?Ja*TyMGvfB}e|9!m!iM-6_bQY1f_&;LKU>@mv?^Y>gHE}@P{AzpTFas7ytP3)dS=hIK8*U>6yZR8oNiN zl;fE$g%KK)a+GgPC1k2lCGk&n97n2PAYyfU@0l~t-m2cS^kQ%+_5_vSD$Fo` zv1I`J|D+>F2tNsa&5$dkla)N@lYi`v7==1!~ z$VnVTq{b<_uAkpu508ncAx8OALHJ|;JLW)+2Ej@aN_7819?wTq%U~v`VW8#m{S!(ru zksQNa?QmW=&t>$M7;2T7eaxj#O%r}&LdJ7mtquv$x@1xDiGRZUKLy76c(eEl&bhw4lY!4 zI#@K=9e+k9u*!(RB;C*GKZg_2V* zWzzWx4kgz|J%3HskYc*VD3&6%R4i2lvQmz^-v2Q9uMkVR{+7?z7+-{!sW9AMhk+ys zrvIAlG1@d@c2sfDQa%43XtvV&A|6!(x1OKP?}=!fMvz=z<=s}(lj=L`nRr?H7}QR} z^@yzY59k@0FgE=XNDArQn31f}9#Q^-umJ79^81gL`bEwjnsl!4Nf}zDP?!-zCFTO6 zL@K5`Zjl76Ub0_k|Gb&N@O`BgBJZDAM)H?bz=V_$0T~|ZKh^NWi<@#~Gqvc1lH-nXEi^Nd6 z;F4xDDD3-x6u4Y#Ry~@`Q3NE^Xh(n*s7gEu5)l{*2y958w4C0XMGBybHWPq%9ePN} z#I15>Zt$}DA>$4BV#v1VqnUu}uoQU&J)g;JGJ4BMV`TR{IbSP%nw{SQQqdp@A1=cA11_fdL3`UxOW-B2D15oW8 z#5(?MNi>uEoYfe&E|rnqpJ93u^RO$4Dlfuy=x}?}2cgz3L{K#CpUI|Yk!OS>?!tA7 z0a^Yq{U+*fx0 z9?~9u$HReV-hKfee9ytSdhHNSQkR&tQ&9gV^Bizj0(|Siyl9LdH2SuzW#unI~ z0QcSi9)HyGd%yP(-}RsU2bOj%5N~>7O&eM3FtenbvJ-(>*Gg{2T8jiU|MS1_vx$RG zSd3G&#@#1}7Oj~Tc#4#Lu8V5pP$-=~k$K=Si)a7yYwhOCz~djfgzZ^kw+rO3T*7R( zoJEd9Ke;<_dN*)#bBFECgdLw@y-B>|U%iZX{*9lA(f_P@z8+?~#%Q62Aj7HgG~7d(3mlRu~3k1NSq#9njs@2>IjJ~ z;9(gtY;<4T3@Z#bw077NJpmiG>`unFe*Jm;i~r`O_}m}eAFtkNXOBFIpZ>%rF8voz zz5V+0SFc_?&2fU`ZDMyaFtVE`r>0lSntN65N&v@rm?oeor}g>;K7F93|1=nOk^8_t zh<%2Ds)Z6;0Oej6RqY4K;xQ}VRGwu}K0ePv0iXe%g9!H8*QmfzEt`ekQojoV)}h4M ztYJjJGq7mIStOm+u~(*rT96=A5CKI|B}ZXcN`01?1cw@3`Tbcjw-R}wCE>tKO#DgM zm3uNk@iq1N#H>szJ=r>0EqNWrX;L%~WqX9k9f*u5f;O#5?$2{Fky?_ecFwB)7rx#9 zJ*(&H#>r}%FmjlgvlSslpbV(MXEv2#sp@-XVG?j^mY>5+`e7v<2HLHl67C3HpYuEw zX+#$jRe`He*lZdjCgfwIe4y65)jg`(TWzL=-#w{#slo?LYYc!j%`O^+uUuF`UI;26 z@^!LOyH}y65=>X&%a{*n;f3&pLzR6H-<4v6hQP`XL`JcoX(&Z3z$AM_3g0l9B)+UV zuK?SurW2#2IP8|Cdr07%f#I;K;}ZYQv7J)SCQJ$u%+F(vDF+eb^YejuEwxJ~Vc=aw zWIhvfhsh5vEtNpqlulS{Gg*o>7RUtTP4`y?qWOF$=+@a%iUcp3K?ylT3@Ddi61{Kv zF};5%Zd7||GoQo^%4y%_mD1X|>D9^onIy9k)#_<#rAgwm+8^`YbnS-egTjAhDl`fG z=@-spSK{v~VDcVW(eG z1}+vI;MErlBz!SorNnc7$iTl8}Npw;HnnnBM z^BIYht1Wa0Hsk$env6j(leKaatri0h%75h_hZ%W|&!YOg6~AY)k$QeD6i`LN)B>;f z@7m;AvJAqNC?V8ql-eBH5bVo91hB4&4ys+WlFRE8awL3ZtQza^Fr<7LAe$)#)~N3V zjhIHD1rIQq0O_8F$&?YZn#{^RKcX1}qi1dOI%c`{8k~U@d>_SN)&W-ur2$mtuB4zr zRq=VZu1Y-DPt2Y@iwd?7AW*Qb1wI+w0My5g`kUmsf=qs9a;tq)Z2|!jZ7opE|0t=U ziBN;ijB|K}y?vZ%!u7AUo`@1C2&7VJfY|rLCrn@fD8GWn%?E??b0GVTd!`O;+wf*xc;6A_>6= zm}jP~yNC5ej)6gk({yH*mN~-A!(gznzIM?xg44*N46K`Qv!xxBiwLea~Mo zvqR^J91fn|DK`#K^xPE`n>mIhc0=yOj&klLt85tqh)nar@=rv;7F2(sExn=d42*{f zz&aBx3+rL&X)8FeSc_faY`6~~?wuKPD38@8*pnZBe?0#2cf}9AakKx)uYT#^w?BRV zum9pdzWLX0-Fx%igAcF&(f54!Bmbuly>Ii!SFZKt_zZdf9;2D3CsjmUm|seuioX@G z8k73e**?-F{b#jsgiHaA^bC#t=z9Y*gxBYSBha8eRTxS^X9A68i^lo^MmM}kIsk@M z*4Q~E)dp5Jc?byjYQM>XB$Ygcdd-{SQB%SQVFIN-7^*B+LRS5prrKJ9_tb{2Lm(Sg z=eq$zZr8mqTUGnVJbxr6j? z3tkpRKJ;AjFSMh?MbIh>WBFcUovA);DiU{4)wgnrMH3RV#fpS)u|I1oQB9P&pNciA zQ^hb?mw{du#xqRQXsw^h4M>pHS#4+|G{KzWS1ey zM(z^b8x~cDi&@nU0x)3KD@)aaGNAKivxmZGWr}o1^~&&OdvlB+8=eaCH9{>BQ_@pO zWWprLCoperSkm|+qk?ZGXn|&(th?YZF$E?3nHoi5i6St{A>Ghuq}M3Z8q_+_jG@ax zJr*=;SS&HA=&I&}$z!vIk?I)~`&8QdK*E~({>Cz8X;6{?1LpvTsZy?7M9D=U(5$hK zrj!e&!%!)A$+#=QPi>A=A_VmvBB0)~eJW!yWW2GjiU+hgl^nZk_Iaw}sf3WLdypBf zKx4tcVP$LvI2vlqAW$yEs$3?pGSiqFROC~yH?OKC-ybmp@2C3rkO6njT+X^jh&@dm zCdN@JBWpxRRl*s7Tg^$#0a%&Kr8Yese(Ud#)gJ5`|3#i$VZ{r4ZYuls?1V1um=vP76$GX2imzF zK4t4wMQGNF`k5dHk^H>m`q#q*)iXXvD`pJ1bym#02tJZ;jL}+u;ixthk^}t23^KO~ zu=>>a{i*ey(EC+>fMg$Pis;G=wAK_e_Qsog2Zz$la#gk=966wXgP@R)84+ zw?5-b5h1R_pUK%*)R_Wb3cLY?m%tj@bFwF7R|Tn0ZI6H*oXT zydlOet#7(nb2M+ZS?Ack{?+CW+i0;k#|17<_)(=2I!_Q-l-{{3#gSMAZruMpSF5m* z-I{fz+pumeS49;j;?_XK%3|3fcL{W$AG%$B2sl1SyY<^&wM!rU$H+@RoWMOE7<0vU z7T)Bc&fTLb2Al}kQaw|mjLnd-hOM?hAafy|fY>2p;iWHV*3_aGnQqO}BL@SdyEq+N zA~V9wS6aWjgafvO*@(y+VY}s~jqc5_TpJ(!H^0k2_``R0cfNkJfAx1>Jox-)j(_a$ z{=Mga?D~cEt@pk6;8(u;&s_aqzVkze&tX~Rty>GuP67CUV`U>P%?AafPHXivLo7gV zjWg*HA~pB@%x-{n0Hf)A0Ekjqh`|E1-gH)!%%A5=ronQ+z4LsHnrZH$f_VOPZ&C^D zd$e04u#PPJSBad87``V~$;2g;P43AJ{iii43n7)FF?lba8~099NuE>ZTj(+e8akqk zmQ$^Fo~YUF=ADUl5x5MhIv^ZPpqn9pr@MIqXh^-2k)}R!;h_#dtq0xOBw6?Pl%Hu1 zwCqxi^83T~ec7DR-DHBzcN>b|OnC>qt<>fr{N^^vbpzn4jF!{Ai~KG;-a5xDRy+wA z*;ZY^{TzN$OOUBWHjwDnh-^(+ce=a`QYr&Rsr?zH%u0$>;{W=4d+{4u=oqa>3yq?n&VHv_G4{fCmaqC^3aD=ry) z&deG$H3ucJ{Ja0r}hq6sF}|6zS(GO9K4Kxvd<7GN#NnSQcgft2R`Y#G!(l zf__MDI~PV(ko8bQN##f~kq#w*P$FXuo=M{s9a<`H@_vnO-aDpW+^i}1k%?hl-&3yN zeBh}?65#d8>PJs66~J;z>=s@7lmc18jCOljqyVbA%guxgRu7Z5NX3kLv1el6C_IqD z0Li4+0G9)}C!KO#J0dD5SS4%Vrq)I)l}ALd!WNpFUS(d}zh9cVDJfK@UKLmlL20l6 z7WaL!l$AU&x$(fXQ6y6ZaUX%S2FK9-^SWoRekQ^?``5*+mg>N@k*X3h(5Pmav0`1#-DTFX)c2HCIObVs~}LrF4r62pc`Jk z83&*H<6HluuRXu~C*JY!r#`g7CqJ~=UB29Qr)S$Z*)D#v^=vC&8CJW~ZS++-`8m>U z=nZIn-B-hx)3L)UM`Uxeu1Vi!ndXiG>|j`JM_O;z+AwdO@yB~xtykE2;NZeK53X#? zj~rO{#BSKQf9!XkeKBAB$}PO~&EtIexf6fmjT78DwmdlveBi?e_-lXjdl7wuJl)bB z-;$Fo6Ik4uXXY*q9+Bo|HL{7s;o^=p&Nym5Efg##~^ak(dKpXH(G!M7~-Df4% z9(n+H{WkF0*Kg&M`V5v7$u+0+K8E|M9pLh_%UPfOv zx7{ws%I#od=xax7=56g9!`RmD=D=!;IL$oVtnA)zU$3BVE^9p?S5iE*0PZ4Jv-{(G@t96Am!8E$?F zc;e|goX}E{+BxFV11+=x&cQ38Wwo6c9L%6*zD{S z*q$PmEqrWQMi>!>pzTNl!n@3I`24X85Gr-p(D*9Lmh3JV{REjOcURjs%vQd-{LEY8 zJKp<YJO9Qb*V?P!_o++&=|?_x{iiNpIk-3M z5WABl&z2A$%;E#%qaz!=d8`pkvj15X$z)SRE|}HMP`qP&Y8Wk$L%dF=d`b2bP)6&T zY?Cv&@F8=sBmk}|TeWCGMsPj?iz?Jri7JIz#h*pzdL_KGoz{tCmW1#ZR4h>YqLBKM z#7ii8jJz$f)97qulbM*3fvJ>pfnvs`slv2<@&Xu!#Xi|FRw04Ht#$p3pIH*D0OK|S z!)2IkL7dr2BF#9xB6VF4d9tBrHMH$fxco$?HoYGLUxNRbrO9~Hin%_fIxT?KIQ>D&tF2n@{=H0k^_j=WIAkft)$80NT;$ivZ&G1MP4GQh+!E{ z`AF8!lAmini6>WEsUv3#Xn=k71AKmz*YAI?6t4?_)x_gWAT5-n2Z$pHG$6)}NCPdpd~gDH|cF70&lo_{ZkPW!?uVcXpZRv7feOC>%l3u<}nxK}6w$ zNXEoeTo=Bt*O!VPiJ0xugmH=k6TbtMM27YP@gIv;G;FV8YfQXGLZL)uYS>c_$3v8) zAjd|FbV0}$fcHhNN%&nwG4|#Y@X^%M^vp?sF~0zf7(oR_OQ8hC;ljs&v~!6Ww@rR> zsjA5+k`z)zD8J?TBMLr!5Gp#3ralTt#R}31w|+h!A<7xtL?{@T*q2F)A&?!&a;yb|VFl5> zs)6^&$}pL4lXRNKJLi&DkV$tv&ypiTtRd9r?BKgdv9uHTT^2;>mVKBP*BNI1<*G@#173`#1X zX*H67uQkKOG|WXbNn@qHu>{aOCsWJ^2$4KK376^#%QCsELqLiH9?mWg4oLB0GvLmT z4p$YN${v^MMd=J;OzK64K+I}W_4={k5GcO`n}(ZQ|AH8R$RM;bEG$zQGPkYRRvU8G zb+zgYM1dTsNvH<*b4zy!OmY9iowB_;{N<}Kd;iUV8BY`Nz{(uq4Huf@`PbvUzxkQh zfBNgM=7%1-2>ie&F6}=4(d#EKzItbM_r`AAJc;#s)p4-tebs#dGM8mpS@MKw?&jUl zor5@$V=P3I0ZX@rY4Qa(i-;Jmp^pvbD}%Kaax}(Oj94EYw8IPQ#0WdPd4^kmbPLb^ z(GC0j7jNOWfA4JEIQF*NQo_1A05%O+_p}_q-5aO*qd)ehU3ls##O~D40w$-uNm_X` z_DQC}M58d*GmD4;xc7$DhOhD9h%=d2Yrri>^Jvx(-P3(VPN|I1GGlBmT01=g-uUL3 z;ofVAD^DV~0%3@N!#$V%zA}S!&wPPOC%ExXkha3bCq9ARzlc~)#~9X{Ay+Hd>W~$+ z2$RxjiP)N_N@DAy#MLJp8FzVR<#wQL8erVI?08f>EK#CpDo??RI*}8!{*AU?^~8GX zSnpk`Z8fk?5BKI9N5&>>3CCC*%Sqtu%+L`dHme38m*;-1<&y#65*prAGzro1tQT?j zmnNIgIN@e$Q_4tSbp+epwU_?>Pv^HjcWYdK_rv|6$G13q?BV85KAw5)EyxR3feY6G z*n&9ee&fZovGdeCdP?Gh=^O`8qB&t^jo8c>K<3Ea+K2>vboaE5jIm4XZtr?FENyem z-}}9WcYV@#|JEzV@#&xY#`?ec|DHYiv;XAwPyC}_xbx%hd*|VAfAr&z{rEFaZGQ3S z>N<1bocU!-kPidN92HR99l7ku(zFiCfICORvLa1YQz$;Vs#TPG7QRtsu+AUX(u<1V zGKp(yQF6w5#2#N5h`B6Mz|&yiil3Y#Z$=x-lt^chB9M;PrBvei+sv>C+|qcKVBf+~ zd`uCHnL~Z;>_fL4@Mh`=!5;ruS3=16$MMr9T8%Pr8-*uylm>hHXA&$mA`40~#6nN((D#HyqOd2`Q+fYBLOwsUWa7{57dj!>d=> zh^K8Jv-2HWqTI{t{X^GG>2dP2hws-n7UHv^#Ku8FYEEq;*^Jg;u@DQCX|^TLq-?BY z$Dp(st#};NOeuit0cNV+bIz0(*$_HkHGL+1U4slg_MSDdtNjST+f*GT%P}6d#Xg|n1#@4VGgYi1Iiei zOqdWv`n>yt$yVj_c)d~lHrDlC}=l@^s> zOn-oe1P#~CoA7U`azOQq)-SRt2OIn>OQh7oi2=(t@je=R`pW}Ck!DYBxoLlJdqr0K zky>CD7xwuBb6@3g%0B|oXm{m*l`cB_spr%XEI_W5wC`0%+}|d(O%sW$k=`O+NSyJV z^0&`jzjACFd?r1FKS~1t8*HhIMC8JMn<+?4O@vK0 zw+O>2dm6>!Xw$$Dv7mr?E=&luB7ux^<}l#TldM@Ku_MY=)uvHgrPh|bW_2r&rAbG+ z40Q5*-+CG4I2=O~XPNg&N@a@@9?77PVsW)uGr$U`5{sN>F~z)T11oW2b(_hXLK5#! zv=);YC5C2_*lF>K{m(kQo$?Qu*t<$x>iYrET}B6l0WFs*H1NNRI4G0MuRh-^X@lf> zymz39jM0b8G6NIYYWF~Wnpj3psV+c}z(N9poQsQr(O@lQV6Y$gkz_T?oTCy&ZQ5#V zpjilspVn9b7!eaNi6=(6%ChPnB$+@I>==m9+|JtY#dNyZ+Jq83auUUWrfuq_M9zRfWk4+lG>|*MEDGnGv?+@S87N|efxD7)eGaX(_6MMp%Tj`|M;C#IA3%HTEfEJR_-Y08HE__l*zeu}zV#~X7k}z2@o)SepLDx$kmGo3=?&d1 zQd=|v!^r}Oq-+Vd3^c=TSl~1-J-opK7l5+`cDV)CYoIqrUmK5*$hKOsx4CaT8p7S3 zAt)l(Pj~y;=aPcs34k&l|;U~!4!~(o|^@({s0@RJ6Nk?02**20$iZf(=N^&acPGtcmhnI*3uS>xZc|C&9v18 z)l52U(%Wu^(U2a-UOkZ3?_#IAV}1F8=gl2#1iI(QNRMqxWcr90t95Ip2|^79 zJ4CjXTWlA{7=fqVUi{6Q@zkeY@W9&=cqxI60p^jJZX08XE)7@52t zfkeBP|Lp(ynt%E$yME=`H}i!zV8>@KCG2zdjt2}M`|vtH{QVE%sqcHLZytS1+R?+7 z2R-fH>xTOV49}4(^T;+b(8d~|3Ic&lwR&Vqes(dnNka!?|)33b*4r1?aJZUiC`rJWOglVlrUyJps*oS0ar06f)mInV!LphNzQ|2ZYo)xER# zIhrqNp2szU*wYYAzaNQG*0OJWPh2OG)4z-+gD6#^S}Ty8E>W$1HQ=h;$qga%X;#g7 z1Jwk=q&f=k0*FyXLQNmAJm-z%GLQ6$=ZH!5e+(MYsGP#&caZy}KUA4b-G|rbgKLji zSH&=JbY#@@C>1=cM$UmPeuS68Cqv1*T3S=V%qCpM%6(na;TuAPq?CS*BuNwdyJkfoq~F z$5}1jIj9b(s&rx!W1IjLdooGY^)vvBVhi*f<*lYNnu?KCT2bPvoN_MD5Sf6+qEjSF z8ATs5w!Ws5tgKP#DX+Qx`ZHGdMZ6if2U<8sdqOy{_TIVpt5TFie6qW=nN=!IsMw^n zobwq|;Zksb!YAW|2F0%y_54Jb37gJ>Ud1I#PUbT&C`%Pg6>djh5h()W-w&gyHvff# z?V*zi;vq1{ZjPsi5gDp_LoSr8XhUWaz>Jj|O;F4RnKkSKh0LwEE=4316RhNk zvu3rCQ7?tEw>jT1s?x^IRz`O=Uu4e8w9>J;$fl=2R&s{9sY`Na0``_6BB2f$!!%)- z5lj8@CZ^jY|5DphMDd z2V(ARIqT|Kj(_Pnpp-G{9c5tA{Yx1ESIVvf%dOsWv7`HaLXe;}?J|W@0$vIg)ZqhQ zTI|(63b68JHi0EoCAt^X99=76O5Fw}kM&F{H>LPGbH5b)!9M4^YkV#)_bFaMVf9mPCB!2VbRWwQFmGCGMYi4&y+n?rE(9 zs}|<1p>-s}aE4*4w&5); zor42e@yS^-j6JU5j@jE7Wz4vE+_Ri1z$}ipczkTeZm;Vpn^L>x}ovWAqba%AG>6ym!q9dCM z4OXGO`e>C8IEiQ)?KOfq*O?o}&#;)1;cP%p%8eOwjFrPQ_QX2R5LVX<|CH$-m2BmP z<5rPeFBrv-7*9`fS04@NE@qTz`|Z2)lpYHS#$J<`k@I!!a~E%K$*iVz!Wrimy`zs(VM) za|dcH^nR~MRXLwgscE#ICjB6CP4D$wN4IhbDA%$5+R@i=eeo^KYh^VPre68!@gNlq zO%PE43n-Lp`rQ)w7$kz#3pEyu%A`C+T6ldnh_^7Lbl1s*tVqH;X4>ErTh@O}|2Hc? z6FEu)LSb3#^ABEM5hpBGmnx-*+?p<8=WxEOs?U2?q0(%g4W<4r(t$5Rgcv`K@lm8g z<*S)23s9}A8BrFlaH1U?mWf1gP|**f;$<-5)WFOs;IoPi?l?geSN>+lY?y#XMxhWaWpfV-)gh}cE znSGa_ln7bry-mV^F}kGxm8gX_dCtw}NHXazRuB}ajYxGsl#0dXiZZZYu7M_ZK#6zx zK3)5ZSf>sHocsI6gC(ju4X&w{6U@ zLd)60G7mnTKuUwy`elH|V=*ujG&LQ&MV!<~A~aY02(>2&uw?>hlbnHeeW@!TqJiBQ ze7=!76p+eM1&&>Bz^c+;>YS=PDKLi)B4bs*Il;Q44h*ihR)-${7?!yo-6$!6hyI0^ z5+~=+-3G?s#c=sc85D-2gT!VPcc9Q@TmPSLzOnnj2cPiv*Z$HqeCYibmNC5l z(VyJOZ+!DOPIul94%cZ0+nrGiXBhMrGDP>*V1q{ABXYad{%(=OZS>arZom%KnFlM& z-7vVPW!KR~UnxfO3NR~|NpB7`w2Wam*x18wdngb3n|a})+2K0l_!NmHtaaFG1#DIc zYtXKU?9FoB!>(O}z4#L1r7yl_m)`UAlAQx^Ep0(V&m=VDzRIxH%n*TS!sCG)r)Wo) zaq%MZ_1EF?78}bFDG3L>$-{R+<{IXfX71@`nrhXoyWz~1*xr28H&1NCB6kU_%`B)` z%>+hTYmOYv0y~WdQIrX=Jl71k)fPOx9KP#%-+lHTmJxwd_`$`i(blUrPG9!Ce{+{< zZrzdAtb5C|8_PJm-`aATIC%}@(zxkimU|!U(lO0+Lg#5s9d?yRh9P}{*^2HSiS;9Y z+9JM;*bR7xyR{u0D>Fx~(va%}0&O#F*(K~ON1R2=onbfNhgS}Ut?s$ynS8BdN%*?J zBt@o8aC8T1lUfH_xUFp3UU!%wI_#10z(eRacH9$38^or=E?;tc{4vJ@#MyoGJGU3R z@p|I#{@lpZfB21f=Y!wyzw}ox;*utIDirI*nz@Pz^?uaog-4i3zXjZx` ziR9`#W2&`s(V#`N&^TlWsm@G^TFh<}glQaMPL$hQiiTo!*NuKnrSLQdyvYX&QjQ718w|ti>{oo2VQG>= zA!bXRHSlR}xF3l~aL%!DM$CpXZWQ!@i+GTS`Yfn0v72)3N^*>ZK>||#8O&3@0k+2^ zSuGeM9FX(8b7QjaReZ`Ux{7}<+*bIiu)m4uh)Py@AkX9^8_#35EUJ=Ne*;&d%V$(1 zK-pprwE`$_f}4^r{kt&}CZ5mye!gc@;l;UJfS|VmOrB7QnIKi-43yu5&-=G?k%NUH z9g3OCwdf2VrbM}j?{vzgAsf_`5~L9qmUSPGYPE_^G|Ff&3U~YdyOfVYVh0#HOchx# z>}}u#1hrn)cu3c~Ar_H}0qVVXrx%dcQrWkjOF`7u!a^els8)fcR+ANo5`N`bUtGSM z+PJibMis@f3Mhr&Aw$GUB2!iKD!lUfrB%YIr&g6=Q;V#KBeq7$b3rNq`b0tcfbvlw zzP7?6g=1WiDA>AOV@hXMCt_-n3yC>xP4W%?9JPLcYRhgKSWVcL+E9EyA=1Ot)-f53 z$`yh}*;NEG)PiMUD$S=-Gtc2KUZ0+??-O}56Mn1Yna{-ZS(SGbxkfl%>&Yg?4FftV zlk|BKTRjdDn}sE-sO#X~W7A%U?r6%TL4ghcYn)~_j7EZ~-!ovwHc!S^x17c9Qst%r zon~^OM4}$D7IQZC3pJ1-oN4r65=C?MJ!=e(LGzS(*kodoEQcxZCZ*_UTIf*^j1Py> zHc5o*;bBbT!Bl;oOr0f1I9T-vscL&JDM4)%9&<7_tNLha^YFn`Ld+mp)kxg~LWD&z zGDR*VOH4LUv%rg&oOFu}fY=8{wp|<~U!KVzsG{5XgJdRJ3Jk`L&1o%M%#@%HepUiu zOgzaT?l%Ql%T)0L6JwT}iV*zzpBh03)Y#pS3xlstn~U zk4P*^%8DINNyX~>d9c^P#m{H|dR0!!sDsbS6%?&0@t$*Abijc!#?}%sRB4d%1yKAL ze5Ru|m&}4D3!M&gzEh4+(vl6Eq#0UC+MVvrK^8v2HWj$3WnMi|h}jAe33MgqZIU>= zKy!%jG9KR0IuHq!^{l-1A@6?@S;nB{w%=z(%2cS>L8HggwAVs`#pZ!nN`N{>VL%M0 z(|rWWQMC^CT02%_id?gJ=UgVEagaAG7@S8O$@OWvex%YD-dm(A$*2E95B@zeCOAVq z2N5z{SYQuk+W!4cBBKO*lCA2{*c9QO6JbJ1)EK`tCt;{^(GS8w`U774P!)} z>|m`sd}pw38Ey1|mOe6l)h)5mlRqdGh{VbPR+N{B^tD|$gyk+_&Fo;EzFM0dY!H0~ zivjeOxw5df@?34;M;lm}<%_R`Kl>+d;=Q{w_jR{C8v|{ua#)(v=|00EEt)EQkzFrr z2lUgshJ(lO*2jP^d=nVMT3Q@r_mP8Za)U;STQJc*E{|^-jO_Qet=8?U{ET^#yAW;%cdvciE?)V6SozP1IfkYzM>3q|9RTa@J8TF`RK`I1{NnQf3;vmmr>P3i;n4dJj zX-=HN52hjtafZTeWsS*puE>E>9ag&@m3>O`t01Igyzq@xqLu**o8(P5;=&qxSI3N3 z!2(b+&m<+4z>;e8I)G*EjE)X2D7rfS9QuVUY=Q;#xztA*yE@9szf3biILsTslb)AMrg0Hb%zm! zKMzRyp5XzFD(uW=TY8%*f1=M;0Kt9k-jpYZA=K6~Y7DUXH})+Fv{42YCR z2eV`UafEJX~? zAZTJ`;gFAj{58cqu~NPdN^T6?l~5bhi?3wRo1DqBOgh9~h>@av-T*UIo7F2+o9Wz! z%zB-(zlxP{=1WyYgnFS$9<)yexC|>8{{N}^^Kjd<<0=qb5&L(}xx>5nP5E-pRHg=N zuw==SC1e|Uz<@_&u*)tm4HPb_sAlMHs%VCy%H7TM(M`LmZFliOQxr6OltFYc7~0sh z?Xo=L8C%w@Oih`}@y+kud(Sz)9npWR75iN4`|Qko_uX@T!``tY)>^RwVE5_HY|M13 zMW}zRcLh_x#M%N$nNXIjNJ@j;ZGOI=B)VIyy*7;jm;*zKoN5Cdl4Zj{a{3yF4&UNuzU)3YiAC7$P1#PT1MVe&s%gcF)8)2e!3ttGm8 znOxr)+VLK8^38KnIu7ksuw|i3g@D#V?FnT0_|Qh^TsHu{bF_2U5kTo`9Nec=B{}6yG~5D$qi0$QDK#dLH9g||bOls00W$su zjQwF8imk(`_8}ja4Y`v7sxeSI5~+SKI>4fU;qk6h@u0F*Q&MV5y15>uU?~`%RRRqT zQ*y2}CRqs?0~T-+1<0eOaJX6u$X4*Z@b?JDMM!_>kTtzmzK*t=?WVIO$z zGxsoGzvSFTx!oofZe}eq z!@X}nb26jxpwF}Xkl`h7HE8Bp7I`)Y zhhWc@+6QPEX^tDYeDbxvz6*Qt-Ywk!wBzMp{HeV3Fl_&#=jzC?K1Iy;x^GSN+M5WFet8^ve)LiN!aiEAH^64g_&gM1#wV51jzCJQS-s z$eG3lVFI538Yel8jKp%(wHB!ncTCWuE5A~?Wy)i^&UU7qe2_j4j$pn>DprzV5NOV( z{5Pc359v0< z*HHdHt9CA3YKkbZU0Nmiw`rX#Nw3GMqHfo-&9&=Yz(t7JuiV>}`y|i&kcx3<7_F1P zn8?9Mrlwp~0Z4#@W*WQ5UY=vfdWR~+HKiz%Z4EWvIy>u)Fqh&P=h*UHTL4o1^}42N zzhFN-SlnvinChdjRFNIXY$NBg`g>YqR%!t7GihvCgqGr+>PM8aiJ@wM5DqETA;k<* z%BLWY*#%-rt)lKO)FiAN#k-Gk!Cd3xMNTn)V*sjW#ZlCWs`dlQ@1S}{d2Wkc?ujC@ zo#nGPwtHDKweWD^xz<-`x<+{lWO9v}%Rj?P^{O_Q~$)t1VXAt%M>Zs7? znhflQp#vo8uA(&*EX3{&aKXy-g>Kr_m(E2fV+l4UiL9x|!yQC-$T~!{`i-C412U@9 zI6xWLaKli4V|30zx&mwz=bw^|4I>dOM_}Ei5?yC;c=m~F)(%&q`CC7Dm8gfyfKu2PN zx4_A}!cmMQ%^ZOr~4lW(RxvOG4uJgX5pT`ST?LylN}!+u3lQT{ndp3@ZsC}i@$OY_fBWKe4*jeMaS`R zi{sgU{%>u%=ogqtDs5YscJhbO@|B=#k!%u z>6u1pT+q|E!y6nuI+iQL#f!kL+lkw++|H}l9!ksm9%$x0Io;9C5^l|QscUFgn0sJ* z=G~Tf^h+Pdo_{RXXRRIX2RaRgvs<$U&d%Liw3rs*>yw7F7uR-jV;$Y#U-Jha$7{dq zj~N!1yPZDUl%ZMrVz*Za6>*#aNGlmPyO-G3kO}LSxQTZ0cjBx6>yO0Q=b!Ou`9(N= z^;3EO`RDTFR@nBmVfDb$j-NWr#RIRgqbI%u?cpy2{DH`L3h9rz<;~70GYR8esKSFF zryQNe3=^)Oi-##y7PheEz8${z+ws8j-=CY8Z`!&6eQV~6y_g<^Egn2TJ6Zv8jNWJD zc1Et(7V{=I>$JniSGe?+cP8xd*>Kjt&hBo5n_}z&7o_xGp7I0G&l`Y6c!t9+;^4}{ z?BjE~bu5~ht$^jqyIsiE!?4+etvA4CW7wQ!#vJgz&1*;S+g~_C8k+6BF5yjfpkpP z=}*O;N#%Z!VW8apmA*oG6&rqBpi1nZFR2?cOujb-K^SJm_c~+UTy1RX^B3b5%1d0u z4G4&iUir!+iY>H}SDj}#d498Yq_cjPRY&z(`(!|n=rT|4E=^eAqi|_@_};pO)MbX~ zHm22-`YcOn3NhIRo~L4!Q$RgU_?QP*TSlOY!D5>A)T&2a06L8!nS&L1HN2nFMve=) z$Xib5)E(u;RLX`zyb1tGY&8bFX4+del>5I@TmbYlE7Gz>A1xkLBw?s-={`@DiVCqz z4Ea5199YU4c3^OAG}OM7KNd`^cPTjd{8Afd034NvH9r5Sp^QqM5`5Rrv9p8hVlJ}F zQ<-x}U70@Ah@<63`>&LawN@c8rlvtPoU0E^`J7ry>zVFy>I7X@OyF5#er&sZiZPRW z$%E_56|1T>k~tfvISi^PlDU>mh~#K!XubRv?*&u)QUee&01~4UCNLn1bddmG`>&MK z{GZ|ns(yrqR+tn(199b_hm-_Xl782E;{L6=i^ZPHgd4o4z9SK#&oXn>3{^I9x=4tZ z^)afnYL*;cT>(dP8I-zeb*Od25>sUXA*8DIU6t4n8rMO#KM_K9R%Dk@wLU<4b}Vh4nB?+O9FCl%9{`g0vnO0k4GP&SoSxY{`u zn?WTjUh$F0*oJ?DZ4P4jwa9mYKzF8lX52Cr1AQ!XqT&V3u_zb?Dj)jjz2TgB+XY)w z3M&8vBe~@BkHJvu1;PhHS+eFxAErDh0E4(^YO(3P86O1eR)Qr}u=CjnfT(RRaAx#U zMxw@n)OE91BF|+#253`W1GRArfettJw?OR{)+Jll*;v(^2dvXaf`>t&TMd-~)W!}d z#q1b8k*0kZ1#Ia6MN8Ps&*yTGilg2`bIPiO^q1!ZYF$fiKMHK$9U4#pUGFD-xBiIy z^A21LiX}A9*z1)ICtzB8g^*^VpajJPh*Ur>{{pSE>hG&$WgK>r-KF+Xu`r3w8NF8P zUT1M7J4lYM@}}j@dsGZ(U#gf4m9xALBRUMlh?+={8qv7}0g4%^W!^Aljzn;He#qB@ z8Kx;dVf55dx?cx@BW+eZV(@b>FA}cvZYlJdF{V|L4F0|syHtlyLuHr%oXHI;PVKfn z-;co>pGh|#v*wFs;a14O+Bh7GRbV+aeE7q6zU^Q9)ZKsl`UiaP&;RMG+jo5RBg^|I z?$1AeKTb|Id2+JNTemj>3-3K0$b}s4(tCKiWz4YVOjf35#-e(Php+BqYT=)K?gT&a zQ@8NZ&!#OW;PO85blG!zz5AW}fvaa7tGx!?$h>f2az9+cu%*j-CUKI9a8af;gdsB0 z(X6K-@1MaA_VdEAig0f| zfhi-B&OzLEwnb(mo6QZJjzCP!bGyc3dk4qweHR|R@G*bx*)94LY}akpk#omp1DILn zcJ>yD%LhH4eA4|L-|?6|{J!_WA9@lowa9y)w&q(P7eJLCUCcY*A6?ljGTkZuBWT10 z4>!aL@D0+g+QHlZ&vx+k1%QWelm})A%YF~uI`0pAEYh%MofYYZrJ>JZhL*lyjI`n< zYgk$B0$x$T#r6r-)4lj`o2YFZIa&vfKWfEVEMSnxD#l1XL)-8>@Z@ZMTlZgU;JZ9Pw?#k4%e z{@X6KZ++`S`SsuZ`ORr<{l6##EB@I7UxTVf}lY)S`a}_9Da$y587`c{#f!>Ryu4CV_`bQXTdhUv{%KKo- z1B>z1>1$%Rkvliua|Ax$1MjC=V2kYFb1rg3`A-osxdXaO{m9(Oq*m4YQNG7%i_A&8 zjO)nc##k4Fa2fe)4%WEZ5vzU}g-|FDHG)m)Y9}rhAIf=irv#{b0g|O({XQxz2&||A zTlr1pi3DK^C?Waf(DN{p=p|{*u3qp0D4^7#7wJ~{p-BmtMR*qL&(ExuW+=z0nr2AR z#RXZamQnnjO+HBGu#gv0sW`$#qEyj}0Xn3VH$$aZ&)>@{syxY3_m!1Z4Bs_V{xoVn z%$g*kg0l2lqvlX<6NZr#q7t0l^Wza$wMG}PRC)s2rAf%4)~KNP%MJ#6^3|}#AbJ$YMF3UJ?dKLPz!DFD9NVJ zQTCSjEktxZqUuHsDO-Cl=ooI0dm9k`AXGqr0&5HA4pM$$mQI z&cPBn3K~UNF5PoICWYb}ClhgVjH@+`ui-*zM)q-(JO*yEWMK2IARzf#A-Lp4I;B^c zObSea6zUl_40Eut@J5xiV{B{0Vdl(5K9E*Ee~X>$1uAC9ljvou=bO&A7)62ye_p+A zQ3peov}E2PN%b1Fv8w>A?N2tfqg>hRQKE`{1#BD4Hjyp!;0GrV-it_A0Vs}NV=nkg zD==~s8bJG4{V%c#KlXXKX`Ev)kU&XGx&jWGSO&hoU2ekvF04xRwu;>{rejd6^;-xa z9o=omVyo~g;~W;UIodRIQj6uT1Del~D}UGL4wK5E%u!@qG*lJ|{!W$>AjQ)3K6`{jNY@})L5GdiQuROJbh^!;oCIA;W$?MJlC0gge!KklKb*f&+!<%nLvKV=w;NXI|RA{wu!psQ;z^_NmSBgAeuGSy3~y%WX&G)!D3@9KgqT|M#nSBBm1V9R{^1Ybj9>l8X@2a}9rw-SIe zEGGDB;n{m&-Xe~U7MAI@oq-Dm#B9t>dRm`4518(Tg_7))F_A@X?%cz4X_Zetwdc>h za8d_jGbEa4MsgKT3;5)~GzkkeH_V2;RmS}eo4mQjHqA0K+~5V%f`EfbZozeFE~6>) z#C+?ezynYCH~--a_D}xKJ@ix9!9~OICC75%IoWLcdkx3emU!e1SMb=ozsQ%5zAmv` z0kN{^h_=1y!&x;999uF6ym{Ij77O0ARjB9KJW*dj34a~PoME;Fa>=zC&xKD*Ph5ac zhnczX#1=W&GcW<0B=@XQ>eU;zj<131+khAEq$ zAr@be_NE`VmJuskV;e2q!pvXH?02l4e#~(9ImF#(%r>9P*nA4UdKv!kAIrXan;Gtc z%}!}VRcl6vP#affqgl_tP7R3y-ANIBbIM8Qp+ctv4}eXH}SP=|Q(LRQ?@8Or5GB%dGN) z&o_xa^`>*@5;~)BlZ@Tsuj*j-9U#~aJPa-e_n5INex+z4O*z;6jooIdM zGXz(XslwG&c;ehyHo#5I8g9yyyaAY15GpZE6{o0>Z56NUTva4YvQX$^w6G&Nfbs)K zSZl~GX>A0|iVYJ;+$+DUm<{3DA>5d)fw9|YD7M+aRacBS(Mc{XtACGDT@|n|W!uOP zp(4iE%WN#7Qtf5Yi}hFTqQye(Sbd&~G${Uq#6%Sf%yW31D9EnPMooHw$~KeV1Ai~a zck{M#@QGD05PNt26anuE0mh>mPWE z#aN5T9U;S2XuJG<7a2>shpwjllGSRA5w1Vde%l@$Io43fgZ?R z?q=FQmZ_dvty?J&_>LQH^jxfU5uU6?c=lWFi~^Y^=1_BtxEyr~(jyE= z8N~}609`<$zpD4AnzM5L-Q+OEr`BQSm@4oja!5~z_OW1@-6{P~p$a~ao3tQGXgl#7 z@2FQ0tw6`cv*RFC7`fQW5TYT2l0m8_kdp42`k05*1v_LbLRA2Yixlzigz#BJ)qx|o z#VE;5Jro9Vn$J|+RdSAmES*uql&bFsgT*Fm2dLjw-=DQ$Y8e$W3rcS&9fJx=2mJ zZ7LVKzbj(-IwZa_A4NTj1%(tlx2c+hM?Dd3f~hbr2ufG70|)$E;AwhH!Oa%d1hfgg zgo@)xNycQ%q!b3&p|e~=jfgH(>}HWCJj_$m?#il7)tDqP=AkLdEn18=!BIo&QV?nDkv7Du0Iw;Q8>03Cpw`OD|h^p3FcBoSqrx?HY$i6F%|Dli&US`Co7T%S#L2|GqzQobUW& zzsqswzTbc8X5N1Bj@`Sx!M)S%auYCj&!tZ-TVU>%A?<7QK##DD%;qppYu8^r#S@RN zuv!BD?k8WxPyTZFasgaB04!u$q9!A6g{~u(T~^ zn0vw|oA%ub5jXQNb9ou1uh*wo*}}f$ZAbWtpFBZqx=s7Y?Z#};=#AY>g`GPVj%d?@ zx#*%rn< zKfK_6blK2W;hvuDBCvPCtSu4q1m9ebJiYFAw#md@csEvGHX+?OKhY+GO=SFYpOn|! z^wPOg(mc45?rWh=JY{Uoz^1uPOlp0Vz*!pZ8Q^KkG<-@$!V4gva4&&sX79{wk(t=j zE)4(^Gf#1c7+u-LuD1Ytg%mM5pMFe}<2vAdwp&#p3C!c68RzUy58m z=H}63sSt0Gz;=sVC)%_R9ABLB=+Y`~eBr*?{eSOq;ZNFja}j$JL2@Vf7fu4s z&>FmVxJ@=&W(!9y7<9ZXu(SZ$jJ|1@Pqvw1mN6&h+1z2-EG;Lq#mXYKSOTqQ!vuIl zoy7^ipRn~Ny=^cr4zYOftNcCx*~#*Ye%nX$L;vRE{;^M=9R9msy#8H3_OsW&NEz2vh~c#&F?yA|g~K`zji%2@Lv*bbH!25}A6E8aEO7?Q zUUzFEz<5Gyjnu+&!pvl1!TlwKWB2}4Eb9D6?VHgzPGm7_tdd$?${25#e=8AF@$cu+ zo=6d4+!sK~RIn7wd_TJsSVWB3xTcVqxE3ue2>_znde!S(Ku_ITs4c~MN?lyQm{O-A z8D|!?P(80zfE>@Crhr5BA`-bs)f#O|umZ}ROTWN(#E~+Ue^btq6R&OH2*7v;$f^|; zFWP`c=r7W80B-C-)OtvPpY`oJEyGcgdgX+w#IlcmeZEiT|JexOc~6*60#pS^7KvW4 zL)gyKLky<36u~V3Oz&j)V+cu%v7ekdCsH0%z*JJ4?1A9`pJZkM7V_|h?16@vBS-X7 zMz4wz;V1^U8D-SvcxsLPFPz(ZQ~7Y>Y;!7iKKX04?B<-+`n+sbYuYv)YcyJpXdATYc>L zQP2;_q>T$Jpg<6O%5>K^WOUTrN&+9IV4^H5BiSU|U8kyYHw`yikLUk6Y1TU#c& zbzPh7SZ+@M?7_-`++rYK*%aTB4(!OtYc>$RlK;B|Zynp~`bVO$e3)uTp+ zmWOCDynM%w>dP(yz5z3a)XpQ>4jV#OVHz!1d`+$8StB#*c~sanz8_7dNVKtT&8?iE zxxRYPDanItCV?U`vlW6$J)G{++DH65Kw6jQg`&J`pH(6`m>-#{ z3|*qu56-disee~tP54tXz*2z#Xibc+Kr@c!2}vpetFeG4;0|nmAnRdrwAIGb^_h&d zvQbfkyA0Q6)Q9BK$CTdZ4()3 z(FHejz&+yrNq2PM+Le9$i+}Tq{q%_cJA$vkYlVgQt>HWjO8}Nju^uN@Dk3N?S+Kw|`U_+Ccf+hP zqcE2g3JG{xnrCL1O;bsyJhQ>O1v)&;(iUlUGdUHpgwNXmCQDmc;=vA_IX$`)jCzx} zH`)|b;;uwosXePBruu7HH%?|P0@#{gdj~E*`3v^qM^E~}YrRdLKA&*!Su-(FGi20`Md#E2i8OmaGe-zLS|2rM-5?NZUT*aTKe9Ev{SqO zk(Y4vsAKiek-_$JzMt5fp5g4ySz_I7T68p9!COOyr)6X!YM4l|6&@YtJrQxwHm^LN zi=zvEGnnwHN0?o?oKFu;^ch9F3fZzw&H@rfe=CNunp;B;=6)SE zjE#3@UX`1q3|U<(whw^3M$o|wm`D(~@-E7`l?0lh*@7^C2)Or2X(GY->L;Gi(JS%Q zc@R3^EO$TwR7ex80_bSXM4nP_7I=<^@WiB|m^t3eLd3>?CVQPRivCpmF3Ed?(@3~0 z|835~FUu>2F`L@dj!>Vll@!1e>|xi0DRbsi36#lLsa}VRdS_lpDm8R(c*pYm&9cgAQ zWe25PMh9c55t(Wmfi1NJ7Q2iBErQAF@X&(tN8|f115&OtS0Nv)P;$aB9WQkZp!dn= zS5J#0pc25TUs?HkC|4~& z1y%{-05^GjhuVX+D;x7+lN4Z=AP_8?S_-u?9^Ww+GYR$y_oPcXfKCG(7AayH5g=}FtCcnO2YXdLVfz&M{{kYOmOCOa1s$9rdI|RpuD&` zk*berMg!)V8@K@_cdn%!`s^Whf{FaAZ6B!%@SbZ6q9?S#L~ zuA*Iqc-H|Mk|$~XmuZ8C7DqRvX_;zslm$VJ{j&lJUV49+!Ix6nG%rW$VXnVN$t6fJ@3$0j1b+pMg! z6@;oL9_BBK3IU|6Ute`ET7}OxS`bVD$+EECoxw=yda9j5tDoO34v_~2*@g;HQ4vc+ zwwOxiSRX^$)Xt&DXvhdL`C4nWa*Z`Vqyk|IExBHk3I{fVTZie)s={5SHNl_-GXg^< z6F#d#ba&WQuO4Mkh2-ksGp!%zXubevD#LJY|7!w3otxtMxTXv(0=*Grg2|0FAmtIC zStUQN7}8lb@hx{7_Xja8sozf+QY}A)?(Z=ERNTS{w0eW6$(Bs;n5e-4iI2#dxLSY8 zM6!{yHD!^UQJhjb>78kPDbpPXP|GABrCzj@+M$kK(|<1)4OjOAKlsBh{lHKE+WJrZ zH}7B0-}PU9sjc4lw#EAPT|0Z}vpBnXg3U=sw#4KMm~X;7-CA=@9kz8~(@Up>%o?-> z^l&>l4P3i2;mf|_0sNaEyPhlSxO{9Gk9i2$1F&7QDpM~)je0?$2nhBv=u zi)m`v=k76)!%cU3X-uG?Uowl?64?#g``fts#1*@A0eIn6~nWN&5`En$>OdZvekHM8_YBuN|t^%|RP zTHjzknR1!~;ZmJ?gF7=rw?uEv+*<(dnZ`+Rji;=cdRlz^6O=(jS_aUF(?`y#nL@CU zqtaJ)oMzOqU1^dQB6+3L)BY?XCCIvT%=hza2m2IO5hZZSy9Jjhf1?Q0)UaU#q5tfb!>Zk8#_ChbGw}bo8IQ^nD*R}K<~)O zI`({>OCSRWEo_f@gSAA$%(iuac3xCVbF&H3H(H=~GwTt4eAr(2xzFJ*{OMoDn;vZW z`Y&4IJ-_1$9(n7dcJSn5kxyK8+&snUoqL$?2O_rFCYZUKG5C0pb#;vk%Q-D`lkW3b z-}V_exr^ywFPGQe(BAy}UfW;)rJuFm_2VDKKl*2P_Wsci-TA9O{fqbi%ddFP(SQB! zciKOC>dF0+o7cCvyD=t>29`pTX5I(m$reC{ zY31`dy1`}@0T3wz#r2t=)g_^ab;aiji8|l2iuoLcEElhUep7$F+TXmGJrPNfmCrDK z2Y@L!6)NT30zgHmvk4^yfFREq2x1h3EhINCl|aRD8#O7)e*g*0N#L`L|5{Kz+DuBs zv|T=Cm9{964={i9PSn+Qvj*=NYSE_WSw@63c#a|I zhuUw$oUo!b<hGN+G{VbWGstLWmqKju2)?WXLUZiB3VRmgK;tPNCuX=GtbDO-}&Qg*3$>i1%I3uBa_)$ePhsCHE; zEm;&RrewvDdVgB>dVi#*T;w6pr8LjV?^4PQ70cNZm_)MF@AGSk)^~#@B=NBac+&Pj zcYoI*rQ&-hy(g0V*jb6MWIQKkW8g zi0B457Q0&RZL;w*BlCeY!;~P^v_q39c?wmPwQ;)u7T1>ygE~TkqhP6`Vn}9khAC-= z3b-A)F4>o1EQAsO5`pF4s`AS`cajGrqMs}BRs1GmFuQ`kU^rJiHoX{0BZ`$RgA46C zG1f$FDmAbEC{xkdl82GbF;%q+a;AbZy8?`Y&QKbVk=^yc@lLZzxsZiECA`zv!GzG& z_XJo_(a=ULrj=7@7g(f2y$)0@zOkWIP!qLNaqmVSqeztLVtL*09hMeQ&$KpY6+5Hw ztphwqu^8S}7)eT|_Y-NF_fD3A^kt}c%rPp+cb9?cx8gI0R#2kmtTHiS%G|Zi>Hw#j zz}R~oj@dMCx9!#^&JGsnu0eFa$DtEbOpdXXAoioWoK;9ArVS} zFHwOXOoa&mRy0*!u2z(uVtavbuwnYgz^CLz$y@Wv%4$PG zE8Ce+C~lzQ2LzJT^;@YRM9!%tBc#}HcQ~CP#m&+g*0SzV$r}d_Di)G4;Rqmter##f zfjLZZ>i0ULJNEV**B;oz-}&30`G+6z6qn0m_xpy%6Vgk&<*4xCL+hI3f>Bz0&>)wAg-t@cQ;(6L5dbqK- zq#;{mb4{U4Sk8e)D;&4ykoks}tMA3UqQcN>i+0^cBpyyz_LpVJ-Sj z{m*Q~>40fqud@S=Je)CoThI=9q-GVB*odB3?!8`xRL-yvc|0F*7 zBcJbo|DT>-`iKAO?%(>rzq$K;@Bf;M|NC!y|HZ%a;A(+e_c~^q25eMBMx@aLsZn(| z1=}})lrjr2YiO9+9_do4i2|3=IuAd$#Az227ok392M1 zzS9$^@p4v~{)C~xtmDQ^V_~agv?>B}O!Z;*6o{b`(0Lq?(z6tn{JYE(m768=w}g)z z*OZt=oy$@=u;Y6|8N?}DBtvd4*|Qi%wFK7tLGI>u4T3;5O*(sz%VLL~4~k4#jEmNV zapC}K0zhkQHAIm?GVco@e8eo(11c0nj!-?^c0`GaD^yW#rh<{<8;fM4s)5gl;7ceE z;QDtxZ_cGB)0#ukdyeod0!NJRNHD6kPCw_8mAb;zURd{U(;yuq4dp?Fs$HBa!;+N$ zR>Mk4-mXD(EFmNMHPmiibVBA={Lw#baa_FE31ORNfU(jpkt7#j#8-Z z>aSf=#sb+y1`VoT$`$6bj$wevouXJ%^`0ZgYDggYt#w}oj8%SCJ@jL|UpBTK39R6& z(U-{t&pZ*)l%Mh0IUMlvC{la1h4viRdjS#Di5lM%zxIXKLvhkV#a80!Y^0hr?ooISvE-IIeIV<8#gv$*rcG$*itiF zEu3?50aSxPD)DxqH0Zmc-GVPj#}7AGp*)h{AgdP_qxdk;lQ@K4RBsCV>SCDh&<(!{ zq-F7yK{xd=t30{M5L7~NF#u6Tdu@Czwlv!nOFUi0WHO~frsm%gnzW$wKdTr+KL-NT z;k09r$#i4)`N6^{VPvWm?3un%l3@w-b`Dq&7+^XGL-$(?tFc*&YaoR7Hvu1Ym}pKt zrE)RU168a#)Yp^~EVhX1NmmcIfd>?MCOIRk$Z~+lwPhW_N|PG`9TO2FrslOqt*Ah5 z-a`9bj5~`|21&|ny7mV*u7L$_M#pX@IPb+IgiR$HK7vB+C2jHo-gs)DB!C0;uX!n% z1e>5#J26x-If7~oB@6WYQDz}h7!)ysggh}&1jTsH4xk3ARgyAk9n$zk&qP5P>S;2q zTY{rmH8L{0o?jVA+0GYSLC=MZ^Wz$yY2#XB`Bf|f;gXA#7+ zP_C7kfYF5()_@+UX7rLJCJ63eJYO;XQY92{<4xd!loBOGd%&f` zzz_Vtp84A^-;6)-J%4CFzV5rf5>A znmHl@bEwZ3mKHEKL&S`>OuYW}hp->Lg{2Ll!w@h;VHL)`Y)G>u>}+GX@U-Z#P2XTY zRzQ!~y4!M@meJ4+woJugYW<>zwdU5=r!)Gd$Jc(-Q}*K@{3xFNRNCVYciupUot$ov zGrMYz4-t<%x%Ah6=_C2NcRrFA9=+mm2Athl+vF9BYEjm^)Ecbg(hL@j=~;RvXCbG- zEHl!Zmy=f@;ORz!-x`dTyIJQxV4R)Qnpwz2lL7$BrY6B)R_X1`I50AQ&$KNJ+XR;C zdtV_k(o6ycOd#Zv2yEe4AjYfVZncr3(rZ01tL|F>LrVtmgzd;!iiwtt3o|e{TcFAb zjNMw?k0rJL10zgnFCp-Xt1VN+@Vq;3m|p1wj8^4k-5+NS4Op;o$1fC(dKeZB*bkt& z0~w3Un7-@}`1@Y>F5LK;AHnB-;d6NIlV^D8-WeAAh`p<3hnM$oe8q9;fdvlsk8rj* z!_+p&xn=fe(UvPiY{`&U?&Fr2g9}2CKpIkomN^_@9{WdWPhW*U@;I=an?-N9bF#rd z|A~$d{OC=)cKpkD*E@a#U-wN9;K|?qdMuxOz3o5zIIwl}+b>1Ganp0NG4HNnC4Ba+ z1#+7?dz!^;$Qknuw`s8iR#WaBzb@YPhaR!N{?*U-5C8b{?ZYd@~giw&;93=Lt4RF}U%iq-Cz8gqj)?Uah749I4Wjc{&V+-clnH z`v8Hw4uAP0k#H`YQ_n{QWJR?ekWw&yOF_q#!uCfB++wt_HmOiO1zHHK(Q81Bq|WAu z&iu9(kEW)fCi_rg44BBTnj%KYnpjV|*fH$tUGQBREP0(M#cC0VwsT`Lk#4n5M}F@7 zEbH>ls^3@s!(RSc)qNaK#R8)+6H9o`B5R7E&>D*boVrjL$94m1_sHG4bvdh8)kD53 z1S!1b3dcw7qHq1Pk@adkC`G16_TUd=Z=kL)(w4n^=WQdB&33shHsb`vK1qc>U z0k9VEiSM^^T&aQTdDRyaH1J)`39ZGX5uqpKA@e$TKMC*Cm;ruS+Tw zwJwx%H<6cUR3B6=VJT&B=RP*AuPo41{#~ZrwrZzL<^LM9*)pi^P=1(_|1)O}aHJvR zF=hj@MAlGl)jIBq4=K-QJ@SOs+Jq@W#dlJMlQL1^Ml>ep$%nuPRAv}jm`daa8li-{ z`mG2Q8EOn&Asp;;rTN0x6yPX^IjXO!7Nx1iA)*vQL=yZ0tG)>pS}>@^zy^a0uqer< zNd=PZh7PAdNqE|Dv?ObtgR$&LJD9BSpc}k55wSYlYHvWshN$#VJ=a-_rwk`_Eif_ju3#OzY_9@Q zQ@>l73J!i&s<30a$oE_h#56P1`f(oZCA}&}y7z>qYxJ5a5bDemQ8unmefX85QjC&2 znV^t&ZZ0KR3eb@(xJvF`@1I5;#`RT9bt=#?%&6ay;g3cveK_W3_~7Eo;eNONcj|@E zJFU&#V9Gg&K9fxuD+r}2slLeS zU+N_MsAgfIzyuf=vv;$S!(z?VvQlj%^~DOH#Ypi6v?f{`&mYyZ2_0?<-r)@vo%dvLB*K1^Ya)RC{rMis=h)~ZD)#9?KSoO%17N2 zh+dL3fo$q~Os~EyXpSup>1hF6zOuxR{lpi(<0CK6fBbuX&mP|QpZ@l=$KMft|Ax;u zU(LqJ%{{SR15-=S=-AGVX%0+{NklYYA)MWfPiu33gPWgz#V^#iUJf-*| z!0#nrOS3)$y&>DIMYmAi(-XNc^gX~m>YmY&N5W>AN-PGAqfR^`)V;P7A=7GT<54R!$GpIP0z6Ee?WwnbtO zcHtOTzWEQ~(l@R9m)v^ZPM`URzw#^3_{$%^lXsp!wY$#)FRx}>?VTpJW>+5oVzB^X zooM^ba)vi{S!d_!HaFoM1+}EX60^*5n{9D?yobdCSX#nbhfR?ej?JEYY{J=D;MG@= zKl*dsKJf3pfY)C60)E?@ek#7~YmfY`zxRvbum4&zyBYc1uY0#8DuL=_rXV?~o`INq zwmB>|bL3fbpO$TLwim01UpKwuk3MQ||K?A{SN-VC_<#HlCzt=i|NZ7~{*HH_{O}+C zu7|$ufd_JZ_jbp;S&UxNvgu`mNQ~l$=eq+&xM0RPSMvm-HFyRKRU(>qMKRU&&;DZ5Yf$g+`)`h0K_<)CpYvL$2ZuLFGUw*CAlws3`+E zz~3EETLUu6yxHXmz`pR5#)kK9V(X#YJKYB%1m(+xapl0o`vBY_CKnZdlq9f`lZyiBRHR1Od#D6Q3axQeY^!s~`-|k@J#WPjG&HU0_OL??VwlqD<_&>--H~ zLy;hvAfcCCY`dbSpn**KHO+P35)qMmQ$80R#r#>E&)F)gQGVshox%h$5~y%?^(eQ} zJ-P{4?Nw7Mx6-p#o>h<#fI*y4rK;;R=@-uBPp0oOXRAOc{CgFQSyh$l6R9-nnUNH6 z<)=JYJ%8)<@##6?k`yr{4 zQl4ysC`>o_OjSYY6U#e*c`{I5RrHM#L1Mew#RjWuBLAiOt`a0QX+moW-UNJTzleII zh)q~XKrOtrCY|d>f1h8Md=4TN^%j*r8|>VX-p-$BRxQa@-}2b5HEM--L-i$ckV1fJ z=E=^jEnYrbLZq6gzWiXU^bu1`QOw3VMlYp^R3u4t>F`=8VjVk`TGX0@A!qIn=IuE? zH+|yC8qUy&R2O$8#90N&j^%X~vhEzU!m(^!Y7FqrTw&Q||NoQ@}BqPI^oleoN_OUs}3|)Z)d|Ro_ z%6HXAF{+@3Qb$M*ZH6fo07GDpE9M5!-NeM&IJHeNr~XUet=3#<-2pX)f~>U)Yr%?{ z?0ut@j34Or;EfyAE4z%`_e zsePzOmI>%sue}gypm80B@s4F8q;%~{ih4NQ`?+r7U4qm~>QyCSGG6SyUxoU(PbG?J zm_cCCi$T%BS%>c2fJp@gSB8`)O8$FNv~1R4QRX(3=hbyq%t-IBQXEZ`|IKDt6p(iQ z9gRas-ve-ev^JKKz+6n0qbIVGQWUFR@>ynMTzgz%Vyjpd)pUT8z5!lfI}g(gEF9QB zZ20wGzw^XD`SCmd^uPGFOWUvfkKXDBuYFth`E1ee--ylGnz7OwViU-gnbvadvs)(I z5jMGToS7DrS%#Z&GDl+8z~B~kjOB&f!?j-R4aAOfG#v(~#_GW;wAUXl|$X<}_>gif?|4ea-Jb zN}HBu%`xqH=4xd?&uKGT-)=Fl*V&(Y89BR8%NBidcW)VRYXtoY-%~^~Yluj5b8A|- z(qg5fnUlw)K$&L(%=!nI>!L(iMBE<0Qib=**(#g?%pzOGT^`yOE?x8)3G%y zBQbg8ip&@GjD>YaOh;&R=QqP-W|4sl0uWucn~OxIc{VfK0JtPrY>L1=o6s=ha$1_X zZ2;^$yKgN68xQjiOm5jMERk5cPN{NGi6*Q_?^u6aBXj49R%V!$E2V+3j>5Jju!T-Q zHrAsj1>^-GF92+U-%s62>&Re{4Pfy>EDB{&#=#v(pd!+q>WROCP=a${+bXm;Tgy-h1sI?(Z+r`xa+g zo}&P#WGFzXzn^WHoCUA8EfF6*W#X&eTDAkKm>cJt7^*1QZRIk+>~b+uoyiw#QiSc! zjb6D&Ek5O(TdAU$k21MuQ;b+rqdIa1^CM1r(Vu5xPMYNw7%oUpt?o|Cy(Akwm}s%L zJs`^xWme8JgFZ$)i)Ii&V8KO%G}8$tDDSjXG1XNl$`~%OgVrcvr;=_yPqwKTPn}xD z?g?U+Z$ptj%#Yd(HMU8q2A(gh{h3Trrd;oZEfOY7(}M(1^(C7pd#jP0GhUx+Wp^Z^ z#7WGwz~~Dvvaq}#tXNqUYr_;c3I6bz)M829xz>fq51cFXNMevhhTFKu1Q#Gp4(ptk zvwf{mu-Ge7$5iw1dUyF#GiRPt&k4JNImaQc+>S{JD$D4enuws>Hd%dCyFg8{=nnYI zYLr=h6PRSmLn}9xl0$66(~3?Q~#J{!}7Y7g@dA|NMNy*CLP_ z_kWE%52+AB|39S^NW~K23edz?-Gh%e$e%mSQH8>=9N5)oZt{7{0&Wsed?1-udMPMJ z)TitItD)Als7fyafpk?r~~CM%6H57=d)j zV=QC}2Uuw1SJd)C$LR!Tn6=?lpePVCV38dxRHTgh#&U^W@MQ7IFERD#l*D560UL|) z6xEgyqu?vU2jTa8)LD!jgQuYmuaxwN((qIvoH{5+Avtz?Vra4rC?Q-9Gn!NpyYn^> zw8}+%PO2`%fd8EVuc-)Nan0)6B@NO2Sn^$|m@OApN~FunfcLL;4+}^3K6=XeE`)Sz z5mGv)aUZ6Zge-oO$TLme6qLQ5BLEk&Zpogwsu4>JU}>04j`@-sF&lQd`|bdbVW5HnUnF<(7|yp; zK|m?CK(mlnM4^w)!!hfmN~$zE*jh4BXMJCS@1%<5c5Z!e?eKtV4%qNaVD(t?I@kKB z!&(cH@t{>O2BIhD&=#nl$b0B5axP% zKJ%U{(73)=z#QCUa;OENcjBp*fZQbo{QpwcIFa*~iM>6?t?OI-gMa3*6=H+AanRe`KrkL_B1z}*MZC}JnotA?E{`U-!`P(Nk`b4kslT? zn;LvM!91qDO!~9`nJ_2hGM&hag`>>n>w&XV8 ze&F%NAaL#=Nkh(v+_?D+Lq;UrZIh4#56c#pO3zegZ4|A09g4n%9;84qr+<4t!zi|w6P%uZec+G)U(+d9GQ zfQN~~IS0>MGZMNMG_VQ-w%wLj_v67!?gz_Ex3K*cu%0b9+q8KG*7uR?7Iy6*aq$WG z{5bIPt4sUHvzxg0q2IL2Z@AR^@|xS}a|1%DSjOp2JlkvvAYm%14BIfoCb#G@`O4<* zVd=}m$6nLE?FXKSul(S%oA3Ycp11G+N4NgRH~rMTzwrCs|Iqv2_~zqJ?JpABS&!F4 zg+GagN6pkB=FIBS#`Mg2X2 zs8msk#m^k)k13H&bUrh8bg_GtXQ{22=-<+mzu+ zePF@s3y_I#ndlm6-IPxOzqOD~rpix#o(Q?h_acXaqQv#B z^7fx0<$DBw1xZgkci!`>tqKS|Bh&LqA%kN2r zIwLLMHHxtECkBiP+-!$vRJRoKYyr=<%m285n9mg(mjF#ORWzqGV`e+>Cjt_&Ks%Vv zruyrp3<%Ua&f$b#zftYcHEp1ZaSyekSQm-AqwX^`!J+CsQ>!sd>x7wB_JGOQk6cyC z3xVsqz%xD-P1{KNh#*oRPfG8m!oTVp#V3w;&aq|&3#8BRc8;u*gARF^-TtcgJy`mY zBL_*``aV8EwUs(Dx=2_*_s$e|OR-Sn&_U&M0RdAXmau?Fqs*%TnKQD>BqSi&6s1@p zXs{d&GYnDQNDfr9XbgFK$!`SZh?!!bDF#h4VxsY|>_mm#Xd;M&wFPIw8ivx2$ZOqLvA7s0d94c~(+oyk5-0|! zos7GZk1k-wvZmho2*ijPbEyoh%C2e@_FbYPV4`QxBrjutL)tNXPHAFlxrs81A0vRl zm`@c<0RW{n2!JnOs@-;B1+gg_&}OG?fdO$S&DH z@ne_pX{EK~I7dv5?17%9#Lv_g)b#h6l&-;KOJ_Zqm?ZntK){S@6$ZWL#-2wb3NeF$ zp9nU=F6jvvGeQT0*XK)tpa8vv%(R@6&Q<}~QoWmwNr4|W(mfO(Faub59}1m|%OyVW z)1UkAHmCiOByopav1F~z(|*fuAhysuW6GSPhNdwb~H)49F)@~J)hx!bv2 zhd=o6F&=;Np?u}lTlU;@chP)}$&k^~+7=c}5V-3zW4SUvJw<-><9F>%U%O{t_m%tj zpMU5ikB?vr1D4M4TgJWy4o85))@$I(wI$y1_B~v>G@);SsWrG~hH;c%L|F8W-XsrJ z0@EzaY|6#d%o_qNJafY4Yy)f(t)&62H~Ep;!Yy_9A^>Y02~RV#Y?+wM7SYf>EyOp& zGu6nheD!K!3kA4=wJ;(e!?4-lb?qYlE7Vf`t z7n>U=es*sgo6p_z`!~0kPl5Hlz~&yXK4Hz0TjXI7Fj*{t{XJl@0%8Fy58=~Q&kM(4 z?IK_Y6MRl=RtD_3S(_}|GW_n^+rFb6A7SB+zIDW8=Gy>PJ(lg3`^wY?IGMZ(DDRKwAK9iHr@bJGZG%=&@P0X|JIjtl<7& zqCIW4cx__ut$;n<6K|X%9uD~AZk}oT=>z0Ss%TZ4t5Q&9Y&dfYyO&Hj9>t6F9aO{d&ax&$vYgVhtd$xOjnM zENtr;5iu>?yRq8q0r(91$R(opj`SLoWa&=n>3WOBa*MVX{b1$o;&JBvQ{XVtdPmNk zIq7Dd-7K3M(pF|3nV)|K9>=S6yr-dmKlI*75?Y=k#TLfQJf#;n&chG^{+;M_3I%Ec4BO`tWDcW;iaq{$ z0kgf%zg}$#Wk^W*Fy-2b+^TIfxmqfBp;|Pks#LMS7K91egJ;ONHx(Z`&kKMK3!cf6 zcQ7#X{O0PT(P+WlUGcvP_XvV0B&e8^l<8Pz0y8ixmng5|1e0}W&QE0Jai#EVLv=_0 zNhR+Pgr-*9PK1hiQ7Lz=lnT-dL{b%NhB;IaSE~c~&bLYMB22}`uDs>{$&jvyh>~Md z&C2|r`E#m;(NLZ^8C0*da71=7u1b^v6+2pQ%EL|8gFKsoNS7)ghEleq{6J!^JWlt= zVt)rRj64p^v0AXW=W7-_YXr8K;!Nj&8QxP7=45~kT>wg{OsWlnO0YIe8DXGLgryV{ zmA^6%g<5JnG<`xo9I#0RC+YVwx*R_8POpe)psT&W7}vNtu^reNb1y=uewkB+@-K^wTe=Gp!%)W0g7b+kR+-~ z6;u6=TQ4MY=>18N)rBZ>4RVs`o7124KB_{%@x>i0n z5Da}*^Qpuo`ea_G33T+5FL(~J+_c#^6+!hW4DgQZ4K>YxN{?2;7}Ws&UihI4ms6e3kvzb0&hbzX8D+H=b~#`gpugRTr4d)ug2?)5po|2mM{*3DuBiE-22hSR^X`v z-Z~dvdS^7vEYMu6eU5|5kfaTVK?jS}YIDd^1pu(@Vo8OX*XHWQFo^B%Ak-L6;?>hTGg0oGU?^(+*kwjWUz>*1IaT~@{ZcN*_Feuq1Dj5TuDetgmC2=fe z1Y}i4(5}_bq!Ft%?+K*jbXM;<`28b#W~m}17wyTUP(j{jzSmZJ2y8PdZwgmC3SD=J zK$WtAh?}JUNol9a^eQKAiU2|A$PVvR4t(~;di68Ea{rJ2k*}TXz5nr-_TIzu^d5Y< z$nWf?3Y$7w8b&sT>75P_o@N}&9VW0oZZOmtpU;M>Kuz!7GHiLffA`QsA6X#sdz;+Eh za2fdG*Y4xs$gw`lumy)grNie=vFG5!Scftz`o|V-A}H{(@TkObetpa&nnz zPE605na`GeG7?TEUt6R53tHN|4ZtF;o7p6125XtEp{)+k4i6A}tKO#Ob6XlE0Xo9t z#Bujk%=ez@>la_Po6o%JC!e_)x4&@WuY3}?cL#a422SrI=5ClGZFvA+HTY{D2lg)l z7p^!iK0NiKhZnj3z%;evLo6PAAY=KsEiN9X?H?KrAL&?KHnb-!ZDEPy#QeCKPl<#@ z^trXAg`1Vsb!$I#>Z*P%uaWl6^&U9TeohoX=1vL4C|QZ zr7h6H8x0M&mQz!lJw?Q3>$aX2abh{&u-tsQHT$Q?`5By^y$Y=-@v!hB^hFNqsZu(V@1<^(ntSoZ}^ zJoA>N%`m@bEIJlY)ZZqyKC{ymfyPm80NFuXbekr_><*m4yu0l$fQZcP){uQpY#I}5 zH)~5Bln!hI;QU^mh&G$q)C?U+SfnGm&F=2GIkR?n$*vs1PuGE~OUHhOMOwIMAva*N zLG#vNmWFweH_VYedagG%_mwqY=N7Y>Tgz>rhlMG_GwYt_;hCm9C%TEFHZ!{Cw_*ov zbMr3dlV|(t;m7>oonMdd{N6|GEg$&B_7DH(d&htO19yJrmws*ggMaDIKJW)G9xvm@ z^@e$F@YXR|A}1iboF5usGeLi=*1~k2-(tSXL&V)AjuWlOoy?!l^zrE-?~|x8!736E z{H{=bf>Mx$avTBC#&gBH>h+O;%M4Bh3sWIYFrno>ue;d0u6(d$+=1bT<3{W!Bj8g4 zov3Hc-A?6#nOz0cF7bx(9H}WqrnA^E3y>}q8H+@?b5w0YPTxH8cE*gc^X5@LmjKY6 z2FTD$iWtB~OM=zi#H5b=L8_9b=RcIWEc^u(j2`(=!IQ9&f07NRB89{rFE}dyMqv~z zum-W$6O+Jx_bMn=V4Ct{Fn1>BV+ffq&d zWb|61@75<xjM7$UZj3orQcsm=H}x^iL^cHG@gZkv5fc{bJvRm+Q;}-6K=?dlF}VPl z_GGE)PDa;58_yG%6&!03c&I?tZFcz&Bw1nlA+V^W@rvnP?E18$v)4K#1+R`D_dr z;kB{mLNap)bTwXk(|Uo4-3}@VQs9t-z#G5=u+2i~rrNkS= z30*T;9nMO^8WD9%pu4U=Q>?quB{dS>36eA;SW&X8bUCj|(&Xxab7Mdx5X1Y*QcvhG z^6W~A98);ez9tu00U6mK4{8j=-1KVA`F=f3CM+5|CFPS<{1e)o;k$|Kvt+f-ck41m zTJ0_H(?9ct_rK=}JNWMZ{7qZCc-i{;)LYv_`bzDYo>(t(bAQu5_3X_&+d5wS>|LCl z^?2;T{dP8=;q0X2=YR38W&dP+`MVyrqvI7$&+gm89WiB(EzB}oOn`@ZhULQD?%kVl z`X#B!dH%kZ2%+|pyRj5M1jMm%e70Ky|-3n1L&m1A6@OLO;#7Vc?@-aF8{l6}wR za%DJNhOJi3_E(5yz`U6)fS#6E-#6TSsl_X|^WF>3;`xs{UV5qL-5ap= z7P0SWixn^(!^FDUJqvpKAL3&SMYGvK%YYau^dpZfH=^u2ed z<2!v0VE>XZ*p6&%p3=9mAFq(i=pTh`{{wRUqu8E)rrYTY(|q&CVsrXqwz)66kp-Fs z`r-gKU0qEX*K&3IFsy%zVfEE!_Btf4TH0lpKY}e1lifGRZ2-3eIPt_C2iA0#Nkj9k z?42gYJFI1z)Q~a3ERv&6TH119$WybJh|on(bS9xZKDuR3ShtQAQ=~DUg*m#BSZd*I zZkd~KKR%ovf8x+T{oIMKPcqY*W%TSoqFD>eoR+}C!lpfo{e^ip%x%iFzFe5^1?D^O zc`subFihqiu&Ub(5g`d5D;yAg#AVY0Qc1cr+ z(j4=|T*$<@`y^Fn7gIJJlFD1K^ISCXQ^@b<&8y?BjtQmm<2XDbqX_55jHu>CDM~X-B8Xq-J0!A5Jmn-GUf~@%dUP7lyHj9O{gYoKysm zQ9+Gn3uvy9^1BvLe#H^Cl#KV1w4fQV&BSD4$DtWXVv7d|WHyK_O1O1@Ch2uHsVsE= z3sCVF$}f`nCuQ_OBg&GL2VhNY72Pp;AMCoD(;n0(Sk5p#%UC#U7Wk6Pzu3m*lB3(M z(Bl6a>Vj7J?~LJd;BH7`{b3ovr1zRM^+jUzzmw(F`41pE^IKSl4t^@8qoE0tzvqiNQt!lS75Ep%^YN;wwT1*U1rvNcn4!Tp@SjH9JOY zjeE>Qq;Y>brbZ>mXxDA7-{*U-DNqoetAb*jZ<+~AK&4d?Q~;ycaZgw`;=q%9&gd+^=EgIXp_=#hd??3Ou}foyynOCH5IhU0#q znRD?5`2LeCi^U!_XnHP0%E};)$eBPWnB4NRFY9}Nf8~8M@Fc~EvHJ?_lM+2 z)(KLT9<(+Jpve6iaA&%&KG+lpESDa!^tResp?a097E+vFaMiH25J}(@T-uJ91 zMj^-!adj|>h;wtT0b_Ck7kEb?CwxYWi3PnWiAtj78GL5^r&GGlz>8>x3^Q+$-hq!j zv-unU**9Lo(F2zae%XC{*25N4gPHZn$jRGsYiD;)b72d+cs$|s>=dUb8@qKo97FYmYpX_@dYE;MvhSMBDfZsZG}zJ-@Rao0Za4DyASV6WbTZGkx2gI_rY9(=Up zv9~YmU0-q~A9~%D#nEf7;NXF)XqO*H>|bu)H$a1T?5APX92?A-(Xh-JTUejW;s$Jf zzI&cgERkChZB7cqb8d1oa@zQUyL18Vp?Bgd|IC&6XK($`{MY~5$s>Q|2VVV|uX^{*fAz(}16kH^!xa2^4+5*`Dmc}vJz1krQ0I15 z{-HC;^(qMNrsTZXot0ul$N!QbhF1|6YA1{ac*rEo0q<-rQ(-qo$)WN$wk=F%=#uUd zSPuXbO5QwW!)!YpFOSfsBEzsy3!cIpbK#(3rKh8zBg|Rocd8y;k%0LhQ^GjsH&COH zJBSsAtKdUN#u8A`P{w9mKsYR6v($~rywBx@MH5A~8sRgubp{kN$ll- zFCkxoL{s?zxz{8FfFqIx@e6o?PXte_4W^Z|;Aa)~RsR$xLRGMtAv$Xw6hj^w0huHs z5@iNVrkXl86S*q?0x{01{3)bXER{l}4f#7#dsAzc>)Zyp*d$BuE(W;+W)l(pthx-y zWKKn3k0yV;@*!h(FO&r}r#@AwCAh!S0qY5G0(1ZpU$*1J$Z=WKp zP4$)Q_Z{#VJsKQsw6so0bf1_-8;LEr$UUho&0IOIvPkFkBN|n)5GYc~e&wfN9v|fg zVIqm)0%}A|xpc}^*h3^$BqlVZa?~2D3bU%$nZJYaVE`8*Ss|YdSfVEhCX($9?rc4u z0&17$-y@1p2Kk(})C+X-0$zAMHLVP0m?nd51x+NtV%c52!7_UoCJT~*m*mTcR#~AS zl6i0xSfPnC(L654inPd}NrWdxj}m`Z0ba&)(Dv2{A^y9mS4WIn!BH-^{#0)h3k9j& zZ3h$xwcu9El(dXYTqsDA;!ZT930=)eO-YV3k`nQd^d*M)pG$f+8q?_|uonTS%Q*l6 z002ouK~zR^BsZdl+FOjPl#q8V*vOQ;iN&+GdN|y%H`bi*DKmku&cIELI z@B26^1|LZ?0a5CUqbZW$RnzY!pGeB6$XgTO$2N^X0W*vt zW=+ye0Wqc+qflbdDFq!ONHjsW1Ju;|qx{Zysu2JtAd+m4-n7~=%D5$VaWgqO$&TiX zCs&IpUVP?;J$!ha%frLga*MzehVW<&ZhJ_$J^#W9?wzc$=MxqO>f7v(vzG&vE(E zg!NhGE3cgS8(w#e)&45h>y0;W=<110H?$t!^uCs>=Ffii7M^%wA8&cX3ZMMKCQnYH zO&5T}J;&SMx^GWCzQD!fB?8ShXC3!XXPaPrEG^wU&Ag!|b$AcU1(1P=2A?y$!86k` z(%mzY+bz1APst^NOlwHP28wG5}=vyEfrwN-^NbQ@F1IEc7_Lk*Z4MOr+SbF)U_g z$xBtNHmAp)V@tNQ^-d{Tni13S%p~3Y#^3Q;d(BV1WY2%5_D4_Hi&oPq2e zHFzRD+q5(+8ZxE}*lwE{nxV^-37ub|6NI9-X!NIPIa#zGp5DSb%%ih#WAR`x?+9~q zGc?Gx`_>(JTL2fI$_IY;L(}(u@rUMr_jjN5zxlNswJPKtLaJisUIbfMgYcKLKp;z`O{ghfjqs$dTiH*x`a%*#S;Q01awQ!A z0#m4?uq9-wgb4M!o6IM(K&G8vR3=A&qgod%QOE+@FnQR!aN2H&ibWlZ>nL)a`77`r79%0y6Jb7CnGUH1A=l;trF6qP4rIE_j3R3 zCc9B}%iNLqKa0pn+vV3>>`YrzZ5p*lZD=QzGAg4rtqai0Dj}f80GAgf5AH-{jgx6l-`I+M7fCu(0CXS0Tgp6cF?Sg71ZXG zTe^1_f(x05xum?ig3CdTfHl5YX6L>;Ai%$uLN&M#lO|@finIEDqq!Tv4QmJ?GANVZ z-`ZDJtez4pwx&`NO=wlV2AQY`)C24RSDZ~16TV;{3r62M)d*Au2g-~gphF2Z99?^j zD-6oQtb7rKpat}zjWH>d<`u&qa)8g6&~=B9q>5py7ZM1aqyp0QtT_&mh}@izoQZwm1p<`Bjj)qs zX-U}_d)@W<6=?LV8|bD?(7?xG$)dVUmvoP4n3JP*hTE#%FWg{BQyq)0pA$q$1yUxL zI@@w$i%2HHyjIdg)w{_Sm9ck>&%fJFF=GI-`8YvsygvbyRUjh)mqMmaD#tFFt9if4 z_iITupGF;q6tFTXZmmUunnbO&zvckU%OFP^OzSh1{1J#@Le{cch*EnNx-dXpf!=>N3vk9b| zw}822_CUIGPy`Iq)NuRO7B4<`A7A<94`%mQ`f6#@d){#st35|Xk6U+VyK^UTvN^NZ zM9*f8(#LQ!3o~u5=rMOo_|)d;uy9`i>6x%JGY?E=J)^bAz}7Hr`<#o(vmG|yzp%{Z zrB!do`%_*3e9;~AS@suR$(KI(sz3WnFWX0c`80m@qv4-_5x6}s+-)0=U4*^yY2ba| zxbioD_)A4_Z!3@a-)GM(8OzrC zCJmDrdq#VvFD%^C&F4s;a&dsn$FJQIP-Mr zIJ;}vmTuN78+YUefb;onP7t{;%Q=Vxr2E{_@7{~m6HnP6{Hw5^|Hr?MU;l-B`T19Y z2Ocszz7kmO@!*~&gS(ke=u4!xMYAbhNw@o3EVFf(+EIbm#9cK>}+mK2zLBQRdEvjKG_R$Tq)%i>H0(T{->d5qlFM9LTfO<-b5O3(8%^=`^7p9yHW#>Qi@EG1v%aUYd(Q4%A;qO0|EhYwJ^#Tp@8MC`T#asZ;-q3fpz}_5O4?r zR{n~{f*Yj}PD#>tUQdWTxBf!KJzJd9rjf_i8?U+o$U#oZl}oh{fi#ZMl>A-$xCmeV zuJ%$IL7QaWSjq$zA8h|gry9I6LPILQlL|Ew*-Eouqn3nC=)v|RwqxiG8^Og=eR7NF z`Dz8EyH2$nlPO4qHnxf*fSiU=X*H>{l{toDh;jg`4NTL?GPR~*^g>|D$kyG_a%(V` z5jt!DX>L;Gx+|WPLe>SYai3=8eE^T+Sx5#A!&Cw%m=qg^BY%vZ=2{#q_&X_JT{K@p z77C-!G&$HOxKJGdn@P5((B-ZN-vRjtbPTDnVpT>-g|iq6CE6^`sff^xMwxJQv716{ zQU#$<>^KJ|q~t}C6X?Ll`mp#eK0yVDT2_T+7=&RI!KHTLc*D9dQym}dHQ|Xyy4bdBCg38q#fr;b) z3M<_i_;GHqen~+oK(js+TL7*VM{-DJugPMW*438vy-FGop%7@@SW3e(RSp*Z;b0k-T$A;AgH&OY5v zaL^k2)S^{?pPrv_ma{dkUn}V!I;T76uDO48U?K?Gc=;4y$SPUV=SYfDJ&XVWoQ`@= zwePim)!R3KNhEAC^uEPHpGZtg43Cq2Fzea3n|A$r;M33Ew2K$p^08^Z9~|r((!Fn^ z_0zjR-{#>HkKoef1+s6^Jm%BcTIB3=G_<}=v}Im6nA&r<&+Pj3vwZxK16xdP+clqR zGqY$7+2^r7(SY@Ac;<6=@%Uqx?03HJvB~!g&wT0z?%WG(*R%I+qD=tWlr--LY#FK2 z-#Pvj*mkq2nP&zpGCAUk!qkpHZVWa>v*=jtE&GK_hko$T9+sDuW=jKRv$%VIy73#I z&X4`{bNMqrx5h7j82+gnu={}W`-O)vNA@iaV3b!a!X-Mo!jY6 z$wV4r!2^1R*`#ZRsT2c%mPXq#gD1ysbpy6=oEbgBw?N;6wN1L8Wnka9;~s71PeecZ z?XaUiXUDH|T>9;wnJ|Cc;?|Gh^a~&KlTUumKl5*I;|u?4ohP@SN$>yMjvq6>@`imp z^i_}H@ZImT#UpP)=3BGd7iS=+=J(*Zj)=Qvd8669flZMXJz#S~!f5Eage~WWElW#p zoM@Pxc%;9$H4i*nS9$)oeU9)$7;#2maANf2!{Hu5I%I5?7m*K}39Q((Xt5w?m zf%!a7cJ<0B!dA$(U4$Q_HH2GQ_D(A@92T-hSyB(do?d^);{_0enajz79=f8#Abm*4k2udM#$_dNTF|Lq^R{5RkK z4Ojl+-Ft?!Ey*B`_hk+SOZoip44Xko>NsPJEE|fLwSn2w`^0Fxl{%n$<|xuw8UnNO zKZ2`NxU^1Vt=1g#9B5kcB>I_WI(Ggrsbrbw8WaC;PJh|XYG|u-mvglQJ{Z3rE>9?e z&cjKsih5K214B(TqA_06xu*Q18?u@5D5?ZQXQm7H6`*jYB93&IeVii zoi*_U2`I;c@qC>}(ZrqJt5C{Pi7Jm!;R+EE#n6_yBOTLK5{`u15jG1XNg5LB%&iwr z#ioz^7^XtXVkiJb;||cf{^ut3hHfDAGm_aI<#Jv?P^vc`kf)T2@-gA4`rykyK{@|< z$9cYEy#tL$<^%!bb3h6AWwNMCuIHON^GktT3Iv4GA7g#cj0I{Yi(XV+B=QHQ{eq5C zX{K>~Q4P%&&n|K_TcUSLxcQ_CVCg{mkbAR`Wd7S+^;8iU%7;z$TPmk<734@mIp}kf zvX)7Ast8PkipFcZzAIt$Y6~&V87%$hY-54Tn#|9|J?-C=iY7eS7G;WU z$`Gbnxb6m@p+uQ>e^k=&u+e|u8aK8g%2E+A!mV4Cj=9UdB!x8Tni z7=q>^0J@lG7t8GKoUfzAJS%uw(%``jG4pymRQ$t%wq-zVhMaTsY^%f|=2W{wY&B7o zt{_(W0Fyxld)=Z_9^XC2_va`W`0uWw(K2cBFwfdVl>67gTI_ZC4J3#HmZ6{_(Y)z9 zwMBZ2z~$=C&)_1VDT^di2Eh)d155p5C5urniVM)l0*|Z2Hol)~1%V1`C^3MfY4vA? zB=S&ToI_`jttqj)G8wy^)`h}2#Q18;guaR!wOTZovt}JGDdaP|ieLp6JuEW(pp&eZ zfM49a)+)iHT|(1Kalv@VYwdw-MCMZa!*$5Qt8IbLKC*M|Hi8+ZK*jr$93MMSp`2d1 z|DDf5Nrwr%C<7j=;#hcyMZG^d*A_66=r!30Xoj{;^oa+2jb8#1$d2X>*+V^tMALb& zIQ93Ww8-OQ0k7p(U7@bg>3OH4)=# z=i|y90tY8&9nU>`t4+&i<_8{oba~+c&u)%5 zJH_VYzFm6Fqxs}(uK7zZelAywHnk~{eF4M!^w#IB`=y3O@SKiMOFTJ$J-8C-uE@v{Lwc(iTx+907pld7Y~>ro1fl9+_;Ur^L%da z-?z=ZHDY}h2=`nV7I0vZaGTK3U`sYk_sHhnU}p4NHzB6m8E*82n=CCG4VoGpvjetC zL~G$09~;VP zahO{ZWai{_#8jdgFzEzhgw4VJu#BU%tTHDEy;a{M|JRYuD9kWaNl+uWke+F-?S1ad zS8~p<*?GNbF4r8z*c{gZYzQ3Z?2Ep_?5lKN8*E|O-jR9by|#GZ|A4D+ zKf?px_DtCJS1fM)rk#HJllICleHJhL#65iU$3Kzlvya>M0^+Ujfj{}~Yj)|&p9UWL z-LS(q!TeE#KMBYENL+Wv{f4-M+}wg~PuT*JYgqQcA|0t=Ou;n(xTObjyT#_tJzq|S z3vYNDU;f%B@Xi-*;xoVcx%~Jqy<)d+ZhIzL-x%iD+Wpgjx5VDT(wc2@v0B7QMq8wz z6D5R!ge2E}#3iAF|)}onMiAZ+eSieGhT_Hr6+9Beq-E zOz)(y$jHQuNQ;g6omUg{#<#~0<>mK&L;ly__e<-O|I4ShfBOe-{~v$$7f!$K&;5zV z-nW0j*LDWXp)p(@Fl&T~RKQQ5@t^lZ7vSm2zsOdaKzu{7f|Gh@GpRSpUZeF0xVz}i z)X&nGgj-UM@2$}fNeS#wX}Zo^oxjwj>wIvYyb&Bvnmt%(Y22Jut|e(K6K837Iy03N zS>g@MAB__C7%j7aTgdD2KyFh*Yz0z)1t02jMN-99`ASly$8$*6=WXO) zRIKf!>qz5>&{PWrLjC?sz&wGeQ4>`0t%S+0IPRC%!~Qs#J8xgw#&zDmVapLq3ovNRUj?|-=qH7~mZ%LVSlw2jO3;oGmU{x?4*joZI2Yl-2y$URCsstH9y*TJVNy*TAvCcvC zsoD=h5nY{C$ZoV%3IHi{JsoMaG2mpx4Gd1H@pOhzfUe03a=Vwz-T+-6O)Y9c^U3Ny z06w3&-VbHwsUR5{ut`W!mDU0x>6odF+of^}?YMpmLzr;beww2Ygc70hq`YBI&ySwn$E< z5W-kJ@jSGsuCT0xfXojW{f@{9t#xFkM#WSzP$NQleMJ-i4wJl$NrJ8~_|Ov=EEA0r z8Q2LxNseg(1w}ZzQ|{8*E-1qpmk=Cvh0Yd?P_mdxVly2!DM2W9LMR21*@o8U0hH8; zuBmDzo?9@KJc|iubzakTkGrLTrhlyxmnng4*jvs3@5%o4kH7G-cfGzn_27|XZOg^p zKKj$IxzHYa-BWh(z(vg4$g^9w^We&%$99Xq|Ght*n{D7=&+TNMapQWR&y4-Ym)I3| z_ay!8Uwjo8E-!H7`Wk)CSZ})bNNl&+Vd)lb=0j!Ft)VTNA>i4gv!)|x3`Zus+0+sZ z9@8GZ9TyB7IZc+9W^v z%K2J4rcShAO74Wi#xZ#d5UpAYd6*pV4(xei1;b>CDGZBbYk^f-Zixw6nfgqwYVN4T zsQ(#BtuyL-WX@(*?y05sE4V;Yu!o#*WyUQbwavVUvkX0-H2!EwOQ69fnf_ zw!$zXf&HL|!jUD8#jh@5*aA39%a;NtKibxx`5Bzt_*j1SADr38er=1FUI7-%hNs_> z{VngmW{-W#TO60()!W_^jdD~6`rWjCx91#_#TK!?9d2u|K=HPytu~C{n{p%iT+>xy?0Lsulwpe`ITQp z^b-S1Y7*9IF{e*cv&b3lOD5sQzRtMt=y7gNPujP9%?I&@t1Z6icP;$AUwaMLzT|1( z;K5wqI?1zJ_ucy%-dgxHc~xv2xnY6H+uoH2vhQDvcI!Xj2mkUf+h6&|o4k4nH~*)< ze(l}+*DihLg)emUt)owgd86~%_)5nSoGbwQ3;>~)rlKrT#=JeX$PsYOVCPD@l{aM-x3y!G*fa3B%;@-E(VcEz-IQOEl_XQI zJj)Z&MT%tI@2(iN79;5|L1CG;^R0Jvy ztgkV8XB6>7GHplH7>amOlv01GVJC6#L93VOrjdD^sz4k<>&ZQg!vNX*;Ayb`=l6ZT zkXgNWB(@2nv89c-pb;R$9D2|_5y|8|JP{Epj)~Ny3OyFK3c5ntda9_iP;nq;ScOWj zg4_&KCT7WlYiHJ|!qMMiEQVbtL!}j=1EIVL2Ez)6Ao=sGYgD?UnIe9i-4 zNM14&u=-dOp%XGQB%_i1q`qJGp6N0nq$r89EGS?~eiSV1dKu7Zlh-xyzm0wMp_92D zm*q~<1{L@Y%3-p4>T{rx{C6N`y_-?`C@&W37%J|d(2>%sq&|aVXOi-pB#KO>f(}*{ z`7GS~cqa)d4T>ohV3U3h+0%wLNG&2(A32U>P_02pT9fq0$}qxq2XuW04^#g8I3Ym< z*9#ES8m-VbK%ON^QVHB(V#qEdtpDcGb1O)rVWE2_n%76+FlU zYghbcfo|gfb1hyg)LrH<1tdsF#Xyk7%6a+QjX20{M>9$~tMb698O^31C>oN0fEso- zWwocs)bK>1kqagFHI1Q}_IKmSW?r8U9g;dABr~k`k_H9C@&|FfSD27kC3a6|vd_TZdhr&+jdxDS+cE*@Gw`qa~&ePAM~%RlM#AW}IWZzy>hG z;UVxNKlaK$xWC!{k#By_g|kGi&LVMne_?NU$CJ4B)Z>wnxOe?k+rNB}hmSmH|KfZ9 zzxK>Ccd%NuoF?SWTOD`qr^Rg8zW}>@yol>Jw*H1UT*%kF<_f;>()~PJ&%T}mIS2Zj z5j{BQyOL&CmEQdJI|PC&D`Cwnu2Q7Of+vfE!?Ncrn@%UFf(iRV21`hVA z(>z;Ro}R|`h39PZ%AJ@`&#Z3(5k`TOr+I5c61}Cl)4at-DwRqf6A}nXfCNHoq*EFJ zMFCM7FW4b^vB4{NQNizGhhDFMA2tYrg5XcoPrO$_P^1Y&0wIAkq$6#mtG-UN_kN!> z$NgiB`MifO{EAf0+53H;X05r#9COSuGb+@NjS&&*d1u6KfQ%WLnTr-&ERoEGfeh?+ zl7;OSmExA&#E4)nTKSoUToPC&^C%-Us*YS3u?to52LfY?e%e7Rbw}Vdbjl6{j;E6Q z_76DL;=@t@`P5Dxp$M^bvOfKJQ#G{_Ispb#li~$cXdSSEg3W?vAXRS_6mR(@2N)Gm z+lixM%uK`{b~-`N(jhKFDZ@no7XU7@aK^+%=mfioz{LujCvYCn&@^jriiIO2?k(Wn zn79*xOQ{s&4H$S^;RC;xkNwKeu5bR)4~^IV^1g5bW88sy>5Guh{R8*cogepd#4}%7 z7%MS)5w-3o=YGLB;kbGdi%2urTB5Gw#9l z4}35_{*!+h&%F;kxxJu+ZZ9v#nPPZ>cAg0{>3xzhU zJrs<>_)aTOhgWQc9va=roDKdiy|RKya2pP{l2hi)xdHAdonI`v+DB9gkWW95x1eT{wvGI&BiI#(Ys8yNiXWzxU#($kK zZiQ-KE0l0kh**QdR^8Ew^Pvy|cCO@i-~`uYWZ|1=<$?%;*@^Nd7;9q0fVjq1aO_EA zw4xM9k7f2fm)3D()JWmGM%X?1Ve=HCfC*bp*@VvayMAYCFGD||CJpp#jmM)em{x9R z#TeZHO$jyW5F0%JnMSK+wA&_{P6qV6h6$IpP=nPYWJ=oZ=L!31NY&aJO&4r$0iveb zo&Vral^@2s6(%my340glbl(xi$lpylYDz66;9ks(fy9Fk64Du3%&m^;gJ=(=5dP>on6RMe#z{6 z^^xs@M}Sz^J^f}Ls1Pwjp2k_YGiK={|RChX~NjZ)jviLXr^b&1HyKV9K_r zSxKVrSy7YN3MVE>1eu88KC5zIhr`51PXYaseVA>@8ny7~15vz$9?tadDQ7w`tZn=! z#*g5tfWd7M^57Q$RZrn#C`#9GV2f{gzp3Q2#~VtWVb{*?A%W#3Y;pkTdFzOjShWtD zVQT?#SRU|;cXHd$M7{fhos)90Ek6?(AzFIodVE@@7aODQ#fQQOOUltnw~Af_+lO*n zzu70E-)*8Sadg15`hb=-Mknj8R3P2+R3a-B?CdE8F?f+F#Yy&NHz^bJfvrBDh^`0O zuqL1izV|2l_XjqTE&9IQmN7yy{m~T&2HM^>(7lY#aOeo_BWK%>imA7d4%{jgqm7Ds z?U-RMaNAqkx`h6>42zV2cSw(tKv+*wped||fC>vrMb<=lF0~<<1EH%nHc=GG<=Lr? z49bDplE|Xv{tf5=nUfB$2Bt{`w+Im$8Je*XJ;DYi9~x-5#b7S9(WllA94FZoCEKDM z$P+!={XX&BXPx}?PyF1)S3UaV%%|OVROi?Bar5RHPki|Lyyt1>iQTcZROfTV(QaP3 ze3J9xah#EHdXjPJ6!ZE`U{B`$3{_W(=X+v*0bIFy8b^$U= z>dE*ouU_%?hk=RYv#&6}=;b?n#_zs!zWnna$ji^UXJEI)++P%)IOomRy(i8ey;=L~ zdt9s+;98lxAYx=JiO5~#Qia?>?!}25DWAHcmbRJ285~?wq&thTAW#xK1ZT{n1#%k; zg?kanQ9arONKRyApr%2h1{wBj&Z<2#7fOvQwO3;13`uhmD^qR!vw$iT26CxjnO;~D zn5@W1?tRRUHDZFQws)eQN*&e#ERxCLYyd~0+T}$CmdR~+#va(ZS9jJQ?;Pw##kNhC zjMx=9(-?116O98bO7d@+9s>wFRxyfEp*{dno=~KbIk)ydJHo4^RRzQXI(1T6WfR+` z8xD0!B_#N5x;oPz9ik!6DCNV=NIXXHeLyTVuv<_$D=#5&loJmG?|&w*eE#o^SA6~% zKk>%9#{NA&GvEF1Ux%Onch~V_U;81P<$ucOJ^TO0C;Xmce#Gy4R^I;6FR5|qnV3g+ z#=zZ)^K!f6r%s5TEr2o}O1e_M>ZDy`4ATeq+p-HI|W(LW@U3hJW+PYnW$gN`fI=N?C*Tmr{4Fi=gYtoH>MOST+w;%^tq(srXjTLBhvKF zpl6`#;MtU;?yA~G-6g^}M-t$LuFkU5IReOp%}TN8!<#M)I6fQRSy2Wjt~hua_|KOr z8_;(3U%D2dk#st6zz$lZO4j6qQyc%)iFc;Ye?a)5lj-7?5Ny-1{7eEOPK5tdI76l# z&11U`0hQPckp~WEKmBu2jju$iujxOduOobhH&J5TR2;%xmf-8XbPqAyR+>N@zF)A8 z7}LcdCy34eh6$S|I( zq|_J;;n0TckeOj8|0*VGYJ^7orPYsCO?bVvd0=I3MWI1`Uav<|&v+Pzq&mD*@URjA zqcFo7CeWJ|Uz9 z?6&G9hN`I4K^N{ znae?kNk1(_x_768U2i5W^nwz@HT2Tg2nQE9xlVye2bgK?2BX<&UuS3|myOGsu?6E` zu;^#k6faf!R}WFwWm<(0`rPt7$W|0&_TQ&lJ5r`=Zq6>d-IoJG0qRErw}eo+edxZ5 z4)Sbf0vd|wHHJ2*nOh=_g4sog^C{q9yaD!Tp}tttPNq0(w4S z-~cC)%5%*aC)~2o>ppLJ&*qrTc1)&{Kr3lPqWfU$_el6VxFwfiGZ5ioeZB&z{=3I~ zG?UkdU-!E$gYJz>GrZpZ&HTpUS?K9l(QMnCKD?p>9>Q$3gH5`+0>9ggrY^L;Z|MPL zA2!gs)A&kk5-YKyGKY~}T2Dt%wWU%{tUdBZ=8ih#MM|c^z}W?`68ZSGmDg^du3SCIE4M8)L04R6)S3}ghqp--f|*P~bnV81tQm9? zB$;D`7r$80laqya-M--ddj?N0ElXXj_0G55;E(*;&HRtAzF6M%=){8L3-1K}%;z8H zXZ@bLwT6pq8LM6 zuMtR2*1nXljsQFVh*?pASSEuJ6OlR1+zoA*&=?Ihnxyj2ix{=kOhzChitOMwfgDIi zQA2qNG9o6iriQmi2nQAiVpcMM+85W1;1b9sHAH*Lx&w=5RWT}LLfBev^3Ot$6eoURA&TqwmR| z{WlZ;=DXikcVGR@eEusIe##$x8t#AP%L{irBXE4bYE(BKo8#KUqi$X##+mCe8OzZQ zSavn{M-}^vO(4AEOM4qVccwAstDi~X}rwR%8ElJ@`MLHShAgim{VA)lYE_@!Z*w4meHa4 z@G*^VV5O!oY#SFxz+;D%M8*Q--YHqpCVYU@DFd<4{$hn#hKO&UtJC;wx}QC8NIGi3 zqY_0_uv-ZUwVFk14wT}66p0JtH;9lBE)pq24+1^ZtB72n!l3a-W6UtF+MXZ6M?yLd z2uG?P9f&Ms0+U=1lSmhK0PIoXAq-OX6L#Q5HkL5d^a7s zyM-1Zk2INnYHfkN{$YG9{BJ7AB-5hY1TbE7F|P5y)f!r-jsGcJKDr*B+h?R(AK1w~ zlv{)eA(d@_HhxT#DB+wSy*^`e{_b~Z!mV2?B1JoQMDOG}Xf+X3Xm%gI2$BZ8QVz^g zai<(x%EU^i#S#7e!pAFz@Mq&|pJSB`Vx!p@ztdZ<-0Y*RJ}wSbq8*t|vYA;hLQz_34=NhkG5157Mk<<ZKQiKH~wj|b;vtHcr;ta4RFltLu+{7S8 z-HGkScsaceYK|q*@BP3C*K}eQO4iy*w4BuR;n_OqX(_$}uH&{@Ddw;-M?k~1`yHxq zhOIgdN%);0BjzD_2h7OU7N}+TVrh?)LzKY^p@Sa{m4!C+{t7V_l)?dDqww@jH5b;c z2h~iX_d@ttZ0jI4LPh(wH;_y^J1Azia!3kqOUj)vmsR`;hPUCB2Y0>WvM%~|w*)jFeo{cOWQ5K%)1La9Ql zDnq|VU1tIUZ+)n?KSmP4p%^eHy4@!u59Ur~W1w<8sy?1|fak{gT2K~+rjItKV>Qs3 zS=M!qa;|Bx2_J_7Jl6yq1mDqE9Sz)3POl9Q|?=R|qH_o%W! zbwTD#aB$8UgP|gM6lyKTQ2y`i( z*HtVI*bqw(?;Hg7J^{-x;3Ook9|~C8327q)EXF%E+K-@18G^?;$QX){;({|ks*5KA z!OBQjAW7qKmqFk{Umz1b_$wSqFU#X-Ye-P>3+jU5y`bHTwUuO86a$6qq~UKRou zi5-~p0$?)c6H)t%%KE^POMv+-;I>!b^5?!XKIL=I`8(G)4mlh^Cd z{lRx-9=|KT@Y4~$^J|`k2R{2nz?BySE;^((FEWmHGsc44P0Tqt zFi@kAL(5T>p`FG#ulpDktSDQ;hbt ziaYNFuUtVq^eFg!KX4YWdDUy@7k}kL5sshxj37^HzUS>R_xp@EVGN>XPVjo{ zpI9P~PI1=@o{#_Q`!4ezebbxg5B}tQ;cMUWp0|A0Uwg*$p3LjDzwYEBCGX8}pLh}z z6B-kpGIr$vaw>@nY-UE3vJ#)+C3ge8SV2VjLH7)ZT+V!(fYhJk%Ub-BAu^akO-booPbpe zS&1I)%;EOxxFz9c-m+eV>qH7zolvo1*MOB2p(1KBwn}{Uy-@ET!+RgY#g{Un(CGyc zCfu^uF#yEG)>09HsDZ{JI=d#e$s#CV4%Z`not@uFJ?OpCD3IGGufXw_q1wYU?)x0Q7uVM`5B9kOE_9ky9J3 zcU?=|kwli*6ytdM^}rwg1W4AkSpx}`@7@cVPJ)}QMLr7dYcg-zi>&`Au4O%lGr zN@_#&$ex5-It)cs)g0UN%PNOhC)-=Em=Em|c_a51U0+X{Xi0jR`5P2wWNch4#P*m0 zb6UXOLTnMe8BDhn+*(DBTi%t$EZfl&t!{Au+So-69y%nAv3qgHIW;Xj+ z<4^}L7Fv;kjlI|B+n^2*KrpN6Q&b7X1k^e+#4tPg??APf&7YyccUzW8edf-|Ga;E< zR}=y=CX8BDK`oh+1aWAaakZuix`-xm4D}GppKcC({5U6FUu|10We){I=g8YQ?7ZL|Tm!-M8;4 z78?PQ+?-W|K#ah`+Eh#eaaw;Pl|C()0-PxlAQ4!`g@7~zPrYr2|MIi%{r1@$!#(N}W0 zvc{87?D4_(tbG56&*S`tCZC^PMxCDQ^5p7C?2Z!0OV-$dW8}!p%4JkW44SEpOeU); z)r=96W~iMGk(sCw0Ts=o!b5W-*JKPN!lQdd49bT`x5fcR4&*v3Ge<=cnH3R(ws=mY zLsJaDWg%F2_-B{EQ2=A=zmdd_z>a~Xh-E0@Kkif@h$RwB0m;c- zCI&-l0Th-Lq}G1N*D5PH`TTX~VM1m+-DiQTX_O5C%J0D(1u zed(X`A((oBz)b>YO6YM8U@c`~d-!wxIY`tV2u{=*%uLoqq9(8>nTfhcqSho6XZx%a zNXT&np4^#hT*ko31U{5_|No3%{h{B$PksM~>oso!F7J?^^C{q`fBiFg|7U!B@bU}A zV9e{pV~+zjZUpw{B#UGv_p4eLNn)08bJZ*cgX_S>8j|*+I4i2C4k)`TOZ>mI?c&^B zJ;~hzC-J|3@qd}W{>BwA`ACep2QF4^g`I{o*0r7RH0Ko}_N{O{t++W2AW`btJr9tMmJzn}tp*x!hnea28bN?1+N zts^r7JC-MmVJm`c&o*6%3a{Dl^KS?i#;5L;Z&|<81X3p?mA??V)w-~KpYgR-76|yA zc78RKm*fE-i`eozO!;A<0yX@*<;MqraLec-uMc7B+^YQm4tWvWz!DoR0;cd=HG_pt zKo8Hcji$}g3V#k?AM|`wtTB1vsy3nf-|#1;wCT?`0JCR@t}(3=;i6`@iGc;v)%CEZ zQMgt(F>Da+KlgX|K?6;Eb@6x{_FN#;t7Ub3m6S0_t2H2YL9Mg8AB~~zYuB@oi@!*= z?3VEDSu20i*q&Av=;Vb9RxlX`xHuVB!U!yTCXf=3@B&+Wc@72&Tmhm6C0z|k@M99I ztFqC+*K(+K-0zzmUObguiB}Rs(1sC?E}=u9H*-rPdcnxpFV%C^6;pS|F|^pD0|mDK zLd#Fk6?pW6h%Ip~vnHSxL3zZ8U#qK!mJTPj!>hlc%h|~eFjOViJxm>!#Bl{;>eS@M zKKq54mTm{t0-Bx!N6X$F(Vgn)Ke;WIu&Q8_r~`;dwLv&>MYU_bO$uF|b~msRPqVM+ zchMO#(Zt*)tJ*HZstt4xUAn3bkrY|psGBr;i)rW{I{1+8ewlC(V;7)6G0iRAf)dFf z+yX#Ly`ZWr>y~%q#Gk$75|k~h*00}qS;^3BvQ@R)N1?0x@ck`fn8OLWOlJRIxA@QYB)Z5|1l2gB_K?Y91e=^1hJhi&LtVP*?{Q%MhxPTt8d!(idL({#U>8>@UCj;XHZZDf{)d ztC#uVhl(G3@R7Lh+4sjdxr8x}qpsh`(|hlU`|ms9``&w2w_gS39yyMQ)03$4HOBs; zfVFVt%B6bbgV%G6f!#8Bp_xFbep_!x$K06=PY=uWVn&X@9k(xh=2MPv-(49O=YiM$ z#&!IspSvFa^IeGZ3*g?%#FxA*@!6kv1mRX=GZA$l%H6#9 zSqjw9D?L$>&>I|cDIqhq8cqc>Gdw@8GUWwOEV>2MODOna1gTcAmPo03gIF39%$*=i)AB9i& ztY4pB@=a$~zxEs7`l0Xq)@MHF%H`z|oS$QVz5`=A-m4AKvc}CrWnTa)U3f9}@heLw zraAj9(&xniA2>~cDqzMU8C$P#SMLG<*HRKf7oCQB&o?2S&o!uWAh z^Rah>&Y;1qx+__~&c~Mbhua7_M8*e|wn*_{K+lr1MdQF^j41X60d**v> zD`H;es!XdR;gC{Y#xDJr^tkoLpvh3v3p3UkKc*7no>Gh@ill0 zX1G9>R%@UWd>#~=8(=- zlZm7rp{{C0t7=DKBMy8?7*Lz%Ru}S-84Tno%+lYn+Az-&XwV`~2$diafNpte<2>7Dq}_$ZA?t8a1V@OR%SCq^;nv$GahwMk-!&GKa@R?E=a&`+s09IsDB=7y zwuIShe+{fIUKJb*x*&_rB_Su(4D>k4$bNTvs_c;!frIHFVS-HOdHK6XNcG&$AHJt@ z3qfY5f3;!EZc|d5MT6VES6zr&4SIQ}+lz$^*d~mG2?0Z606jWzHrdd}X@)d^tbU13 zx=I^X?EnF=Fh^oc|5+4B^%nKbBM&l*V%R7}LAsN(pwIV~T|j65CIYMkvEO9s1)xIX z_xk6=Y`T(8JtDgDmeY={P9C;ip6bNgI0kTIQnQyljC*i6=t^OMl4*I|U2mus1u?CL z2$_S##<-eo=_H|jlcpCp>>k@*Q!$)4b6Zq&(iNURpYHqC##hAMq)$t1MlgzWwJ|C> zkW?_CWeps4NXR>oS)z1n50t92lxlS9@X}?Nq%aX;H>YjcmX#D%)p`@7L!Sev6D&vi zuCSNA8OWFLnx#4yP@ViJ|_Yxelc>jm47k%W(a?ew4kB2_|L>=u$)y!q&%E;t?nV2h(IVdj+ zL={oRTn2d8UAy_f{m0|>E2BR2@XUYv6OYIL^XhZF`ytj?fR{Wy@L8X5ijRHXY29)6 zuGSjM`#*4o*Z%s0c;fLj&M(%<7Frd(3q>x=`bqF z1Y->y*p0@6cJ%C(8G*fZDMhvKcLdx4SRG}XMCh7ixNCOR=P17n0m)8}W(C(|q*@X@ z$Xj%SX?+^%rJ$e72f}@5TQN*}Hbd_)(Tk(PutiUK6drf`czrMMA@0Y#@PrvPl>r21r7@zc2FU+f-_$lPQ&x*h~ z#|PdAUV8$(xQKySBy*LXB4(l*gw}CktWG%zILfl3r8!!qHHBRsc*;NqYFV(9UK!IE zkp=Ps%w6G*I}-QbbBw_Y-nf3VV(iB5j_1_bqrau2#cd{Bd^u}n?IP#8-;a12Ui$kl zmY=x$w=Vv`pT4pC`oH?l2fz92p7F|${;1PeKf111F9KtS?q=T7&*xzsFgmX zQDI}0P9Oj${>CR|;(Ydb=-svqnZj)?fBJr*9H5NxqN zpX=#d+b)GLW)4F_dDa|^fqhQ<`_sMY<#Q1*9ADDvubziKjp=nWIv+H1TKDAVmjLEO z#nAbWem}xl+w_9ARd*Yos<1rd55qOq5;p5%K-Vr4wDn6H3&sHFR0Y>~uzYO+xJ5xfJJNbk#TqAU8js%Vb4$FOeX*tFZUPW3`aCkp(Qf}zO&EXH*vOA|&xchO zmPvVy`2C6%G#9M){flH$G}llJU{(}n6$*!u1(xb;=QpRYu;tFAzq z!C?)=W@w@Zl|j$47f=tgoPp^CEir4NQ|q)WOWzgSA_4?^0GW?So&*KLDtik+W)!YZ zAi_yTSKEOe)lsO8$;wU~{qxbY)!RhFRrgMkyNAY2X)?ltP0qYx6{iU1Kww1~rKdN_ z1Q1K0rkgkd8~X+KfaRbJ8w*WYAuYREegBdriDc+awFRFDeU=H6jg4ogOU+Ps6*0jEoUE1K54gSm&EYj$ znV};(tTw5h2Mw*8cH56BHooO_V<S4~D^4rdX z%rX2PS`9KPJ=)TYv~&%V2m&0y@NDO1FE!S)pREJE%l%q|e*R8v`tXsjiN`7hF+#*dLn}H~ z3iz1e4FS?}Oitwq`uoIATN)>qITcxa*D+JoEltoa}1++OI!}|NIMQt2guU8SU}59D!hHu#O8j%u&J2no+tyhHg75I6~En#eqKA>|;}Nx`~VcOnFW9>|<*2gCU`A z(lrI8Iub^h-s%2bRE({?Q&v{eFQE* ztPJdfY6U=GPra!bz#bD-1C_)DfMVccips12R)8ykRkgCH%&Jn>Sp%^bx5ybB#heri zm8&%BT*H$EHQf;-VlLdpb>QsLf$P5&kxA}uL)`fcEFbfG^LPHkFU!yR8$W>${p{<< zFZ_r1;a~pv1;6bFU&m)Z<#q8V{^*_f|XG+!2OpouAN{$ej|BpBDpeZA~6GV z7p$U^*J1tJiet+*305IHgT7lr-V ziv0zb2VOX4j^~khOZBjaKs#(D?!G}D3Vd<#UOW+bMp3=jpzJnc1e%{z-I?t)a96j&;-C$S5S+3FFr6;k~~>EG3=C_E_h zW1T#K+zJtM0-%yy8gqfM^-;^)WnyBW$7_kT**c-oZG4)lN&t%z{|#fUlH((gG6ls< zVDVu%OZXx()%xZ_l2nxL6-G*-5Oyr55{otw8=ZV-Zb@ELM-C;cATb6&E}L%^u|RFC zt~aK5Lk3)^QB|8UHuXV!DGgXDhzZ65bnp9srXxAYpb3Spc&pGBO4KVrP9Uu`2;~6c zavdI7SR2oz$p;~7z=qLq5*rI#Z1gi2Jx5*1c`V`fV?))Aa1p-Q439TaRD!jK2-i9k zE5$1dlXHd9mpdGsOm_hdwc)=ONp7vLFe&1Kt6Dg9&%$~lu{zTYXR3umwOvIMSC<#z zAz=9ZV5>&M_-{<@E2RR$_rm=8JlSfML|e3xqLL}MKgLEP$Sbp)B=~it73)AF=pEJ5x=zP$`o0Qis9@s?d%XzKaqXmW?bwzst7a)cDRea(PLMD4GD zPQ<~~2_IBDf6^IGBK=H7dYLsUOF_DV+@>ix1FK7yx?xxOTJmm(`7l`SaVDnXF}H^V z%SD`wvLDVZ5)>{vwN~6h6sT$u{`~-4q4vzaqJBTbeJR=O3rkhcEoCNJs_iN*Z((S+ zq(pKL9i%#_Vpu9dCz82KUj?IN^jjFsBTGG(IuV4}5EAu(Cm;8i&;jT5pooXpU?rsf2kH zh{==UTEUYxVH+WD3agoPU+IH@Wrnky^qJ-FOY@nhZpYK%`oc1XSt( zPNDBY>fcof)AWkP2OaI?tn9g*0<|pId|Kv6N z+&h2?*6+9z`8BUNt&jiM6I?o3;zN&|$LrpFo{v7h;`;fXS&3Y-b~`wUpD_@edq&1u z>xJue5ry+56NOxu=jVxBR*bPofFL=4$OnI@l0?{-V9elTF)~!S=Uf9BGh!b=j5&jW zHIQRwfWZ}DhLx~lq5}~cZWrW4(Cc>wrd3us$xuVKYsE%k1%xKDD6Z73$ic$QoQcTD zQZlh-X4=0VLN$>qCbMGN-Cx8QqAU{MRRmdc=7>P#8kj@Pk=UE}CxN3>RNuL(9tEs! zzFI-VqSd@h5d~`jk%g6sv8t38Al3{l5nZ#5F)66D1XcuP8=f&Ih3+S#Fd1Ws308(w z{xy?hFvbKX$OuLm<_I7$+Wrk|!Geh%Re~rr@5sf%goe9Mx3++;7wx6*-Y1Y5Tn|`3 zlB~3C-c&|21Im_0kgl)I43;qrL#M%-LCGGAtVm64Oy&Y1gQJMKFWk6>y8f%NkEG; z<7rptaxHWJ=vmg;IdFD^sz{N^%1YQ9Kr>DB>VV4N&|ehy1m-#Jf8l*`=aq-zu}6TX zJOvE>TrDEZb6F6(fjm14jFUpm!1F)$GFRL=BcC#=&LV0R1uqS%Y_5_MmBE@(RU;mJ zH+cPaJoU>yKfdq2pI!g_pMC4{y+3&KTONAJX1!5OIpF&O*4VGop z<~j7nx-hwC5t_Z52+Twd_ilrTv7^cSlTZxct}KBEie<2 z6F%s$sW<%nHTC^U@k^gSJ!z?E$6rmF<_6oi_oj33pm4A$G#vIZnUTo?zCkFa;-` z_GkbapJ7Y5X>v@(8|5nL_jfCe9HB6qLw)wu$_O5a4;HY5i%{s+Oegn^4{a_DD?8U) zB={|Mi^lq4WxkPI-j{*|-H|ADO{fUXPG zm3uwIh*lXG6R<~Gr;1=a_=!z_rHqX@e>5|WTlGmsI$UVo+nn^H#2I8`sb zW`inFWT>Jlyx#R=OQ9Sjt6kx%8AR_bl;yeJ&0gT!XSD>(tdk+T?#tJeRg$pSny6=S zI!Nxa#yhG8*6QcSCL>xHqbDL%V-JBQ zOnPIF*h~Nw{}dgX71uNbJ)`pdWhl8BK8T4p^w9hF;R5{@ET|+Wy!i__xZA@4)JZe^ zEJoNbftv0;nd>M9NBE?&8V$PAoXkX#|sAg?P`6oqnrrXaKeSyX3`6} zI|v0f5(tL((I!JpLcrgxta$6SFKTpKz)~L`W^HQ6xyRgzyrx7nckIvagC2*mLXxZD zz>s$_E&OaP%V}j__^{8ZHUPB`=#XwR6+&x9t4bQMqJFl?1SyTUZ6hf#4u`hA@UZwN zSgL9hYQs?V-HdJkWNiY4?pO3mLsPB6KB%dmbs)ENcdJPr#t{PHIjPg&=fFhyJ(_5M zzf1j58aKEi6*CrEIRpU_6b74tHV#fr8sElqx)rBK4$!KkjoiyNHSN9RV7(N;;nyZ# zg&yw`FmnxJ3{fWu1?|VK6<+-OOK-pZ_IU7@UUzoiv+g98Wx;ZC#OqJoh?|dJo423d zwV;4HKj-m1_v2GP`?-AV!*9cR&3xoq*020}#VbE{$FKjk&n-TAW4!ZM-@>DlB~T;k z#)_i?Rs_!rI6mIRl}q3Qcb~-N)0uDh%_sTqe(H(%Z*Kx8g0FZE^7B6FI6nHhcVJ?V zcf9``@Bh$^xOqM$;+hj<2`syeF)$L78A}9xz?cJ-Rk5V^8OR6>+R#3-xYodqQ^1Wt z6_voONz{lzD!>;r)?gq;gwAvB7*>e`g~&C-A|#LYgvw7EiIHRG2!PnT)7B2y9WU z7;v4c@lQwI@{lR&+IAr{$bhJ`S*T1QGS@3gP1G_UtXlw$1$qn#z)A;mL_j?yAqJ)r zCiq;*V^pE4BJ6>n!r+xe-6%fx?ubV&v62{3Eu_J6%8 z{`tSY#((jLAD_>=^6!^F_LZmcnP2&AUVZU%fN_;|^N97KCs1eb{EfLpMFD{dk`q`) zVOE6HOECho=EFC}-7kIyKj|ZX6R&;ajFVIFuG=Dx79tX{40O9LE}as`mk`HCz&*EB zBu;{JU@XO1=dsI6D9XJgqPqP$BP~2-;{2gU$$jLNPy6KE|Mv&4%)j%EzdC;4zh3`x z^27L}U;KrSX{>jip?BLhsj-<#qzE+|C3{naQnGZ0}LY z8SE7#1wgd?RT>hFhLz!-9OzxKOkt|wN@FJt+73oAwCb{34nX^?4HaPgZ-T4pQj*DG zG-}W&vP{6-luY52R7)bHv$?C9pmy;_H3H}%pTfT;yh*GSFGOR}PRo>RSw#Vz>C>&Y zNuo+42RT*DsNsabXIjHQdGBC5t21Ha!rY!wk9=#-1`#46x-~69iJr#N3#WmBh}HL7 zF8*|4)fn1mZdXvj4c`)eF9H?^m2S1qfiU_u<;pd{gj#Lo{iJ86_2uX6NLi3cukuad zc?Bc`ASe-(tA5!dO^VV&Y)P-{{f9{Aq#hL*V=DO{#xGQ2E-{C&E5TbvIKqUHloZ|a zto+MsuJOO$^NPmr_M|93Uxo`>!Y?&qQ|AibM{fg2xh#+t&L5P_a>LYJOxcv8Nc#*J z-@1oV_*}|5_0pSgNcdeG@|VV{OQSgB>4P!1eL}=;!LxEjE>Q}XN+}((TReRK(J6Sy zyt%n&y?f=H?es5y5*La59yM9QXM{HqnXa9*e4 zST^3L*H2h^&J9W1uY=qBE5wFbBPPl%$L3oO1-OngskM;huodjC=-85=UdYi2FD+X~ zNQNJBq{7DYZ7Cd zY3qf#89>Yq;OPdh?{X*t{QU;EDzkfo@BI*GRM4SvrGezkmOK zMMQ2Y9UVxjTCf6=M(XF=Ge9a$ZpJ#K998?^Y^8{9#XGD$6bfih0mBQx6#!acp=Yhd z7JW)}9B?A7>b&1$HCf^P6WpYvFv3LvY3Z8NKL9oW>Sv2iR{(lKN3XMlVolHD-GG=V ze1De?&z`kQb6Nnms>SquuaJDKR^r-?J^uLT-1EP@`t5Uh?Aji+u5oe%oS&_D^r6QV znl0wV3a*T2y!1u5<8ttW4@Z9BeYN|7Pdklo{Qf`8aqn&Mo?m`FIB({atEaW>mOMR0 z?skC@ySV4B9iH>_W4z!wm*de7U&G)3Cm)D!`0gk2f4mX+oEJs>pI>`9|MFMe!{?eKiIo7S@$Cd-ul-qTL4Dr{u7#S+ zwNONjKw+vYFRF^1Ns>8dAPZ47tE!Sh+t36$rY;JBn5wsDu-2&=fn-*B#?h=IflaBfo<>a}{0yuVd|oMuJwuJSkT{)Xmql zt?wz)K7h<=n%dEUA*dap-Lji@+(;adh-(^Yf$@ljbm}$DhO!HgMV0K7O_M5u$kaI9 zv6VJyiH_w4C*k-KC2$?ysA96nkwu_R6TBQNW?(&!^^qrH|K|5cz2%*w-upp}2cD9j z^_`y|Kk}wejQ{+-4=gW!!4d!B_nhICpZcc!8=vtLc=wO|Lg4JtSf2mPIC|cFvAcXa zL)L$-0So9D5n$FC8YIWf$Ipnl;D7z*kHT}F2E66%$m=&4NaT_7?9D9dXb0?$5?4=v z3}(&9+?@o*QlqMrum_k%n#4c^gChfjD}kf2B(FWm^LIXq-v+3&_{q{sJeUJq>T zsd+iAoK5r8(W8q)MuNI)lNej=lZWTRPRtC5%h#iF)sX7a*ahP8^_x@IPJ~(ZxKf+Jf_o*XAYb0XpJ8%3K#!!`Mb4J}ijD>s3Li<_t!#q%0 zR*j5l{A)rZ7Qmm+0H$>pk@g+)s%=F9(^dP8@DUDFM2f>T=n) z@(Vwo&UbuK2d{}xuE2oRN_wxD9g8}Twz8p@m5X_BPTAMpp=tPOmG@x!-gF&9&3evf z!@GHt$aFRuf$Rml9mRy$va&ox^c4U)5vJx7V(5js(UuOxTbAS!W1EP;`&2C>O0aRu zMbl3t0LjS1@*97o9+iEe(kV;oC7~<6Ej9LnZU#w7pcaz)c@N}+QY}k{h66)-fkuxr zbRyg@$D7K33oQ`^vGLpPpNMh-frEKlgs=x`W{rn;kRgIXZ36wmy>a11G3ap{-WUWJ z6Tm!FV%=I0aKhN<+Hlh34QlltHg`|IM-eU4KWD9jSuZ3oYv^$E-fBMtU~F!&n>5D8 zQ5jHTIE15PV?ERFMh7QHZe$8-=q%V+H-d}C`*h%Cx2T|WpfB`yZe9M+L_2^5D& zD+f#wF;lQIAso3Kr#|>Yh2Tg@7xm8dd{{sZ^{MH=R`;I_H7$K|5Rylp*9W7QH(;qw zEFQ(f0Ae_~FYk}iC_%rM=)c1)K`sNZ3n{8R30)&TWw@e>K(9|de0@f;E7gk=YL!Zb zs7k@q_ut7m#S|byOtoHX?+sOgh(cz$i`ZbM6Kce!78u_Djk}vLX{-3&|8y`7woFRO zp8zB1~NrL9Y!npNYdif`%Y_%OlY92G)^%TlIF$seydX8 zCb{)QZZ>I51NIeTnHWf1yC7ciF}MFDBCfygH}{zPs@;$p{qct%t+~HIRd8KrtdBp6 z<(_-_%opC74}XCC(%*A=e%<%}@tMbW-)|y zSMqoSbMbr>B2iGqO);2bfE)p0h`45;)<8w%EGj#!tn)pv-!m>QW~}Em=R{0a)Fe58 zbtZ}xRWeb>5-CrKq;mW)A5^FrA<1_$M!-Y{Lpy3Efs-?nawq?Vz#8oScwBVkhGCy0{|eRWCIr_e zBUX3Ka;sHB>A6qb8ik;yD^Qek>^=Qbk(ret+Enx|)lp=el5UD>Ma<|_gn=;uEWlAU zB=$dW_aaK-NknIM1~fqG)kOrjb5pee;`H7m4S5z3P?xjbC}`_=c~(lmFp$z$?Gz z1N>7T|Fe9<|M8zNZ#+EnBd(6)=RXBUcV5LfPPM-b4S{rE2D3OoCJQ&;|3uvV;%CMG z@ef~u-}SP=x4Z@T!21#V2_BsUa~C*00grcy<6YFHD}n3R7$Yypyd8xdWNILu4DRt5 zZkMURj9?7$T`LEfH=nE<@4Ytb&S&uJ{{AcYji0x}BahT`{?6Zj``&x4>2@MmnLtr3EsHt#5uyp!@!8IFZ8zC%9nCkUAR^ zi<3+WxFKNjAP#EFT(Bj`a6yD2>4-chIv=pKzj#Qrq4&xf-nWNDIIIHb>U7O z&n7|325fW=PQfPa(L`5mt!!7;q6L<~jER;D(`FG#Z5A!4^2@X&)+N3k#|FYjG|U;9 zJ?cca6DjRHZ??t8Se?8(*$XA7?25M8x`2`^g}p$8g^B)*(PG04v_Ek#c==3p*y)7N z++inai>^b)W#NSI&`&%-j5bD#el88}yY&D-R=97NN4r|#rhGhs74@o_&ZpVj%Lex!}vP2*=Z&?z!-A)Yux!@*GXL`{)S;4c za#gI*OnS?dq;T-xnK+Adt3((*<<10^A$YE47>7VX*a?&pUB<9!VRSeBvh5!NI&>Yj z`r5nA1rT6TbzFfAxAf(!bE8bY=@^%!B{rm;!$Gb07Y^)tj}Hvx)`Izwjx9p0>PvKw z=b}R*04Mmh^^nP!O3$~&_OgOgRb?710AUcITIk3ydFSVg+*n}t{$W7#qjj*SNf27% zC?m&?e@%u4#7@xiu~5h697yiKES#NJAAj^L&Yyg8 zX04p(dtO|-jyijCeB{SHyT1A>?&0VBr7upzC0u*UTPiSdbb5qbGLBAm^Y~=JUH4wX zr+xZU>)Fpd;lKQWck_?^wfFEle`+63xq|vL$rjR38W>~_jGW$4pmtu&aE&oFy212c+p-R2cE|ywTDO%l zLUpO7^fQUZaDqz-iK3TAr|L?~32it;bfc>kycrZ%Kk-AGJUi#=76J zfT&q&9g;>nokus@o^#Iq<7=F~;}P8WwfE=x)<=2ztlR6Wzvt!o%kO$c{qt|VkMFzK z#piwNqx^#(_20*9|JqMaeDF7s&seZL>s~ImU8-CbJ&k3F;ZgytSg7+0UVqO+IDP6} z_*38UviReF{0c5^0&jl{@X!Z|ByJet z#%G&L)WTl~3>zGe#(_?B=_oKf9567{k`V?v&XY42lm7uujX`YYM+!=*5(fqtGJj@6 z+-!^vjIze4l^P?haOi@g63gLYVj)liNV;a~Z9bBkCbigj8;jn1SHgR`SE}V{*dSQ= zwfbMs-KmU4_cA+?v`53?g`g$hgzzVDcz%((j!ua6B6~&0hLbyCO_@^R&>n4D;jZYr z$X9xNN|ZD8?06{jb)p>9}ps!9%}yXR1xkrPogw z!iCqK##X2Ip>lwOKbPJdkK~sOxX7+FkJZSec@ssJytWvMi6erXult% zl`SUs*hB{Xo{=DygCVu`b(_2)0;t~k&cC8S7UH}A;de^Lz4gJQjc{BHY_qqQUc(6*LhmDb5!!WB?4PcyQ*Z{PARUq$R`;&B`lf!ZPR0v8^BrXc0s2{Z z(@nFm^hVqEWgFjZ5fqz*z7PBiX@qV1=h<*ocfR@uk?yX>SO_6MvJR3Ao9V z4u3A_OINUGOZj{(=mA-6F{}*H+>6 zUej^Q&14BEwUK885R*>EbuZnc2&-PUpuTkCY;b4k$!6Nu-VYJz%kBAy0wdn9snewc zb+h>Tt`4d&DdnIESB$7i4{2uKde{squuq6gEB(C}o9|U`EjHk!&o@&l;;Li}70~s1 zf(=?>(&r5z1JCpbsdU9?FwCZFG-dY$O4O{x^0v!~-EMdE=fC|ePkhcN950{v(F-r? zDCfH3#UJ}@JpCh{7W)dE92J+{5wMIL_uNO~v~Ilnw}6Z5IT3vFLyurx3+tSD`SRfX zA9*_-{Iv)9hyVQB;uqgH@YJJ;zwm`8_^L0vHy(MMeAO>MinqM`T%%=(SV>aq^x?3n zC8m@uhTN!PkccI?jEu;d={Yw!BwWn^#!e;UYjv}PBI zjtdjJAO;IN3@n6xE;NfU7&!80>@0FTa>;xNHTP&BRbWSX`emE9r=rJ_v};4 zVg}|c)(nj?oc`mz!Qfu=9g=+B2cSEXH#5EtpOC~6qqPf zU_~Wo)(X@t%~3cdPVc|ManF_D^_su(1Fs+7`A@Fb&%J~B?5mUC{3W~i^ly9tch7we z@MK~C@E*KzliaI}MX+W?028$`$d$X3Bb?rr@!@woh+q8i_v5W^I71x;uU-w_b~*Cs z3hEuNt9ao@C%)jjew3_7^V+X`54pP|mKY?|@E$&3D2+GOw6W$0R55Z6ROTf1%os;? z^1$7QC*E-JL*MZR{LoL;(S3L4PyXdU|D4ZT&kNUYsAw}w)1Yd`hF|8YvxJ4siGouY zQdLJ+#;BB1El&k0zY6li)9m#~2%9?bAZWur`1dJ=7N;>IRh>+mnZe6|LMv@REPRNq zm7-eWOwGgS${MKZ{&J76>X}#X+t6-SXa~9A8k)4!M;TTUBz2ej7BkiF(Ar~ z=z2a4!;C+|SUzz0`-EiE4cQ!RX2sSRRBj3)WCGb|0ZsTQUzPt+ReCI+Fom#R8b1ulUCCMdV}E8@hMvauRFId{@e~?!BjH5GU%-#l*;)uGCWh_G_wX%>f0a3JJG;k;y z`|}e%g6->ZOEo6o>$bzohF!buHvC!J{ondKrii^4!@dVw0tQ+|I)U%&DZu+4#WZX-%=3mwE`r@ zm{Ny${pJwFY1h)!O3%m1nRE2dLbeT`iK`$f`U?J8?0v`&s`c~Z+w zs(a4M{a2%tfL`piNtn95zGrW-KLk#-lc!%Uhy34rYgD`~Wmfy(Q_L(5mVfu57D1B(oe%O6VY^>(N`- z+OZt`!kM(H9pU6QECCzZkp8?5p5Y`XTyhO`CD{aqoC}qIQrCxRvZKk1?b(}YH!;~_!2cz`AmGQvVtsP~6B00wW5HUp6dl`bGi zP@Sn(32-A6)CQt}#sQNa-hW&1PJ~BL&c5{ZAZ-j&GB#3`It{2)y{`1(v8CYpOj@p2 z^ttH$ld$RrtFE*3PbdF`z)h1#VZQ(cYN>=+y%)W^O#?Hv7P6nIffpvEU}0>nH>{GW z%oMo?JD12%$rV`8@7Xhp^Va?2YQ6VZSL;hfQ19Eh#e#q$anHg)&>f*Ux6i;d|oI z4?h;``5MC==<5VA9&8yddf%M6+iLM-ilB7vUlQ_ z-vLhqSvnyV{7RECUo6TwP#^6QYu*`j7f1vqPs z3MGGxil_pMVqZZN*TkM_Er3QEp^)nYXGK+Itd&s{n5&QkS727eI*D}x+=rXcwU}xR zC<{#|z=@auR!8e{ZDoR3Q>WVu`COACrDu#y1u#RlysM53%+Nz2Cian7HI>1du54ui zX8`-*W{g%X6Kub84QO-}^>dRBk)Ev;2N|28Xc&?wqzI@0A{iqNT?DNbP=!okw}IQ} z?FRrMl3y32ti=>>gY{tdEuhL^RnXlLrM41}D^)cWWQ@{POaK_k zJPz)TgS-hm`SvH{$=5u{iw`~=FaJXyfgku!FUlYPp4<7HrvZQZUrfC6Wxo+W{`Ef< z>mwiJ?%B_aqh~%nmpd*Yc0v~^HZ+!zjAg;PU*p;%d))KfXX6XM;S=#E|JKX#MPL4u z_?VZU#`8Y%h%b8aX?*-EFU3cF;%UVG(Zr1pf_bdnIt#f@=RU-UWHOk=$lbyivt~we z35>{yb(dg7&5OMLzK3ys<+j})_zTY)zwZ-|_V4<@`Z+)Fuip2!6FZz<$|1gUs^@+5 zq!(<2vN&EMCZ+Jq^fVS&^`&^{17fqYY$7{N2xM?G=G~h8;YuNue58G!vPWh49CDo* z7zZU+`24m~Sc@sgEoW$}2COohN}Q63t+lL-$y^ZHh+(H167v`|Pzm2~CA4?NmLL^2 zMI@{M&=RH-{**EzR6z&Xr_do^@-yMIlF^Biu(Chjr)N}b(qiS!wN;uM-)+7j(n%I0(tU#c~a-gb`R z>InTJ$g-lrDrN*ax&yktaGtRJDZQ5ozzxLe-9z*cD9_J8MGbQ;^370ypfr&)Uc)h*sIx&U-e!#XrADHs0<=pg zIx&Zdh(>0D=U(($a=ASpJ-<1r&I@uI)3S|DiSqE7IxxL3LkA6I*;B0$<&D$D-X7Q1 z>j!jl%e3M}zrQ+2gWWgPn^5;RDHqejy7VC#(ocwmO(a*?TgiuKBE##;Ql$nXtvCrM z_apl-5lhn}uXNDC%uAK-lkSLFNf=SDQZ5`FE z%c6HTEU_5bl@R~=GBNCjp+iC-Y-HhRx8T7KJ@&$H{ih#z(_j8WcVE2pcjWHDhxc=r zxqSR5KD$ouxD$D4#O~-aFqW9tu0hdYX4b`g^5I8g9-rdg-*GAU#P$4}-|$*|$1h&Y zOGjh;+i!mA`a8ewlb1NU4Nt!Am+&k9{hfI8TQ6|!X7TJ|U_bY`*vpxrN`y&if0UWd z8G(_bDo5rn0mQ&AFf(I}9aI@kt;~@O$=yH<;P{wamdGnt7oHqtT)sSTa%sV(lQDO@ zC3m}lNXBxsxUW-Hz|33&@&H{qfw_mOSaSAej=2O!#+Wl|AZ4ty#6SfxGG`^nf~AUx zv8yPiC8GnCEX>TYaIz?u{*+8W&FRTPU<{(j7`yO$Z3ZycKrGnVc4XJNr#jdpml=T( zV-%LiSdMi1kNzhM%T56za^PqOa3RJn5Q7|}0?WY2Vl9b0(w>GqOMs&ZEJGV?N#Mv) zrKW81{4>rBQ(E zk27O4F{~gi5ICP|%(*C$6E_h!4`3y65rO>#)m=)4Ix-P6{SjINv`&~ zu&={fo1&1cVnwp%T+i2WeA^Bucbp>cJ_Z0h{4?*K-}dbv7(eoQ@bWI>pMT3$e8!)8 z33&VcsK?JSKlH@piotm?nIjX7+866$MS*d2+iC5t+?9Fx^1S%ahvLCEy)k3Ciu<1b zG@Lx+a}jsExURkWujTsiqmx(eiDh>j5y=Iam0;$s#NDxWx8EN7>mTM=&M;1{A@_4%=j%T51aa>(?y4u=`xg9>Fa6DY|4p8M$N&D+kGZ-mZ@#!V#k!kVFLZdi zT?X_><2i{nj9ID`nc8P4V0D|FxiodkY%*(C)%~*sq)de>^jRfiRaJ-3Rs8@_Gm%-i zm~8PEy5_JExG1b_Q?{=7n`A0mXIA6ObRwV~HmUPs-`+n3bhTJXhcH~-lGuQr7U1$Y zgQ_Za^^{gNbY+>1&-A}(+)F32z(iGSih{J_0luF>jrUglDYs(Aft1i_LneSdt-gpZ zyrO5L0I}`r+OVF^&vOKJpj%=S(-mE#B^91r*a!`PFmw<`nb3QZpAS_rZ;S|!Q%vE4 zNP_C;+ti~|vO8eLR{0JTDu#nzq4P4w z)Z~RMP@`iG{$f6>RJ?0ig`nxLR#>0_EC&K9tsIb&pgdixg%>8yAo@2sJ^cVSJlEQu z(O69QIqerg5Q*VH?R^56m^rj9XP4T-)35ybt*Dhyuh%)YsGnXZ=~?%3{5KvfA0bT& zgmC7nCu&-uEA-*(E3DzRiEek{@P1HUG2!+i`tG}d-Z)Qx@8Xa`6Cw{Xhe;rZneCAl zFvS6XW@BGH7m#k#_A-v9!8>OVF_IhzuMcdKsr-M&!6Wi)pp{;a@6e4=<%YLaK zlg8)+tGRvI!~5@t-}Nnw6{v*Uf1Wz05YRX|aH72v%E?mh0cm^cz*vHtdwsK_NUhB* zRfP9G{7~4;=3s&*c*{6BJp~_r(-IwxgHb)Ir4I*_80lUdiwkHeeMBMbS~@q+fmOjH z^n2DlqA=7~=Ac%XZmm#YT`Rq*_4$Q~N~uz+M<_)Al^%VgVBHMD^!vrFiVYAE`konj zyC@Myr~>AS9)VIdw!?|&!)-zmyK?qt=~;xkaTOybr}l5lkV1r3#uU7ZLezlju~uDh z5lO*nYRJVrnZEQ~;B6vDjIC!bw|&~XM&#hwSon}ZUjhuNMhfW)lh!fa7nWQ6aUW^5 z$_DDoa>amsc)0hj`|3awf#xf8q0&|iV7hKoJ#N1D;rz7U z{mb)jziO>7cz)u&zxuoDm4Ee1mb!KwkH790>wRzjFcS;!x^suir@P37Q88jfsx2Y> zlwuarA|z8X1QHXq&SbKRs=Gm*u9`%VHA%UDg*d0OGXjg4D^PQSGcZ@v zBn7Nc&t2^y&G!uC9w=tytk`!z$SbP?0f~SiHkLkj$=95#WG^9 zkKe?N_dJO6cfD`K@xaqx@>1UMz!l))0&(@Oi5tJ3`-iTvj*dr4I1z-)0iJcpIXTD3 zarKUP^^gBb{{Q~bFU4E_%j>y2WgTD5U{35#PxEw_F>YSWN8bAgZ+p&1)DQiOkGi<; zXdM4<-~RqzJimT&+m*Yh3RWtX$6~t4&JdZvvQ-pegFqD@n5DjRgI?GZY2ifsLMb8u zt?U5Y+f0BVPaB!y;b0%>^FidTk4yve(dSFhBt3ktE1}Qr{BIMq*hZg$Za*|aDX3q5 zl&Y$(>s!30q+v)`|rSvzreXg{n0)bsl6)1{ME=&eEsYI$bT%)Il6}N!f`z43A zx6e$Sy;4P(uJ`>i>QIrMVN*b1lb#dV_#B?5DT6_71pQipUGLSAKB!kG#9f3*7w1%| z2nfpyL${nCmc9>@=yQ7$Bj6Fy^hokjL9y3_@lErQn!RpZy;Wm{UzF(5*C+LH#OiRO zB3EP=4Oa*qr}GaS)@hSWO_od%`*QlF|4wbd0pXg>I}Izk+Sm91Q@#x#P>n4i{9BF?WqR6%LtAB8?B7AOnnBnls&9^agkE$9PhO*yl@(yS@FQ|RJ8tXVJ8s{ zx^B614L#*UR{yI}r{@cYMb%5(D8q-)A zqG?#TrENg*lc5%76|$W@hUt7dKN^14Gt|NpaIsJ8P5ZxnyQYAsB*T_dyF#VpGQ4qY z@Zuvnrhk4qG?tdYunfH03G|;1zv|n_oZ47AE7j)&vxU_gqREG}v?fudQFMMz0`F5H z5;@SlI7}y%5s0bE^n~5x^`%=sNNrA%P6W8E7hS8(D46A!E}8h2ZnzhXpaYGQM;-OP zRyn^;^!4jPQnNTLy08Pgl@)`XJ^6A{_mNP+C4Fkf3Mc(SKufhU17bE-%U(iEaoGH- zc|WdVnK*$}xEn3?7ut_ac2`sn^FSw-$_Rq#MXAs*sGjzW5aaLuZUG@U88(AI#a#QU z{rqI&RGB@hd7BK;t-N97$f#-og%Bux7@5&-6`{@pF?uq=IQ+ecN%4j}E4ri4(<`Oa2Wk2m`IsnwVmi0X@IbYkXBc z!h#r6@4uX)F|q#gMIUA85+t~1r z?|Q*)>%;%!jrq}^{RY1A@rob$%7Gtw?bnXo3qLI{-tl%k@f+{p`G;@j(e5N}yX`2h zTv>R0oVc`091UWOU}j>0EPo>8IH6%lu!L{HY8~}j$eF}q#Zb@_rJKZMcuvM3sfrZW z!2TS#n85kIa@{l6{bbEa>`R?cjPSs@tXUZp^ns?%#coYRfW^d=h%t)A?DTp9WN1WS zj7Su?PL#afGgfLLE|GIiL_{dtSG#zv2u#YOsH&^G+P)lE_rPRCO{Oj`0;TaAvw&Gm z%|#R^xE8|9hSsn-PtJi!ZNggJJYA{A@(ILD)LxC%HT5$h6+;R73fK_vkg)6Q*PqR3 z+e-yR_Rs(S{k?kO!Rbv|sV?VA$>W+Zu$!fzZIK>nLy%Q1_{?v9D8KgOeh%;cv0sXjPsH)FF5&3@+a{J1ef@4n93PK3 z-sLzNm}fU}@%~4!zi}2vd5XI61g^d6AB-n|<%fY~#BO&PV^E8FM)=x;m<(1dIf#?v z`ksIMIKK1y*Z8~t=Y#QcKlDFxfBlgdvBz?pSWb@_jO3FQPyW`8xctKB9DUz+KYxA7 zN#5~o-}BaY@kSh9Jw3rP8x`nm959*eYI1Zhf560SxQazDOC_KcVPM^a^8{ibr&mVW zKsKPy4<`qE82_kgRo0Sl;%#Muv6Ko!O8y5VH|`34i9z!DR#;4oW4b-jxYE9a8*Ys5 zZ@*>rs`#Mu2^HwM;Sq@?)8w_U#rR>x07K7i#Fj$ojD@PH!kbch_tW2BNMomMdQG=oxVVO?v!KN?a3a0EzkOJpkv^X_#yJv*TI9(9t34*S zq%U0AOmmQ3w7S(AG$R4GH57+bi6)F(;!=xA2tUpUEUxt@O834tzPH*0soriRqK1rG zoh&Eeq_F)o2qNei;|IC2AoBH`Rz6j>#I}yfj%6Y;G+|V%v^C=Wr z7E?-1xL6@!$uysNi%Y#D+i3MJtz zn?1A~goOIG17K<RJgzCmZ~Wl)Q>|CO2Wp|36z~2MN+Dor}4Sd549g? zqPXhivMb-*HukCv1VH%S#4c_wq(dX-6zq+20$X}qkj!6RD1}H)ES?ul`NCt+Lrn;GmE4-}@SnbhT0edsx3kyXrR_l$JuOgo=q_gP)#V8{VLq zg=%NZFxzJXx_0A5HhZN-%Pa&7%-mW5(ibj<%+Vy3h;cw8G(zSlNE;mXL2KiA4UsBk#=vOka1Vm_vB~z-zaSaB@h|;&P^X_?i~v;eKJVOk+x1 zkV6>+X&P#n%||MCfRzt5yax&YN#@jg{==wz5QArl}d)xqEQ+{TI;s{YplLdaoJiJ7Ca_^m>P^`lbac^npg*D z*Kkm}wiz-q)!Qg|dcAhH7$BQw0gs&(KI!9b|BsQp@k?*IIgZBI&jPOBxKOWr%_3I< zQOCy%;(W!r1n&H(yYbfl{MP)0|K*MA6P58_zwx&Gg75#PoR^-%`JPv^9{Mm&?l{Hq zrK37JS#WxJ!R5;%Zo4{odYU*o8d#RX7%?%3o&4sofWH0$lTnycDiW)krqm}ZCzTyU z6$+R$`i!VR?5n_8*srX0uJd9)<6>X9IA5_&#@r*;h+xzVu8gTdD?&M2fkNULwGQ_# zx$;&7XH~3V)||ChWhFQnF=wm+6S#=rx>mACQ@R0G5!i=}4r)#n=(L}-%29{}qmor? zj+NwO3LB$PtfFvp)nu$>H9f01J7qc-T)A>8>Dm%|tiZYgoPnBxbt_7Y2^IW>x)V_o zv8N)|8f|(&?BRsIT-|phn*jEuD*aZ~?@Y@FXA=$&{h)fD2CICG<`L>sHJphG7# zLO^|kt47qK*yjDPZeih?Vk;B2Mv+w!tY}ac$?^>11XxMmh=|N`FK2>?!HOtGSBuOE29YXz z1g99vQk*28eC!;Lyyg+CkKVwGzT&0)>0f;re)!w&2!L^Vlm%I`+a4U92Fz49Z zYXhmt9dY@j@XQCmqf4kC|94N~-+k9>@Q&BK9#v;Ny6vV3g0~#8}i0 zsRFpC1h^OysdFjEbStVzXDl6iLrWw(Va36v-)HbPdU&|l0AgmJ6^Uin3WeG*q>@c1 z0O@+))`M;ZL^zd5W3Nz~(>69Pgi{g)E;{3zbVZD?z*Qu0lJBWjqn}S=(_(NKd%GQB z`18~K6v`)V9V)D3NIZiIahW1}MotkaY0M230%t(#fCwyAE>sEM!~#^8nxXZEQOXYx z>TOSjgbXP+RDTgE5FjGGzDyjUmC4RsG-8q4`{z(1r?Hg!{)2&V0*%j`;7O|!$|{p# zT;}gbrxV7%NKayF-v!_xVW(VSl*D=z;n4b^iHn|0u69S^sG$KYPQ<-`V)%V^exq4Z zN~%qQb$*qykOe4%!R@?|;zZem)<}tTb~0YV`zh|Wg&hp51)_j4HSV+V@@6yVy}TH^ z`h-FHB!P%T;aeBXe5#ejX0gSCK#wYH{J2SsN4bF5&nJYb+chy|1g-o|&#^+JOZxNM zceNj!GZc&j2;+0u#~}UeLOBJUyK6IwVJs_nHl=BrGIu=H^9Qoot!5F*$3M7OMxpmN zXSsr?1lr`SUW&Ajf)Gwl)5pKB8z{R&mi z&6>5#Yu^-EVv|r?B3m|P6CE+JRP&pLBUUU-FABXFzf?{XSBz2xTgh)rmYrnzz?elZ zrseRG5RxjHIceP;eHajC=(avMRq3^c=@s9Tnf-jtO8ZlQGJ^_%^AREux(Z%A98lV5 zvGrdO09L)9o~)1#;G0ux)0bv@gCF%^hu56sPuirh zU6|Hq)pUW)$v3tO7o%BIDkSGP8M(=|;DTxtuvW(x*wbNiBv1uoDkdir<>6diSs>s_ zer(_XrHT^EF3=^SV%+K}!J+k?5=n#H*x@jk>b$Hcr-)E7umgZv(Yv{ zPZr?lXklcJ^x6&!j37O-lJ2i0lQAneD_w}lh)UFCWQIa3$ytF|rS4dfH-27I!hVx6!UqU}XAy zt*Qj4rX?zoU(MA73%I_pn`>&tf+M*j(6Cf-@u%hcijdaA0y8Q{`XfG z{?$Ku48QT8Ulq$K^5nL=So@3OJdZ)FkH7nZPk;FX{I0+EJU;YcJnQd&*KhsI>E#nF z%N|ivXFGu41NafiV_W_dBr(^oUu_>k$6ImK1gJ z1Sbg|0qmA40-O9h`&w%rFdn)P(pXhzDxI&CpKqnBz2PLt_*Pw-!W}t{Q$kzOX#$q8 zDlQ2Oc?V5Yhe8(u+<$FMelT`(|5##EN-8g6Q>4J=1r)Ze)9!IK@uSk4{jHU=$Yyd==$!&lOgJ~n@V zh(t}{PnJ&1tWJoPW6H0}IFFs*IJcWFSo+zO*AlXGF!)YGg&VjK9PpV6?awJCOVM_R z1?L0-&pcK>6~uyc5nRQystI{5c)C_AK7GHOtM*8Bevzivg#}pR-phX$<%a0S_oeor zm2`2-itmkTQ+%wcQ@`*!}fK^yc*;edSPd1EH{e|Gvx-Rz&y1yB<5f3g}VL`_OIqg#_+!AHV z%|Hbwc9HXaIePoEor9dmLUNi}`_A_HA$TcLZUAZ>+XOVOV# zFNTL7y}%c|^8Rmn>{{*L@LMwiOZGJ}&(CnjGq3Ra+uz1d{uA%2 zWg`B~AG(w;`5T?CB(S2Uv?)PN0(wb-o^3dV;mm`ubw2XoDLox z=Q=Vl()M;ShzR7O&BehLKuitPi&@h8j3{7E5WJ{nZwSnp>G7pxM#YE=7UF!BZhxNT zyeM*=p$#kDeG4Xma|^gd8PtyHsL5Xf0kuvb0iL?!mhgJaAh)*6x!cA@~T zb55@6Q{coAX=XfTRK?uO{y$~x8zUH#tT30ym9ug(vJf#_E88WX^D6CurlaA4&vNk0|XI45cqqd@zMU@gF-4N!IkYgvC#9ssKj zaI8})fa+!X`<4EVDG9=K?LbdOZ2<7eJy&a426WU|!q7#xTA_-+)3}^!5#6|L5o?K_jFThD!b}xkM#X}v!3L4qx!7X{ilP1mjzC7(u4Wc;8Z#?CXR?Ci z%u-2^6SJcB>v;TwH^w8cdjve&^9#P|`FO+YUc&GAy4&Z!dn3m0{=#?1kACgXMZM!q z9M26b&%BM}>gC#<9Pe}NA|oSm5aTFvEQs9+7wig0v8pJZBVy#_pe-vv1ariU{ROVw zz*s%W7y+DI2H*1p_)q`Ijf;2w)UV*=Y0n(X$!&FhHe=3x=5Fxu_wD1kpYRbE-|<(T z8gF{f#qa!qAO7H9zvGTmEGH6W6kPFA2BNo2_4E$VJ*!S0)xHD7Zadf0XMMB^EP%j* zOq+Rz!M%H}h4IFA_DE%FYN*nx(#4fVMem|3a`2q)*g;Cz*l+-N@RBO(^GCWk0CqdE zi_1GFwAgS)md^zQh~0K-=-A0^^mhM#hVCz2eMcRP+A0>2<}F@vajlS^J~ULp&e)Pu zaSkb51mo8wTw&DtJ!KpK#xcUgJ#h;@C>N3Fgxb5gv3kL(k6fhkAkg#aW7SzM$+vKT z$a0;7Fun#7Glr$}#>FNxCY@kw41|gdX?21ikn#z5I)F))Ug^cOGGV8;kX;=$ex=_x z2as-mE=NUnTeI+kL`2FvI=L&Gw9VKd!q*B%y~Yp`ppH?i2#qm}4}iqvqGAs8{Fr+7 zguTkRGwy>_uc0Wp8mw0g*FuF$W7IA9Hc)ZoJAuP8MZa=*-*umR7qxut_E4(WZG@M2 zkv>Y&`0l8erH-(Xh*jU;`DNzOudt)<*j_d^mT^wA6oGvNOgGr2;pzDis6`{Hq?+Q*YL%Llbe=4OG2)m z9XOaGdd#up*BE6(Ei)>93E^aRx|+5Pg0WnLNp%u>Gji+oSJKIpyaVpbpL2NqT0Q~E z$ALq?cN?zsYTyQM=>F_D5CPFuOr;b8RrOgP)J~Ufa|n>H7;33!Mxifz&vu@`+KDd~b3fN0TC!x_SK_ zMtrEx5#b;`yndn-WN{#kIOOy@%l%x9HrNb1z;v%wss9R;GD1D|GUyXzoT{D=YzC34 zNE|8?5-)^Tod~5$qS{`2ye`+wW9YqCtYDkZS1nDrU6RKJw2O9_V zXM|*cHGn723J=_q^@3*{{nRh~`VCAlb_?;uehKp{5~bF@|V! zV84PDG4>Y``<2*VAkX(R*Nci;D`s(yRfn0@+ZceSQx9=TKDCsr3N#GX8hdcAoRhOO zJRv@qcq7))88JHL7AM7H6zgv%8KY-HKoqGeHzlEY5W)=E}%WZ%67LftkUo znnC6)>AkAkS5Z|liJFBqqE_!ZPO+fnQ=IF>Br!7&tWzb5#ZknZ6}3`5_!COpXCU@K z(8>PlD)|I3hku5ud95>A)`LkkRjLt+s%oh`jT-L#moW&YH8+~b&d%DR+pJmk4sa@y zhBe&5+CHfaFqPzYLlMU2oQj1?)6}%2%`%itw>}rSADfqegLfO3j6s5XaO5@@iD*0kb49 zQaOmsidifa#ZZvRNx5D!3ZXWcSZ6%?;7vUIYaax!SANyEK5xA4=RUH&_V*v-Z~e&G z{tte}>-ekR{e^$xbk98)%W>@YD-ml%9_QJkXS)}D z&dcUs`HJ1m|M2qhaILdb&s|4pTywRfB5LLMjpqM5>^NtlI3ACT^Fz_ zNTz{Obd^7xjOdh0pB({g_!Y*a14J%VJ1VHNf{Ge~=!Z(VPgC^iAv|m{A!*DgQltHS z)Lsy%ML$1E#J4HUNi8CrkxC{-RZ7GVQ|*fq)G28t0(}Ai#4gj;AC#fg3$;nl|!nc9*4rJ5U?K?H`1sJuuZ}s-C}ERiO8l` z0u_ZB%I^XK6Xhd#c<*#Oggmf@67$|^#(zb*>FREzR7{)h3WLlOKo(rZF5&sYcW(k*Y; z@EKaDTYgP!fuvkwAm~I=L4Nwdc;S{7wd70s{TRK;rW3+xTr4mw*V9`bT&TV@ESYC4 zdSI4tV^bl7`gm~Yhw*at{W;0)$|jujcY54`)UqJW^j6ZvX+w?S;1Y35g%*~QDZsMt zpJHH(mJ88IDu9-f5t6*An3x+A9cFD>vZ80LgoY_*3vL~#ET}T%gu|P*{7CxEN?upc zWG_`mq2WTpZ=vL>po3Gcq1+BGI;mqOvRsWt_1`)gtA{6Tgn^`c)Uj>SW@j0&sh%Y9 z=|lL?^P?aqgBcl)sE5gp5Pm*@%fY(_}=Gvq-BZ zfKcCD>Dsl&7wzw&<^Bdo20YZ9Kd<`Q{@Yta2Uo7>ovR|KWQcUhCB2gMXc__1zTi@V zv{X`6__P6w9%}k+ZwIa!V;&qPbr2DjalrvnBYzl)p2WVrJGfsIN?)g+d$1f=_0F!H z6~5#%@A`&^udjIMq1rE~IJLjoPc(?(!V0Xo@C#ev9to{ zVj8#zgU&ziG%<6All>{-ydtx+C7j!80R?tWc&B%Qiu<)3n&Lw0-PeI0t40!il%rz> zSpemJo}*s2DU_a$tjl|=Or56j5vPvDmNO5U*5+^#H(3jP(9*&=P^{^-;)YNh2$3}# zYOOIt6#~fcW=J`)qoCPOX3r;&rJw)5e_{I-U)tl({neMg=6gQ!@YCie6fsVc_qzDMUZ_YTup(~5PRX5M%xB5_>M^yT$E|JM|t>s4@s9PeTB|762L?aj{;rB$0>`OF`<)#Z4nfQ!Yzpy=TXo(3J?gE zg@EDjS%$q8bpj8(;)$VHd0n2_!mWanwt+$)epP)C6wT?xe55!w{7f$Rf2P$gNz{S< zR&^gx#*1}|hi*SKde9bs999hLYMm6`{V4RtM1!aR1Q1dEvQxcuWs1Qhd`fx8BDOMt zG4hPvPhNiiM+6EkmWv*%S6WGm1-OutmSH5yEquRfKawTwTnpkTdgc1pFXGZpTXG>r zwcOVe?YO=lF&qRiEXVg0i*`{yWB`%tYh%0R1rZA*U*}W#O(mNoLb$M@Vbz!!{oLQG zVCH&>#?bH-iAsLQ%xGFi5`*_D_%vPuSZfzJ06Rd$zla+9ImJ7Pi!ey>sS6v^8JDDg z6?s?_Yf)6*^(x%@1X75t9Bo~#BUG3 z;{>{QOFB{vn3`eU-1DM+Vm}rS4tf9T9fGF6I~7#56X>*)K-$yoxPX19FJoGehdpfL z?u0DKk<{o(e-Bo0C@3wNtM6(eb2XQV@_Al@?as)}l4yb8?gLCY$Z>cS7@#iaNI-E& zbtbdsTqZAqW@rPIn!&TL;er1iTq5$0uBAgRO(k}pE%zPiNgh%^x^a?pi^O5B9!e&&Q zVN_Rgh}=(G^`TUw+@p_!!9-X*i0HB`sb^gH!So!h>O>vAP?#PLxQY%FmxD$V-e>E1 zX1N^>^^2RP=m>`p#FdmS#TGSYj3l|N)oLE9pe0QC9j zZ)AG+1$u_Im|5E<>dcy$T{ma4$f&vm&CVu>s=2kt6Fv64?TU)vRs?9t=JI?yzm~qN zshO0@K<1oe-!+H1s+-_i2o;K{kiYi|pm@fr8O z>xFk;|Ko4^wtWMrd$+S5zx76OmhQjvUj3{8*FUS@@z);B&%3{mKk)lMIOc~ww;q1a zi`$zYd5s_Y*6$dPUVnqU_w3~DGw28Jzde3_6z43?U3E9R_A_?v#dA03j;;5m z&XbxGyHllIlRS5Wb7BmV@%B`KE$wPzpJJ zCZ)5`)qO6UyP&465YQbX$r6;anD!YKLnhfbC|((=J4a9WvES%mHq&a(LRROtk~>_4TS>`WgUG z7&}lk1HFMOcwpP98dngmcWI-XE(IL*7@8v zAK(U!A|?r+p8;{`dWl1%7N?f9PGPcRfd3#om--ip8!` zy`9E(0=bn1uC@x;NsW2;1h{vq&-!hVQen5y?l}W-!4C}45^US-wCKW@0lb!c}L-B>0AFEIpdc@KI1(^Ej$ttRPck_K!WE(Ocj8c z>mA9tnD?u!f3*&ErIoKqf*ZlGh!O-x-#9AOf56>eL~yHHP8an`6?6_7(@JuuxyVQ! zdM1&^bkXMUmoRD50a~lg#vU7rMXT}8GJ5W54=A_o4wDCc@Ttf3SwXSB#cPBq#GqGU zCPYWL+N4&gbT4|OGZ{({XL6;9Maq?EcbcXAXy5+~c?AHyr;M46;L(uli1U5VaOv6w z%)S(Tdaa*aL+3g94^2uXpPMacZ(#0+l7W!(?L=R-3d0QQ>7zn|9Up_5<2_taB| zAD;yDzNe_?&!17`R2>gI4D3pj!q}~z{>r8}4thCQ(Y*kcL`jfhAn zYA0~kXB4?3KldU6)+Y0YWzD1uD`>h!Fdn~VL@JAem0&fF&q5ZHE6uJ9R{E|-3LHws z*D~y|Rb z#|oB~>8z-LgLUJg(V}`-DhqFIKf(1}s#ZPU3WLrLV6AeyE2q_!WE#l~*E{hB9!T<) zmIvnfyOqL;-_Q!i%6p4y0$xv-P2xaJDg9nL7|F}Yl!JX0bUN#%;X+epU-mGe0s0U) zOkeVRhi?&=ebDO$Bi{+*zk(>t40HGzkpp=h0t?xrhJ6gkV=Y0K5GAhTz0$7W!*;RF z#|0q?H&^}IL7nnQ7)6p-7}#Q=L#=faMiqGm%BiHJ0OfVN4lF1PuBAIz?F)V-v`LT< z7BzDC3P?ev=dZJxHXlf^a)%@QBmE9A(r&>VK#>nI>s&!e8X4VL0dWbkJ$z+rqK3hb zRzcb=1d)h(nYaQ(^|Aj~RmIDXks-n?E61fSNgV2)PW50c#<$YDw&Djnl@C`$)?hL& zV4KjUEJ2_SV3&ei_LbMhh#KO225O)9NnddPxBvfs@JW5*m5EQjcIIoJeB7t&!MDEm z%n{X#&-X9!|nBkt5e~0RT?MggrQRj+lG;SO-vWjE2LuCJvM6AnA(>$@hZul z4s$5bD?a>*|WC0eb-$B=kvsDsJnnOg?U!@+<=L41vVOOHkrScz|=`7nFuBie02{?nP^~82DNT&LQW~g&7KU9a$_fBRN0#d#3&Xv} z6^AyXG+IkaZM8W(v#efnI#rN`YQ=3ib_2xb?9&~EFDnCojI$KlRuD2>!#b{}HF(^fRen z^9Nt&fB4z|OfP=pztVW0aQhkW(RlZBs;x$KT!aYJ$nM<;T2r&JsBZVjecq3Ie?M~q z_dBDCyB*uPf%6VN|1RKv{Z`>4U-wPqGoRC^=iU!pjjf8PZDWmrM=wcN?|Fa!!9VfY z`}=S7-aq_jzwcjO-<)uD+v0Ftn!_Eku@`ZYKg!kau>~8IN8gnz`WW%d84j)^`jL?; zv2uPj9ZN@&#H7Oh{3IM!Q34T!Kp?c`d}JL;1COHX;3FTPOO5z?^q=~6nA=P>pECv>tpYdb`kehLD0mX}Cegt1quGUwjC03SGlexb3 zJ1ig*5*k>E+{msh-}i`u6;Wk$t+A7GenA*}MB$;L&);O6Blic`pqyhI_;%$jR-?ME zu%>;jioc1e;6nl!&Yw`rwp3WEEGZTH;A@3NFI}qHgN4Cy;J<}G6z^$IOkIRa)&UyG zHK-2YpPa$PzQx{f7=y0rvQVjb2fvLvOqP*YvEmTH6luIa$h?lI7YfFuOVR6QyWw{O z?-4B(NN|0v%sKe=U;++di?{^i$Y|^@7|MITj5wikjuz>7JrI9_t0M*q3BH-8yC|*1(+Sr2wm;8wE`e))p zxj|`adsX*1@)Ink#z(K2Tf%QzNoWnck&W-~Ulm3NZ7-T5USu)Z zg*<&Xq7Q)dl&!7K{GEx4kPHLq?f1e}UL^fqEHO*Z57zOGB#@AOwDMeCQDv&(mx`(} zqK-sAAooa8Rsj@^V;(M5hb&BF`czh>*QtLAPU^4(DEWE%jxGQ3^#E-mhgr0p;BuMy zhN0zjZqEhh9k4kD#oq|2YJ=N@l}1jS{NxPq|X zkwW%#X0#KIeLU7TL(wXI=hc^But)`p;B+D;rUMm~By)nAxwl%YHo?UEVa=ass=!B5 zt88K}QaKU^mUb)UiH%2>JOT zp1T!SVy{sj*6#oF3i78;v(th5;sq!i^*B`C5f%X(`BaoWU6E!2Yt)GqC$4X>5&bT_ z{_?Cx3Y)H;7iQBkQ7z2^L%3CxGfPo|R3Z`#o8Vf*>E{#|^N*DPdaZ>N1>*yO1amE* zmS+)3S#z-CXZ>~BrxqCGDF&+pZ=QkA{Pg?(Na$C;`=fXI(#f>Z+t?lCyd;H zx+QO~d3AGBH_zPS!Tr&<_XZx^4%}Q9uCI%?C(tbbhN(9DoU0Mk$A7KGZ26tLx}o%L z5HoBu7tEaLoijb$vK5|M+Rx&Ad*aERFz>|kF3h>JHP|{t^KK0RsUpEf6-iPmP&Oj0 z%oHW2+|bkly4gox-DWw)uI3=V2cPRY~@M0-|oSg?JEBzfwHIS|K|qO zSnt$+HzH$vrKUl9i>}H!_VIkjdga4U_|m`pr0RClZ~W@d<=_7cAHX}WTEF&}eh>fl zZ~WVwKlI_cdST%7fp?*vy*7?1safPGZa{Mc##VcWog44`;HT85y{qu%TcRI@hpS8h zS6A$tYv3RLPu~T+`7g)Kr+gvCcGDdDfrsW3T|Ieuj(2^|r`4bSeIMu_dQG4Ar~e<{ z`PJ`x_l>T%s!HOz)bJ}I0YZ>U!J8`y52)olT0$!r)(#Oo&dw$MUVz+*$g03!FxprN zYVeV{#QWlXNY_@HaJ%jT<=oID3dOLqIlf=#tfCZCb({9fKqBjL1+7d_yz zBKdu~m;;ju0n5Gu<5X`X$F@pU#0lgKLBJepGl_`*e$b@EI{Q|^NGV_`1rf#!*?8`v zl#q`$3|tyO54-A&&pnDPPnF0O(>y>w96w_n^?82XN1iVaqjry4H6=0 zO(2!?lYxYR{H)|0Br`Pe?GhF|X{KIW5#&@;U!z>QY1<3r2DhBd}=5n@#A zYT%=M{k){$$xDHki|h!_rvS_XF;X<;;pc{iTW@2+U7h_I?8gv|h{^LMN%tPdk!sWm zYXRVk3{?J{SnT&As(Q8dD6LG2C&37*F_06|31eqZ``@n}m_lSnbs^aAge%GP^_DL* zi!YmHv8RAd&yK~%T)akDwo4+Dd-j86n9(vubmCp;Br0X<%|MsJ8duf_(*+zp1gWUc z_2TG7%`8M$^=wYZcthg+?4HwA|^%^%!0(3KLMk13aQq+NRq+yGZ6=)_Y|oFlxK{raf3NAk9%1T{lyt$ z&s9mk9D*xZ6j$()7ZD4q|DWkmIqEb7P@97Q7Gs>h8|yia9Kh~-njait8}l5 zO)l%WreYk_TPBT0PMD?jtw`cxMAwyP#IV_f*G|?u2cS{t9A?4_yxx@U0?@IUNw}I@ zYx5F|2n%dL(+8(f2tyzoyC4MO@-N_etrw89-dhVAg%Pr#);?TvptYowMDZXpR^MQP zLq|#(ps@&-Re|osa1cijU#vaW;kFW6n3=Xt(C<-r>Y4+_Op55jEGy3{GCU@+KTMle zvV3^%O-sbWs&-_UhG9BlM9|1_So=KpY+qMgI&U)IUc#!@EJ#obs04JFt#4pV%d$`? zHs*mq7us?ylxZi^y6-u%^n`vck@-KUsb@|TzxF?V59@s&(Ei$60#7(?qpq(C zwQYLk#kVnEd4-&3^wo{8@pJ-D_rZI&INjdh_TF_pxWDQ4e&PPTfd^O6>FR{-M2-_N zh7^?YJ#nDa?-NFqoX#H&os$qq1$xbR9TdcMyFV;ChjzubQ4eRg!A3R+^5bG zr`yU1LF^I5hx1*|bd@4KNdznS@aRIO(_K%8G%fJ`d30 zKP)YG3$P_*@~V6Lm!6gDD9b4OtC^%vBYr#RwBg~2MR@z#Neq_Cx8=0GJX4WfkH)>HOZV)o)aN@ z-gmqmjRC4INsZx)ny#v)d1isdL>Q0ja-$xX!4(@E;@xBL#qWE}H@@c~KKSq6$AA0x zzo>r6FTBB@`Kx#O%Kz{m;k*CJKPIlvxcb!R!ROxr^2Cz&k4}ReE;+HPS=4;{F}HU< zhadmNS9tTGg(#=tf>O@Us!{mJM;mYa+iwT%y$ig#=Q}S*93c1J-xlxQD164h_d)*g zU;k`>&qN((slolK${UkSlZwGwt1_9RZ?j47s3g{hVo&)SV_CcQ8=DAqn2H&n z*}SVN#TJEJPa>j{Co5IRiWOH<(OmZuqkM2=98-QXc+ftIEE7jtW#Ch@B>#BKxZ)0XA5eN5f)&vbRZGLytI<%Upt&|kWej65XrQz6ms-EKp3_Wmn0Zz%c%(Mv z_z4`>wa7E&bSV0t8J=7u)>MdPjnONA?YMC))lX%8uNcF`fdv6qj+^zh+Afw?$5H6b z^KE#)9xEn_rNi9)sUTvNj-RpHkt^g>hziUjkM_vuoD%J|xYRu6n*^)U(@I3|uR{PI zlGEVH@y9BD-+y`ymIOP(zT?=JM-I$oq192FI4CRFp;whn4R<8_X9S_Sd**oqp82jk zeJ^Yg7;Q&#^N9M+i7J%&rYC>Tzh#G%q+s=Id>u|j#=y8snbM@GO{JoXCVFcb9bQ0 zzk}irp`|=%KqEx&$a+x@7oq1g`xebM)##qStagw7K`;ttIJ=Xp>f-8|DllcnbEc8p ztrTH>L1<3kY`59PAlvj#2P3OA_Pg?rX# zrqB9VBx0)my@a$7koUJ9!jh-0dAC}4JnS-edC%qDDkhq2*Y8>#8CoPwX`QR1$EjnS zmt=Msm?U}b)jrTqrLTXiH8VSF zBf)j|K_)0Uj@R$%opS*B#LLnn$gR)N5~Pp zQK05w8Y3X@Ap5@k%ri3GtnrLmCqQEPsbf8285nf6=5CNRcj&Gg|Lzw)_q)F1V~^&` zuh03+Y0mHcuGjGm-v|AMFK)c&r~fF-x2`0KW0X*vwr$`vSPviWc>Co~0uNue8{>8Z za0plTP*>OB^^I9^3-gR|7X!#OXv1w6-B_DF|hhmwny*wml zoY=XNFz4e`OWY?$(@J!JyTE;y_Pf%4Cp~$x<9u%Id-r)4=aa@fH|Cj`XL5OZ!&zP#jX?T2E<)jMW)Zw+rZMlnOmD{f^udV0poecRhjDv`DMbd&_DbNt!8?`aSQo zR}Q+_@q17grkg!MP4sLx1x(02icrs%CZV2Oll3&AKF1s6POUY4W6gctVKYFLuyfB5kCJbGa(rt-cpLs|n@q7nje)U@x5l6c9z?@J|$;Da?n6`VMQQ0H2T zQB=m`4#4u;@uAI5`>F^`VdFSdYHKw@NwBB;>9OMdq1ZCMsdynRgRTm`JbWhAs8tAB z=SOPi)%kn)oN$#B3zz|j(>Z*u)ym-dB4K8(B{iIghx*_Sk@&e1`kJ{er%SzH;9UpFlL3~86us7Qv;nJAWD=wi>=^J#pOp#75Qq89RvL~9HLW}j z&5q?0=3KfRJ5v#?yhqLKMbQ3Wt6&Hm=75+=B-3%tdF@YOzs`H{x>Y)wMrtMe8U_{0Md>97nvLgu~b?xUI1A9(x$HQf$jkUED_J zxhVJNoFo(Ka)QC?#*5!u+6mZzJvdT9z$M>CaPO)y5^XO&0Blbf^SdxU(DWoWHe!OD z=bZb~?gEHJa5_gQ=Q*ZYybhg2A7*rj1ee1=7#0tjnp>4MU{$|Y(pDNCEf;3dO3?fQ zA{Q}95|+*mtd;aYzWYYtQzV0KU@*%7p1VrNY9U- zNSlEIFuCOMunK@-lfpnBMj?mHCry8O5FMw-C2u*%7YaC&Rw6 z=+S6gvhUn`s*@%J{e0bt=}l7QV2&+4B0L@@76WAk0K%w`yoZB#^eRN0Z)+qMtT0@w z$9h$Y6O^p(ak5sfu==1JmuHDpi}t;$fErw>d)zrICy!w)!X|fa0~`nAs8sV;@Bsk1 zx^Vg;a!{rvH6hs1WsmArJW?XGOCU0HsHYOctVxBMYb=J9 zm$eP#?+g3E^@Z{b1V7pd7I_f{k`TIFK{8{zjFiUFn&OJO!Eo0IfVfn!XQYEAKLr zOdmEK23Ps}4q-wF2jzVHcTdddm??E{0I0W~OnmTz_g{bS{nOw5mTx=PbN4mA`P&|% zNc@Wb=pBvw@4^1o894^rxv_27PMhw|-Jg8vP0ZIn0n8_AZo=t`*iOLJeT?gCZTGHu z|NaU0AB=f@eZtNCjaM6Rb=p){gJT27Ng6fe-nB9fLqaMo?{}4xEK=J#yk}&86P?nQ zd|sllMzo2O=Y}+Ec2C~ztn;~X?j3tb$hqc3%z{ekId^{O%0LTM-LrrKt8HYoCtF*T zRRHGz6lG8nEwQVXAVU`1ncZW{LzN0+3G-dkZW_ya!HF!HQ!D2n#73r9 z2%rZOxfP+C;#!!Qc;f8e+h^{CcCtgLcN{OZD-0by1;DJ_%n|44L?YJ7rKkDEWz>=1kk*jH|EaQzmmI{f$P_xR`^Owo606UXh zt5NQx=cuC!SI4C~oRB7Wi-1~cTIFcjQZ=ifQ5>}>5ZY2{16V_eN1pEB=cX<~rN(Bw zIn`_l=LXIbYBgpz=2`vP5AA&G#kcDNKk)_pjz9VN_(flFPyhYjcpJa#=Y4}d^0og& zeAgB0NB+p-v(Esvft#8q5@TSTw(fn7`RHwa>c98J`1wEQS$y<|gty)#uJ5sLZqVa| z>MP)rZvmft@sX-NAq=xB1;|PU7EAMP-_d)a#=Y@>_;o+x?z7%8@Mr$gN50|7+-~k& z3)1G-vCW9vLVD8w^Hd2F5rHdl?)$ymVceq_3rcjAb@fOb1+4@lmPf z%o=btz6XsTi_pox$JJ&SCFF#Az&-23o(x#{f(sv|B42&TqTSljz-H9gw85f15Uf0# zD^_jHt{h2tmGr>JuOu-H|70WxzQ_xL=gbs@Mc)NOO84dSHZGA&h2=@_y8<9 zLRSMdpxxKXVD_bM&{7i|m`Ru5xtv!v%^o%8@4 zZ-tB^bw}`h6iulOtvypv1#6-rufJemuJe?@@`zd{f6YFoI${sDLsOcahL zVgp-Oe&mE=bw{p^wag%vYT7kmf z>+^$Vv4P8dt^dp6tM(dJLKx!w->a&TA5;#`UI1VP;chG$mV4LZM7n~S{M?YSlC?IG za9D*&v^HoFSW}l-tm~1?wJ!A3A@bC|2v}1oYnXX=!17aA?6egmAyKkyb3-Qlffyf} zw6uFMftiGT74>{Mm%V^E;mRYxIssG1J?lv7KohdHcDWWYho=M;{>2oMeD7wkBI345 z%*4QxyNRFw)1Loz-}dn{-n_e;|KdCE=4U@AyzfVUO7)Wx?k039JYvjW>NH$Sh#=+U%>6CHQhW@F0rZA_wOmq)IP`-~t>u#KTB{#h8Jy2}o`Qj=;8 z<;v0M@+3e&VLYd2wtIDG!s(tDP7H#DH5$=IBHGc|T|Kc$@+57&;S|N9nh7C!x9yaH zIo%)C3Nz8*Y(dS$i~?q9&J?G1WGoLOeJhXn^C+uJq)}M#-j=qWCO-H*@+(VAET1BuWeb)t6cmg)t2)A=;t|4zC*;8-VMks%)e&hEtUdz*XA> z@FW~v*iQZh3bad(y#p%Ii)1vgsscEK9ylz5IK>?SBN`d{z7rpWfrWpMpBwjwGOk z8dXH^ufHXnr+&fj`MLe`zI5pt_uv1%>;LR4U%f z#heS#tPt-PrGTU;09|Gom8#@AACT%Sv!jye5Qp8c@u`x4_~0{QVflOnBZtod4?e(3 z#yC<0$#as9vvr+zB#;!~klz>Q4?D{)pbNpg!A0IRxkE4cu?k&Hbmp(ELK*Y2O^9}s z*#&S_`gyq*G%m8}J^voY-DaIrl@ET!!e6zH=_L5UIEjRVDVSK40`T%~v6hV%bgP4m za&FNVJc~st*9D^>NnW|kq*~t}Q@HgmQjA(8g#&x#I-TJ8{Ug=s0_MO)g&WMW<+X4j zZjaquN`)p4^~NfQamgc&mzrx^#1$2FNn2>;W5fg-bSPqxBJP?vwJ?s8W*+!xy;lIo zXJHlVYN=XMlycn5JrWvEt(66-S8k;8;akaXXUYZOk#lxsZRh>wDx((Fsvu#VBnyfH z#o2k37L7 zLQ7830?3yVyPPyxrZhlw5~C#^hQ-<=AfjC0&9c7e{$vRW-wMH4hbmBB`gN zoEPL8Z4${v2uy$P5qZoubWT6Rgq)7_%WeOHlQ7xrj}V4j^|T3-uuBOZz%o=bvy|$2WHe(X zSB#r$j8rdv`Du13ILG+wRX)Hl;rzZy}pMjPB9* zm-o9ge#>E+Ma`NpC`WHv+jTN-Op`*{d>QE$G3l^>nD5= zHSP_aA5XF;yySHwoTwx7-OKeoB_n37-^nZc0%i-X~RLKi)E|@;{4e!JIcxS zS+War2hVf%eirsSaF;mG>isPAuG*)dSvkfbRhOE^{#3xYYs@Xd^N&i*NFvVWlFrX= zwtJu2gI0W53@VV5=PE^2(BK+VO0xr?+6qTlJZ?#%1Wu^C+yfp^vICks(*@SbrfE$% z&u{EK70nFE0TR1hDoRXbhL9*eS28|g!7XuXJRKlfRK7qmkF&|lnYz)_ zT_T!|xeMJ=6Wvc{J^aL@di09s=ltZ)z*qhG&&DtRifjClKfmKoe%W8a!*BW~@Hz1G z{&zQS9$>Ig>^4_^#@$P=sjj#B^?&h~&p-4BKAl$uyz+|l##@~4x&hw*0`Tr1`3%Xa z{qY^$Zw-LNb~+KXH$%6YPo(|PiJ$w^KeYdbuXt{L*GJ};{k?B~@n=8(&XbS4vTPq| z#jGTxtCv@Y?B5!Z<(_}oLh3TD$O5IDIjOqiP#OuV*Ea$@l$`LVmj~dID?5HyfU|8( zcR-C*$gHxYf1O_~#v?Uwy8vo<1~*NWp@3!ZyYQox*NY?|hC+R>B->OJ1Y?$3%XsxF z=Xo?7zf7nbk^A#kTc=HUDut@UHJyYee^_NvP(&+M%B_}5sA7Z&17Xz4zJRv3)7s4p zwqE`)O9NOTPP}<|klx0`Is5l~hPd-JJy;6Lcq0sunOUM3#-x0L*DVyJYY0Xeb{xp{!|>MOBX zNRp3U-<_T!!2SUA#*ODbVi@GlY&l3(L)P!)g|EaXRlt1LD!Vn5g+CJx3>%#=RoW4l z=jRPGj$})*0$@5Ab9kkjjL8(`*+KgAFN$0Jz%c~D4*kwm{&f6{V6#Y#--h){cX-jz4kIL1A@a(yIW z>Hk@k?&VCXUc;6e%ek_!Wn_iFpV<`qanC*o))Fl0sE~%@@nKDv#OV&vk#%x7nVM*- zJo`>h7K!Jc1tiaS@ z6-HR=wO;)ED}CLiAnkv@@w*;wn+!&ON;nm&9s4Vz9SLFZxg;s~=P zl~@U)%auOFC}G?3{>y;902CXw8FURL*m7M*bUi~>zSKY!FGJ31k&D1KEKeM=5!NVT zYz3Y+VB2syl~h-_|LhGu^V4rW{9pbrkNbspU-JvU;2r(u>rcpsZ{F>9yAR?jcp4Y$ zw25_vYG}UliP!Py<(I`4wcSvs2f)=c;O#rXn`ig&;2pTSz2$>@C){3dy!W8$_GVz) z$g5NDr%~8yqA-1Z=$HYDqib>s`-ISKpVSNl)&Og24(}0_WhCT+$tIuXYM<$I;mMtN z_oR7u*Vxt3W~~1edd}i(k7I_oLDPP1F&0ztGzemYI0>pp6;x1>z%DZJf#{;NcR-$Y z$B5CY>K(#esWnR>nWo2rRn9n>vD#}oW-$GGWV}0ig4!oDPOLPExfe03+U#b@iPwM# z?X>?(vkdqM?q`QRnbgoua27gAeQCG3LJOR3hULCa8?g4k=?OQuol%&)i~`)}lKeZ- zIb{`YaE-PmaRsL_K5eZLYY~%VH+h0nh1sr;g*9*%)mUcm>v0 z7~4c$0kv5My`99dk>d)rZNzrkaoSL0>lzy{2I)xxXpUlW=h(1$g+Lf6vN#A8O9PXm zGCCOTairyf%_ySaF%qPfVecSo%dY|4om@MTE`hu8Qx{e3vu|p)II)*D&xC&R_S@sp z$Is`h4}1W>?Dzi^{pY{^2H)@l;xGOW{zZM)|MWMZ(?@H(@Q(9*_C1)VQ_an`WYk^l zpZIvsmtPq_=~w^z=Rf+Fe+qu>uY3-l{v5`KUlzaYm%hLke$L;6#*Zz1;-5}Ed=nDX z=N;!qbM#$reRsy=Cw=wguIJrbM4#WWefh8ZlI=JD+!Oxq|J@J$&p-6iTe$yB;i?8s z8*wVX*_F7D5FVqZjrD5fVZz3^uy3J^HlGNN|FGmf2xzczs){*U3Ktb}eGH5NY}`^^ zbQRZJMq8NxVN@Ln@S*l>Q)oznR!F5=ELsqYRCsC`&(N#ous@a$a&IxU7y3(eYSS1lG?*$>M+dfp8 zu2cH`8CESv{Zzvd;vt@4^AgjK;+YW1y46?KJ}LMa>z$Tc!j9qq0k@##`syffbk>0J zT^naarJ{x3q2T)@zl}?E7}iv|sIc(%D#lnXS2C6~!8n~yfrqCOff}ekox|oT#+ZtrKf4;+1gA_zdF34>u%| z>oiecL?NN92j@>wPc)u-rpfz|v}jcuqhL_Wy0TtI(Dn|hUY=PnsU+uU6%wO@r!)IE z$^-A?TKHl;k7OHDem^!N&6Rn(`uRrbg0hcor?0T&dspmFUDNkTpV+OJM+)~Y2{dOx57UO=1OcM7h zL&0?igJc{MFZDo$<#9~9xM?2jZZ@kBfuUTfmw>$nQYAyTJFSQ89*>S$V6Ho%?T}pq zdaBRJFSBV9bd0cIIiR^B9qLGaq4WZpFieu_Z1|9#q>@`mkQkSQr8|WRuQD{stQ zV&X+>YkI+g+c*+;W)GGWIhioaKVNItFE&>wt1C7N)C~E6BdMB^!E2olWpkmU+R#AP z>FCvTuM{t1lSni+t7cMBDdHe`d>C(sxhGJbVnC06^Z>V099tJ@mV!K2KNIs@n8QU! z1!D~>(QX&)Ex2l$QDGD2i0D0Eruy($U{JzAteV)&L;^wKn{GUxuTHgt`*t? zKE(sL1qS*sws_qK18Cx8jF2_~AUPO|_Q!ec;Tga1XTI-ueAcIKKk$jy?&jl%Q#v>1 zTMw_;=h?CbgvGAGIj*ky-t7&x8sn`;=YI8LFS6f!5!7z3cRMwIXN~_pXVX>uo!2g{y7D)n=-;ie0Q8UdLk+4u+x>adInc*1&KRvq)CQ zbWdtbb^`;W4>O{!-lZq!*7*)S?}&ZZm_0RhwE1*5(A9Hebwk6Xv}7L!$$GDD%TZbE z0*Bq(n}Qz}dwK-QMiBcLCLCb}flrzZ1009X#9*hlsN*FK&e{%Ie2D0d7^N|+Y8wr9 zXTP`gj#J|FK4nRZ`jafP)zmVy08hv~=|iKa-J6UMx;LNn&D4L5Qn`nc)wYQFOaRc* zzT|(Fyq`Xgb^&|4Wk3LWTzp6oF|<%yIVCG2Aqil`wMgrR9*zJ_}jnqqpv8%23k)wX4%Y6_S_ zLu#uGRpplRfMFvtKhCZ$O!v@WXJJ=M)8>`lf&=^AetPS>UV$E+`4fNBm*Fq})%W9z ze-!nrf5j{PH-F1Fpx*w$)75(@yz@CsZ&iTXta0Le>#XxfUOGMV!l(A<|LUKGU+|m% zo&LE$^#R`V{#yy0dimS>?(Iiop6 z@B8W>_$SZY5Z9+hZDkLZTK-A?k3}BaC!#_GILSj18x-{;4iA^3cfNuz%U&dO%LYaT zb6{Z^V>2>>`7)8d=fxvHPxiX zvt33m$ApX_IDGD=cN+4U$=oJQ6?Po|k+8D=rdsUZr*nkT1bV#MNIKo2ZQJ~Ms{vT>Eo=IRm{TNtuD%wXSJtkDq@CYj5f*kQJ?%ulEl z_@|jdMCxdGnB>P~i$@I>ss|9sl4r+W9La%-n{B8S!49*A{jQXQ0h3;-mYRo2V_|3< zJwiS-8Y5(nB|{scy~UbU@9%&m`|ZBECDk(N;HXv_{`@$!x>}sJ4H2C=pO*@+*~scc za(U@9%eq3YkF{P^p=o(52T@ZPp5W}au%>-22@-^|Wm$F%^YfLAIjA2+a*v`q+B-ZV z)G32%1GK^2w7BfCUQGCgrI=aqB-E?{LtG6Hk|@`rvoKn~EU4VCw&Z2*g;L^6L34Qh zCCDwN7t;svl62WDhZtE00k@ExQ#7pU9;=!el8Q0N*^e9W__GS@T3O!{%-(8P2b~1I zVbXy%zBHsaDc2f6*Wwu?j|>nHAlWDgOWgxpJWfE61+@)9J8F=z$Bj41IC3A2D1tZ- zGSglftH~@J_tVdoNacEUQ^R{P`H%mbf3L|f@qN56E1sk1;HtRdaXDWC3%G*?YNXR%YP#1wH`I9-6ylef9vj zFlit$2OS`$(TaAupdzT6UZ7S40lT0(IQiE?bU7I()>uGhWCKFQ`)7Agkp+uHFx?Y& zHKm>&OT*;PAH!SYDfyWifiOU{8bJlRR1JoJWP=vS*3#e=28d0-sKQplDNxif+deQ` zV)M4xWFCP?fUpT1r7}&l3+{y3_Xjr{a%&<@@pQQGdzT{EZ*{aqoPG@#i*jPOYkhXc8d6 ze=wC*7RVFu)Oqbj!fCmB2ml{@I!I}n#ZHpuF~eMmVkfDKcg|6{II5I;6p^XmbX>~C zkO}^IC6P1PgCt#*Vwa-A^ZCFv2?547n`Ut1<_OinzBzv>7w5W-5AB7*kPJD0Df4}) zh92LA;MXVsSsRv`6)J2K7;Yi*`dv!Oob#5Y&){E^4=bTUlHMFBu;h5d>g66F26v2b zh3HF52LL~Zyq`mE&(+86ceIKTm9rZfxz{|uRK%^M8OEQOc$&?rZcip+fjS*60LGs) z;~g`)I_82AVqkf3MZ$yS%d|`&nL=YFVd$(2*8%;OtNnkM{(j?i4gjgz8vk#8XAP{m z_Ee*$$q~0?r0vuo<5=Iz){*f}$m2nJlzdH6T*o#O|SP+(y?Gf@QPDO$x^TI{RvP4dl-BYn z%kx8RK>W14eyrSe`!5fiI-U9@{|H&B6PEv-6-Wik4fYT+>&CptnEYVGoW3?1*eZ*& zX?DlgX8~S9%cWmoc%k=XV)G1}=Zjkvu*pN!#JQB%uO=gUy zSsf<8R9?RP|DAE+keGB{Mx#+1z>$hY#oA)a^;eQKT>5hqHe~_vF$8k={ckIP080+G zRe)1iK%)>#l3f8NtXIynfT8G;ot%b{K|mNap!F{3cQH!G;y0NRrXg~zDnd2gOEZv) zr;}I?GrG+jSRo81Wn}|_ZOdoU(yN9r2eI6c{G5{bR6MGyVq61k!`}~dh$5h?Q*|{X z-kb+{bU5&jcA%&UaUN`X6|qRECQxIdYj@mC&BZyPpWoHi5L3kl4@r<)Er~I_UMj>% zPbaZXD8q&tjLcaehg9$}-;NwX^r4hUIvG~B>e!!slm-Z_jl=l^lN{uRqFuP>A=W3 zr+~`-&F#;%|J7Mv=SbNT1QTSNZJB#{yk3PJZ=Z|4zTy2{HB)VB16m+4!6&8Ne|^zT zq5WCgXe>!JS53xAERBadTa`zAao|4~%Q#`b3Ql7@Vl#{@8}Wdgm~kv>rhs z=I&99QyYLK?Va6{=Hc#WFtjJxJ@?*sPbSZIjr|F6p3*+sPSUe6^+dn`X>Pk~s4;+= zmT_~p+pZ_J`)m@?mDUAFBRhW{J1@|Qg!H6oPPL{~LYP$TKy_>EQUjiWP@KhZnfc9{ znoBF%WD{zcl%pD5cXkKlf?3H^r>|I?_IY(*3N$J7P8{p<4D@6)kXfX6a2>Dx-+LwW zlO{T!PWYcBaxa5{Xd90T|6NY=Lu5EF$-f{xK_WkebGanau&zaNqtIn?vKcBMSykS) z{}+}MK8@B_6QY##4>&~|bV8H@@J)ZSuE1s{!?Bxf;^`kHFHjYZH2&9%W{P5^Q{zl z61PE+yA{xd_|1$Y6HT|rC1E&zj-D;FW|bPM9qcA$uI1`^D7?o|MTxW{-@vn;kU2u z-8yj`v>wDbVVxyMEej-#&uT}Z+`5*k7Z+KOM2>J3PZTf;8a`XbFvchVM?-(k<~rQQ zXYdg(Qet{_k5cY0)mZ|sKCG>L9CDp+ffK$()J<#-sh$*75W<3u4z+T3guKG?p)W=6bF~Ao(!^!4)8gQcR{oiVwD*022TOiSKj<xXy+u#<#fY)V#9%`5>eHv? zssqF!X`m@L_FuY!h6g9b)=SzTi((acgMu&o)dG6--1p)vD( z*CFN}q$CVy4-$ijF;{POWKel7QP_iRc@p9rFAv5_l^2nUFGkJ8ix5LBclDc4=*CIR z-DrHAi$+(bHm5 zopm@Ff1bisrW5oOj(NZct9AT;nhg}~QPKWv2bf&El`%Gkj^ zoM}z+>^W$dWWIKq>F)CTXNob(fw|UyVq|Als7VCJA;{mO-rYJg{QM(fas0|$R?nID zGpI6iz20BXc_^Vcf%62Od-gtl;ZJ$bPkZe#_z(X1lk+D(`Wi})IV7DRlrTpPZl}T8 z2I}gBQPq0`uf6;P=Z}0}^Zd}Iag@LlP*=q5gWm2xz}4+l-#=}*xh;m5q)Pw+002ou zK~&wp*>HQa;rc{fZ-tw!a4NZVxi0V8S*O7fCb}#!0_JR2%1XopYl6+r%)CM`g3bt* zDC}qToT$6Kd47D>lk>zpOZ(ZtWj}jjG}QF;h$NEj%|Xp>ZSY)R%ReP*O$w2H?bw(= z%=IU`S3R+Nc41Ugz-~W$xya-Fc{U&2Xtc%TppL)`?wUTIo9@XZ=A^9Bii%+t(cnC% zC9+%EE&nVl71%uo?q`kC3 zr$uC8S{uooz=8$JE1>Khx19pc?t5R4G^B#*)^lJlP*}d#OEa@dtdZy(RHLnP$KgL+ z$`k-2G!W_kH!?pO2}gd90=5QjurxtR#Sq#S``yRzfQ2qyRF56959p_Si1=Oq#fQI*`EN0ei7PU*%wrgg#^`kF zbk2Hp`mmF@CTh4Rdo!jFfrgPjaYVSYD!4tPGBrL@&a5gUyxxOPu-+em-3GnVZWNem zYt5A(3GB@T>+C~b9otgBzpUR?WC6l|6yW({WyRy1!7#zlEMQ+_F-_FCCtr?&TJ62T z1bra`SNkic@$75?`!xO}aa!sF<@Z|9O#XwV)bMw(eUR65^cNO>F-|qr)z%gMbaK#ai5w&n!RXIOPg4YN3$&|Fl|jJqO1Z4Mr5F<=G6Y~C91IJKGkR%E|^ zNbbQxdeDN;c27|@Qx=EFQ2G9Q;LN}s7O)w@kR#A&8H)gigTM%3K@VTT8kkg@b902j zZ3l`&Vx&cOWRZmoXry9YA!%wJRWSFyDny25?hM54BDn9^p?Ebr87$b0&SK9-Yrx+! z5?W1itmJNu2$41e<}gAokOa_E08f}SqignbVbc&W2Zr?Mz+U%PaV)J7Sm_{aLk}I5 z{pwtq~F9N;=IVhd5Q0GlGG%le;NlHziOdd(?5`sR~7Ppp%`2W!C!0ZZ?F ze+1AxWj{J`oMFiY#ei`0XZp@Dt$K%BXe<+4_tHQr^%Hx*(!~XM71{?hqn0Ie|E^qA zdgg6>LsS&t2vL^@3c&%{;+Ul*ioMC^1Lv5-s^PU(Nih`iqI`f$t6R<|o>lp2D}VtH z5QPO@`;>Z3o;ipo=jma3dr=tx<;ucfhy?oZ+{-mZfN*8VKNAY}!dU#tVtpMq95X#6 z4Pu`E+V_oFZqJ@G@nsR0sRMd!>9p|FshaEkQqFXU z7OGp+9>+`}WuUP)lgf6_?pE~_v;*gM<^Rc(MmOf&U1JAExWf!pg4^E7y?59B+?U93 zLM?Tx$<~fmi7f(CW#{7-XMw72d47Y*7rA2rgzPHW-BMd;heDOuJFq{$Odi`H#yr`TAcTb$9tSO(J2UCgOaTYyxqCsm^h2G)pY6{pD{i%_D5_kuh zIS)kugtQ01J8HK-mv>lQdj8!SKwk)4@$ayJy8I5^yaAk@F-mD;-~f%Ha>mO}dRqOzWu8j6==_ zam~w+G?#fS2#nUWTeUSFyR^5ecg2u(PZForoO|y*@Ak<#&p5x;c>M5M@BQ&VQos36 z{Mi2TpK-tc=pTAh-}tM(y6TPZN4@WP^)t_?ZiY@bYz)phhUVB@h&kq9H{=Crdka>n zh&q+7A6)5lv*F$|_xB?E(cP2o?m9o-c>Ths;H!S;r{e89eCA*Kn;-p(=bjxn@5^ha zP_>zm&8Y`^>3eMe;K{GD{Kz{-qEeKrtoXjT+6@NX)k3S58gscnh1~V4TBdvmFQubG zr{OALp}-nhCP0soge1McWlYDotaUt{L}8=bgM4f%=6DMeI6>#;66P4uM;4Fs2LP%H zb1eL11<@L(=hb0O&Am8skru{BEGOw8{rA=Av=z*9<=3W|=Gh$n%0;itfv*}K=SQE} zy*as5S~)!0v5xAkiHhV05=L#o(9;>OF5+43igpoYd5!@EZA;U%aGhHztVCs0|EX5nQ3>E7+zGjGn4+vM0n8LxJLJ@o zbvtg=rTUIMzs<#r%)3Y_ipIDyjw_V!&zI&i(3A!mDdeqoq)KZ6-6pl#j>QW;UZ;V1 zcCR#_oQy46+xhx4ROOr4HgjajtO4Pkx3}h{v;t`lG z?(ZwvP(C}!E}V3f~ z)>492Fc|3rh3O~pH7|DB$%s~qg4qhodRK1_D^jW?lrqeUtw0us<+NDI3z7^jwlvSb z6c`sW1F&SR^8VcBZwYzQ69333|ifjUu7NXlZ%Caa1RD})eM4_Xs)QWY#(M-u7l_hg3ytNZ;Um@oiiCAv`RQd~+99yKns%^M9aI=eb+CK4e|97aX9 z5nH|E)9)TS4u3U6;G};)WBs^Jd^kw@t3Ae23VU9W)S)hWBh?j#m@|mLg$4`ByMfS{ zPpyW)cL-~o9%6(9Ekl|Fy{zYP9B>TS$)Oh^Fc6S+?6Da2Cgxaiq=h|EH9$6y~Nvt82 zA>V;QS`xC)^DNDNyZ6wB`b!B=SXi;U@OURr53cZ~UwHke-@4oQ|NU2w`PM6+U~Q=0 zw-6{>7YAxP)poUUyT4)Eig$P78!tV^lb1dU-n|XFQ zIUw5*O&0dqtqGlX*7=FIM*SY&fr!N)u9?$9bt>+ zSR=C7CHpz<5pT*7g7Vll+PffDAWYrLHOCU6;S*C0Pk^Dq3t1xBrBd&s8=TXXhn^yu zRi2?rvCX#r{yHbm-ot5!+_n4VMU(D?KY*2{?_y z25@Y^RqA|B4y@1jv;r#xwgOJP5CT_;Ed#1Jq~b&{#J^6C`BlVeWsQq}paG(hC@@so zGV_CeM|F@u1V#^)TmrA$QCXBuxA7Dz^9~&^tl1)DON*);MFD?>O~{BuW_qxS@{XM| zRnWaSTp^^2Bvn(u+$XRL``*x;m~##YW6mB;p`T3Q?hHJ9!na@Cd3yKr<17AeKbF7Y z*S-_K_kX#=pZkShJLiYLjd=g_#oK3yakbU9Ic20D$lw)fY%I&LEm|}43rZSIUSD0+ z_kYJH@bas#Z_mE>og_J)JUQ>@9`oUA!Uw+OL;LUjPoBeH`-WHl@(+IW$vE8*HEN|1 zuFQ?{w3V0^&q#^a8R|A^%l9F;9T9<}q;ad;fxzK&dlE+lZQ)wU#I{o1WHZTTlK7CF zeO#Tw2W6R1NrWn@whA5PBF+eL;Y7`K1i)4GWrk}>QMpyM*J40Svib>+yu4apX^sK04%xtia$~5ksD}vCzgrzQpZ-} zGt#or?J^*AL6b`vsEpk+=5$%37l}_Hns0wCt4ge@Ca=I=YSbk^`d0jK<2t6;KYP5v6m7moaE-D?T6jh{gz2k`%? zXU+haOpAXCNUTW(k;0qI2$9nZZ|Tx>y2!)BdybVB=u7_So$S9`t;!V!Vu)BK^+=wp zDALukGO0YxZ56OX+PkfV<@N?%RIZEcldRnEIsleafM6BBr#NJz=l!{vD55R&u!B98 zRGj%>uO%qv2$OcsPepL00ktZ|;^l!M+p_XrgNU~n5(tJr4W>45KILUKme(_hT zPP#rCB?_?&Bpnd?Q1vdRdmZ#<_@*iyx-mtB4v@6oPc@-FuhSDmg7lJ{?RESu;633= z0$tJG8_E;EyeP0eF}ueT`p+93El*M6lBG&Hey<@$C^_`q1gXn~e==lYLPPxSg=yZ79m z8$SyYWZb6PNqtSPjt&v9W=2b8pRR=cRz-?+oWkGv$k{*ut=ZViw_*b2J3*W2xlPS4)! z?fwb3_cz_U-f(+O+*}b?H|*_H*iI#GK#l5Q!z4pqt^yi+lGQ+KN7iOjLa(DM`$w3B z&H@P9vdr-9uEE}0caMSjxN*MQYc?8F=$f-JP*Qt5Hvyapj`RVC>Q3B;3Ybmxp0957 zfS}esJqF6&1!!0CJoKs9nlogeCfg%k5QEiH#PDwSIAa2`ie?dYiJ6@_0dws=O_NRP z{cgs~FY!Zyw6_(?4fKR&>uA@XjU?zR9|!i54SKu|V>n?%HuE={$rKdoZykOy3dH%S z69l5yg-W*(pzD`AE?PbwKNohc)PhIjnt;PxaHT)%^VTk8pkpH^9YUKiC?5;VAp>A7 zh`u6ligIAXCGoH0_aYolC4~gGhLgg`+{(8x0WDWF`jv*>jV}lY6r(eZyPvHuwiYm5<{k!fK%a__dd`+{Q4ij*ZepCLSrLu?_B|R zchz&R^CQj2`%VA+U-@I^=X_e}tNz0GeQl|6eeGxM0)6n$ZX5|JQrtz{y0Ox`wKF_2 zRYexqPN>!hHw14Ui4)32qPCL3XH%ADlA88JO8{=?shn@DRWR`TaeP;#-uAy?56>*` z;6tU&XV?{;>o`(Dy(6{cqk73Ca>#iDtR&Ydm=%qcmf;X0#X}X~^F7C~+n})As6UfZ;EOiw^Ch)+Q%YLNXuX*%^hfTpT zdQEH2dk&e+lIMo=lS7)F+v0Fu5;EGDAv`JBaGQmoE~MV#7U3wK8}R#!UBi;&k8;>h zWv{20XCJ8_zP`}Gzrh@!6EaiC>;4iBoh&$d(UH=5jk3=ADCi6d7}CZ z*acyRKpZ2h$66msQXaX!S&Jw+hq0S3O3z9T*davbz6>Mh<@q1%e@yZ6p55z@Rf_`| z52Uk>HNIM(5zu&V+k5|Yj$YrgIy$sUFS2p!2#7h z9Z=-!n84<#06uj4hgU~A!MH`HV-Kq!;#rC=b@&Kq)NT2igBb= z%;jQ~D75=GM%d{j)~io-ZESL+0_vc4h%cv;${KMqMIFhClMJ^ubS?9lwWyfgk!#u3 z-x|KG6mX3@5w}aU4|U2gh*P^|dCmxu$Sp`2aLnbVUwJ+T%qubN8c(s`2kGm;tQomb z9(gbIYZB+k)v#I-=31TtCNXE5aLH5zVR{bgI+NreXErYD?I1+#QGgmgfV(hfWb6vW zZbeS!ih$Ja%hC!CeqS?jDKYE_^uol*th%hd*|?j9eG2<*%)5y_ih>=)KHcBkYRpOOvyUL# zO`P|(#8b{yl>Wq-us_wlJXA#u6-o!3H3!7%S`Y_wqJ0s!ib75CwW}3;I<-hClcg*tjz-wn0vF~|4P3)66@4y)* zNV@&=eHS!+fBO_BToE~Q9D8$bp?CUOppLw+<>74OH2ckmJMO>xS^cChy8f?Te7)-5 ze)P0Idi51v@wMKrZ=2Uw+-`1kdggwQ+nc?%0h}Nf`_0D_AN&3{@aW?oCeE*m+GqD< zV`~@UCFsOW)d>;1!`cqvOtj3y?A?&<%Cw8UPxP+k?nm$C(v)V;QnxgBaTHA8O2BE@ zq`au~B6bxtYAb9MYHOj+djpRi&3^LeY^i>ux~I+-=o=N!M z-D$BYc3eKA_dE4jja}*IVgqBhK&4u<8&A}_+cEDZwD;`RKD*KT)I3YtOKR5M2vNj+ zPlC}?n!DtxyZQ|7YVGGK-St$@z4u++=UII>(ZKBL-Las1_U!3J!1KyR$?5na?Pt$# zRg0P}6mY-T!;X^Uu`&zR&Od_E}94)5Mol*E_e<6tB?R=-D+- zG(P4eyH^JNz7f? zcT-h!0zEz2c$Uxfo{hWNM=mzgADoJl&o|kEL(}uxCycbs{|bA<=hpP(g^A!jFss|Y zv!99Xi3zKaRw6iiVS`X?usPjCS)QMQoF=hrVn1-F6R8P%B+WTY9@g^Wv1(+`-=l#& z{w=vdGg0bV8WAD#VjG=RVTKP?*d!T!wt5Ok8p#sS-CQZl}4t3!2 zJA!-<{%1S>BlsS2BI-)=1Y+K26k-l~M_Zur|vR6CEBBv>>*ptbHdESJl}-f+PT1dTRo>g{xrr2n{r*@=QR?D%W_5EP zN(n_$opUZ^_)2Ljis6|gzab6F^+$5QRM(+Z;WmD<+95g0oJSF6I_%rQZ_e98L2=>c0~0!uk|niM)qQph$Qzs z<$;6`p%=~3)4~lrRTBEfXfHbSjH=}1sxd4fuNn3+zq6{c3?bmUg{vCGgsTS(i)zzD zMdvR~a3gA5wEG`!50+b!Aee(sP>y={j1{Cjm-N(VC5JL&j8;;+V;U zP(X~{)@Y|J7RJ9J>|7l9yf|r^PiK*i+@oT~dFcCF=dnSoQL9*@t*Ftp`z`)xbdJ1Sn728O*x?`ZCa z<1CI6ry@Z%>0!6eakRlik>_^=GuMRI*J9@U&U6r0tje^5%00SgYtfeOX$zr6rPAMd z2j0K2Ex>YIg?9f;>D^oM)Uf&P|LS~SdIED-zyRj%wM&y(HN5vmIXGICvJ4!zOy4p) zT5ubOJ-6KVWhwi`Y*IMq88}$_`IwZnQIVjzgRtiZYssw=R@VCy01mA2e9G%{T-m+n z>ME?U)0q;{**|Ev04Y8S7!yMU>Kr1^Aj)YGutxSEwO+J?wIY`@1?kUK`o~ZwuOTtG z9zdVN?584;*c?6>>>c(`5uieiLifZjjfW2(;phC+_x;Z6f%7;1^M}_jzVu`}KYDbk zO(HlGqcm=|aeaG*`!^@n)i%apKYX(5%^!FPc=Zzk9*rVU+g5#Ysee0N_w~&!ukLNS zy+5}5_lNG?+i-QW;pzljZ|u`maVzvTx@r`*Z6mEWBqUOhpD(Iqy@&gBeMVB%m>r=< zvrKk*8W0*ap*dT-=Gf1T-dT?)YTvssfhm%mO0rbYRvJaQfKSJbscDo1RMEp2T4f-@ zo^uE&!_NVlhee?^Y0iM!i|RND(c-BXPeMCe8pR3KAjbfgmT$H+&naQpnWt-%Ra6FB z`#vF}$QEl^FlklQO8e~D9ZMq)RmTU;3IMhQ?3FXjx-EJ}ptFQ?D7|Tml@jThn-SBV zDeSbmDr!jwK6$5}3H0U^=4dnvO+0DJt?BaND4@0#;c(I6(6FkC)Rwc$3tFb}eX>@? zMv_Z}NmZvA35AUw7*BXG+Q^WHG29Qk5n~&~MrsqVQC$+;!)GuxiX%E9mr115`iW84 zMqvZlR5?(Vpsmm#2ge4B{tMVh`;1Cs6xCx8r$WM)ZwL+1rbWfUIf|ZAQ(dGa6~N8s zSruy3pu^l~H$F8c%hLlLrMs=R?zbQBU;l0A`oUMxU-Q-9Q6K)t-&6OVyJ4RTtVuk2*mtkp@kjma zpT7U6Uw*^C^>v^4OQ&(d0C5%YEjGpwY8#%)le2%+>S>mb?y{j$)o{xveSQnma@-1- z#&QyWs>Da*%Nnk#N564Nh%{XYOG0GyW)tQae9WBx4igL0rC~rqall8gb!m=`zEcsI*$~7GL9vRsvDu(V$x7YwSudz#_nY^L%9Alyf z3)GbLP1wW`bvo97B5d0M%*s4Muo(F5%)Bw0e{XvYS60khl z_&d+?qJUocou6MF`(Hy8|5idUG`z!d^>ZaCup^o;8x}!hgRU@)-)omF+;_+*I-Ma|mcy-nDwa*UcJO$$?yKjy0-+ma=Q%aI=#n9LEv&V39l1qrkk z8jnQCYh^7OV#@uiT&Y;O>gl3IBG5&a=uO`1FoWf9k+Ca;jLV3ZS?x}cYW>M7kDJ}{ zSfh|Rc^`tMh;U`Tu*}lx(uWNPSjEM*LSA4=qjHI0CO#}#OUKwQ$847h{D+HWRvmi&!ca;HU>x%RfkH?FAxYyWf$`6r0u(!Z9JossyMom}&-co0II z*^469tW)AxGTvW#{+*vKWsi>imENMLDk`a}a#&y~5RS@%+4zGIPMgopyaV}~fMa<& zF(=a^fE*n84EXs?l*tef=vWYF5gUm|S|Gw}S#v)mWKCBF(k1475_1iPQ9qV$V%l+k<-;9I}t)hBO%@=>Ey+D-*hEQ}f_UEN&cbbGDS)o9kJyS?h=mmcBC z$38ar_zml_MOUn^@1t+;jk*~y)CeV`3s~u!;2dx@pMR`3WHEb6sOm2Q}Y>I43)jK6?^zDC%B#4Am z1ntOQQOvSQQYbYu$#qJzRrwiI+Nfd06FBz?Vvaa}vnY+ysV?W@;u3*ovDMH%to4RR zM65NY386*yW_iC-Htxn@r>`b@goKq1|56?VQWr|#JZh~gxnEGOW6hZZ%$a4apA#5u z7MfnkWxPqxYW0+R?6iz8b*e#O!@y`K(OVntR;vf?igI$9g4?D{04SW=Ufi3&D}tk0 zRp6Zcca7C(@CxC3gyA_IKv`AY3wy2_J zZFI7R0jdW`%C=4p94r*Eu~_P)8WP!4MS>^VF@d8n(h=FtBZ?F@s$vhj&J+7d2Ka!I zNKRKNCOGfT-RJYv-fXFAHq!XNoV zKiKEjU#aVN-{-zpjd8BK*Iw(pz8b&yw|vR|fp_A4U-$Jd{j3M~jbBa!2VP-XNopw) zLsomb&3Zmdg?Z^8wwY|m^b`k@exhRNMG>3|QIE)*5#k^icj6%RE!W&)H+jJqHaZFZ zVI2jHRoB2e>&hnAPF9ojcgX0{VU&zuO_tsN*WY_&+Q8A5TxDr_+pteep&&-o%WDad zgEs~!Pvxq0?915L`L?fr1lJ)I=!|TNp|O))ElldNE0zxipr~5CLsErW_ z#=X3A<~iB6N`K+7BtGT$xAL81*l0VUHH%q!{=(5C-&Oz@Dh7-T-!Gi&^L?y}bds&5 zP{6`Zgzx{DbQXMnJV!cNCBYaxLQI=x>dBpCIQR?#G@ZW`0FBM9*>s`7`BRk61qhq} zJrH@l_kx1&*uH;rSdI@J1%dI&B2sW9yNv3kg5T{ek#&)^IMy{_9P5)YG_4grS8j6P zrc}ALo*mJ(#h(CvzV#FtfE2%&ld8R*g8FbVG+fWZYZ4PNzvIPxDEPisYLxNry;Rr1 zr&u_x0QSJLhV;}5Kfgoo)_(rZ@0j<`tbc$1%+DBn=jj3KyO8!>zn|qDrd4R?hCS^S zqu^YqEA4^7$?LP3cu1hyEeveO7bfob`|D5@nD~N#&56M9orWny9#|g`z>G&2l^9)Y z&Xir;z^d9gfM``eYeHSFguA5YN>+BOCI6Kh@FGy**z8!+{^q(1tam+1o;&Kgk^{(q z*^qK)0@^Tp1ikgs1z+;66MT7+lpm z%oelbtWdCth)Yf(Tbz|9a5(`hSf*WLHD_c|m8;H&tHGwca5IQY`acqXd?^Y+w^SX9 zo9~f}c;R>6Lz1bLR~xop68AOY(J_WmVhCo`Ty-AGhRpMFmAWBLOyeM1L`9S;!Es;$%%DteH;O0~*_uDPc3NDUMVHhiY`fFPhKsud6R2DuVnYH6SYL~l{TT0q&K=e-C`6EXzDZ?aiIP>KDB5%enX6*M9SPd+n7s#r-YEM>^peRjjL%uJ7I8`ldMQq@wij(Rse| z@wZy9ziiF09j(Z^B5t1%uWx$0xreKpft!0*xPLo%@3wGzz47|GblQZ|iP|=MfsNA; zx8^2_+E>NA1&qUU1u6KWTVBqx$#lCI>(jkQ*n(Y{YGxb{HRr_LxzXpd_HK2H-A$Wk z7K@YEM~b3aXxo(;b!HGtQ16s5p`DWb0YIQ;x#w`QGk1sJXbo@#*=V#TZ5YvQ&OALn zD!1uDQrlwCm2=5g9_0y-Jxz zAf5Q@TW!Vw0c?@`NFpzHSNUuF>itYFyU4tNcu*c`g59mXZnhOWf$E zgBsiG0(k+Mo*fNqMhH|NaIN5!sz%x2Kcm(?@T;&17+oG-6+6{s3do?8A)+=PD4uH% zo_xZYA)nwjP$h0#WOGBH8iTD7a8MMt>S2+HSS^~Ql_7d#F}DIKT9REL5*tK_^MH*R)r^!TylhHdHRHgG-pfQ)vKks z&!guK^^P-kO{nP%xhT_y2AAb zKNEHTo!Ho{Q&DxowsF>0vBng6Q`jFp=FJJ?`F8?8;!{uk9iIUI{(tvxx=xRI^R8Pp zuDOlJ+vAVD)>qHJpTGS#y`O*OAH4dtZ$6xL|Hds)BiN|cm_^WY$_wDg>I07o?yAxa zTEe}~DyuIS-t!XBktFJvX%FzgUtq;G1Ge^uff6ayCin5@d>r*u1sJ=(DA5|>Bu$@{ z3n#(CVp$YhVAA#2oxf<5RiRMa^W7U?r&y4i|z3 zFBNUU!1(Y9>!(PjT6W64@?P ziXx_CMo8{QKF4y~iOC3)cO%crsi99hpC$78UTi{g1!SMCHhQ8{nCf#@|_j> zB$-Iny%%GG^%q$6zty*0*<4OER-k|xNp%=Mf0m^at8XUNL)O8FNj7(ysYU3#lm$t6 z{KacmdQrl`J?j`)cbA^&N|k)IKCICrO8J1Rw;zT;L?r%`M}gg512Hy3CrK=551Eig zcdpWD9+~!RH0V;N>FGWt&_;3!iIAQvvGabBxvLC`gRn_afF#NB)mv8HOCDZ*JWmI| zKJHf`T0k46u}7e2`TIJ7VG=zVJh|SzaqC2ZF^5b8!T~pXU1+cC^*WilEPUq`awn^3 zrZiIU5rGUEkz=jaPZJ2;7NB}R1`G&MyTsTJItXs&=P(ilAe<4EOh?+@9b>o<9g#iv z6t@43q0kzUVvO$l$zbp#*6l+qCWRnYCFoM|D05Nh%Y5WTw7CJn@80aS4|O~0`#ml- z0D2-Z`XFLDB*c+dglTT+Qfv$;bCoI@`lJAz!$-Swgqmi8y+N{$NLLBwlJ)6O%h)r- z2LWby=8#NG#bU0!aoWt$Dj$Mt&amN&_b;=;Gs&#AJ}WuW?zW%Ss*7HHHIzL?`guBX z^bta=aPfV1ydG9NLa+BLw|7`5;XXXU_pj-*5^}6r``AXQ-k*N0n%#}jjW-_?&%F1U zM_>8{*MILHf9ILs`5lkV&K78{NNm%k5O)IB{={S6_Ui9)J9$ zuD4!iV**vB?Ft%KsN3tI>ua8FZ*+S#`u3*q;AY_Zin!T|?S- z_3$$C6caX^tcK$Gpqe?LV+hv(uBx#Wae`B#D`$k*2yB8* zbRTMZj>jmsJPk{^e6BQWQ#%tV6rEnXfr%Z*b%E?a5g-8t!@M1ZqQ^{@B>+QPiA|wr zk%R^%^Y(0(rXbF0Qrujaqq;Jf$yoqd!4=cKXfBu1&A=duYMV|vkgKpjr&q09H>{jl>+dgS*Ks@_3tQ+y zoXZM>qA^hrq_1S**Ho{40SpGfA#PoYLgwOJ-E1fA%DEWw9v9eqR1-N}aWt$kcD0&s zkq(yruX9oD_P37NvM1^caGBN!=m=g`5$R}~Y?*{tAGgD(bB+Iu$=Io&1Hfz-TNYQD z5(tLzv+o&607yW$zZi{aDWz}#dtw2`#p~$?dR5Niar6MT6UhWE26rwCHA9$Saj!b4 zhr%IV*T6DpmOZ={ew*I3@q}1P36o1l>IJv19N(wa z8r{c<ePXn}RPF5ruT|`SB$?m!H3iP+!OZV?g7*Njk6T ztdn?D9DW74H%%Q1A*F~k`;y-t>${f)ZuYluv{~3n*7;VXw{h<$dY_K%Qhpbgcbw~5 zD(012Ed065xJ?Kaz%eiz$Uqz~$67ts>9viFSf&Y4B*q44$kj6BB=@Vrpywuni>>m` z9X`h}R<&y}l&H&wN?(_Xm|@LA$2(|LV|B**`Yo|Vf+NZdiW5RZ4=r{O2HOlzVg{1_fX>&0F?W00nBK7f$X8TaL3MPPK}` z%_13CCa+fcIB*nsra;C8j=~|nPd|-^Tv>^tg1b_?jzF=P{ne*W5XYF3oc5K|$7{hd zxytij>r?U2K;EO)p<3?YGh1K2#vaGvpdpa%0qg-V&eX|bQ&#g;>U+D}IP0ZB5;gbUr>X-r*jUise#_1 zw;w*iul_}!^5u`u_4sdp^TYb??|4Pk4{NYylS(51Pp2zg-M^3PdspH%)RX=8qccDG zL!TUY{Z-Y>V9%n)%`I`dKezkWeRX>^PPeDJcYB4~`zPGHzv=qkz|Dy&jBzzsbwbrv z&02kWgxtc6E>sUeI=M+J^t#Aa!C96^m+WrMFhp;8RE4^6#-yg_rJVQ1-9FK0bx)zs zdx@cOiqPmL3r)8N&slK6l~bdU94^wuiG8BFp3=e)Xzc19YJfE{CNpkul|cO78VhH# z;R%ETTx|K+$Xp|Uw9Oczq z^3FhD;-bh*xvzGp1vNvrgBTPk@5&Qh^VtBLWEH>_g%b)_4P50!9nvuw;ELh~)-}Kl zWqBEdO#wCXOlCJg`y6vH({UcME0YGf6~*Y0p-RLK6 z#oGs4m9&kT*f!&WQz_hOz2hG0+)lFJ`~2wly$Aa5zvdNv$KUz(zPdj#Zmw(G4DAme zL#+DU|M3ftKK5Gu^l$!WZ-3^y9z+UWL}lnUqnc#!sn6BMsiG!Zw3B#{1Povv#L=gZ zRT-BVHup#qwfTI}u^wF%TkWVEtJ-R^>QIm&_<5AEZuYXP$vz*zd}7uWa=!Oa`m^g& zsgL@L;rlA%+Kx)O%E|^HLbaT6!mmI<49}yhbYhW1T-+5+?t< zViXn()~4}qO=1S06a}1um)iJ!`9hU4GH$zIFbf9SFJ`1IG}UlL9k?(c7k=B|J=vA^ zZR3x@^pB^a8tta*m_=7mtAJsh5Vazj6{wY2yK6EiRzd|DKam+37aXs`YW;M?3^}v$ zqC%#z%UqrlV6d}4-|NTMZ2vO^>*K(8tGd2${~~Ox1N3h&Ad?k*!{9q>- zWc@Iv3tVRO**eP{(h8BbCsp#0g>{WD(YV< z&4cR5^SQJ&Ib}a2_(}A%5bey7oa%nXX|zWj?8gH7vEKlRFhvVIBr%2){)Lx}?{&yr zlmJm(`TzcCA4Hbe3Jen%x$|P;*}1)ZRzSJ(UVVLDSj8mRi`>hL>LeCsBr6k^{7~&; zsw8h-F$0P_rqQL>5IsJRi{W7iS{;^|1~hXw5$bFwKzR z=cV_VYtF zvr^u*a!VJvpY=@frer3Zgr%HrX=pZ<(`m{_7dDd)t_iRHd6^}(pQLcO%0?91k$vN- z_vf{O3u`Ro`}f?oi94TeoIcVb~b+U3>3y z&ez<&?!DEis#KjsNkT{n)PTUaEDS|&n$Q}sAqfdQ3Hb37Cj=V<#*h#vIL48PAK3&5 zolzVR#sph5>X3v`52`AuN~$W=?eG2CbIxAxocS@vT>Gd>rQ3Yx?7i08%x26n$J9Fs z5YYXKf_w3_&$Us!Y%{FCp?+-}231bcRIpBAB5e~3Qm5tV$6-`jm9?~Lin z(rjjg_dRi9;DDY^V53b@$K=O+zh+Nu7)^RX3jVI=VJ3Nf1+0^Ey~cWVoVBh{t!@^QjG3j8I>D(V zG^CV1S(7#DsJ+jstdv~es5!-~oS{*CrcTwYg7Rl%OMM}so_-YwK$20b_GVO;u0=7k zh&2I~{D7Pl5-N_WQhyvXGR#(z8!6OmRj@)wQksYL}ewj zR#rl@7N;&4r^*0oCR|TeB4yaI`tQrbhjQcJ=@#j7J4)D0EW2E`)rvR)u0F9rDO@yS znT~o~-?L(*;lt)KK~f6zT=D`Is@ZB3uuEb$fn602Bo+`0fn5MQ0B6u(>GN3{63Sr2e7o4`R8LX>)RHo~YF zi)@x^?Y7O;6j3<8OQG?FVnr>k*cN~oHFcB{s=8NJVT>e$MGQN3AvMC{c~Xtm`+D+}(|j{x81>zw%dIa zV^`HMP*zZf<2SLg08(S$!ZDtFqJ0%%ALmn=&LaH7iXbLmZEH<=L-jdBBvWP3q+!FmRMwtYv zc%?zmlK-(bqM=Cvs{vhArq(~r4sIr2$ChPbxo%^ua$@F~Zld##%?cxIDW4i@c|st%R0j#kg4f43?kfIU&9vNPv2GNqDHHe zKEFVV@tMZG#nkY5kT7X&phtTHhGU;lBHrzdW#|`Cr}(?~*UXj-1?4UL-7zH#s8!qn zxYAze_*wfmQ?avJR<#dN*1Zz2?joPBLY#n3|Fl9@~bb-`;SndH)g&I}v zeO}>useXS;=$cyMaWF_^CYBqCK{-e(|GenmrzA#(VLIU|Md6{Ozoru?uGknt_?zl3YDMM5jhqYHjG6_RLUF;c|b2 z9MilZja~DlZ%Vi+=tLLT91)d1OT{{Y407~Z|4}CcQa+!$gNeleOs-HhRor$b{!M7* z7Nc!+@zh#so^BbCapIgX5Hb-etoeNR`xhEPX#o$MI z0|5>QN_*a|JD82m(|}VOPZ{2r)2KRSlfez3kdx8*lfR>JFEb@jXgb@3kHe(%E`v|0 zd9Ou}Ju3aX+_raaXQQU>OJ;6uG-dlCU}Ny{b>cVw+IRk8tho9oKe+P8zyC8ME+24F z6i3E_L15YKxj!7ZEFKVI?XEBBCZyaePCm@}#>;&2G;E-H5CIGi7Fwi~!O zEI2z1o*yzU&Ib=m;IJTe%fg*)&JxoKYJ&@cBw0BCGwHn{fgo$L>R42_yd&3~WFi<0 z%tEz*!<2A+&Nb$7E;%vQV`4o{RuQol%fj>Fi&-3V>ansY z04OsG9LOkH{Qzr46{E_Daa3?3=bDUSWvx1WIZ5?*>D0`mqBjRMoZ!r`k_t0Zv9#xu z7Bj>Q2r!d1i8;$6VL)XDYYs$t(m@g)9|{1>43w1np>YXH8P`G;SjfT5#g-EE$O2%6 z(A5&>ehc~4F4fIqGNwt@-Sk(W`^x9*kzK}ZzAcz3=1KbC2phRB7LDa4gi=s|3vDo!M zMd~X5ksMeQE@>tJGfc3s=vj;yj74M?39YXvu%Z}M95JM@B9^NXgk(qxp>o77m`r3< zMKxnBK!S^E|EwtFTtmu}&D5H~6eBBw8ZxPY4FaH#8S6SZD>>H*%wwTa=d?&N1}jGm zoo|%17}iIL8fW=${I(B{-})PFk3aW~_wghD$v1(#j^&;2KDANLSX@i^j#2$ z32+-&tN5=g&d#F{xhXCI$xX#w1fNp;3f=n16r&TTBAUTZ$J2!|P7FHPdB-5Ga?wJ} z**@CAkLb+U3L_kDM<}fw2K$PoKd}_=DmD6kw7|`Dm4Wnpts{+^5%eIKG z;>(F(k1lt?rQ>iY(N#~lV+6;UTP#G8al9;03*j`gu^eC8+BJCO0$NiCy9lqCW9a!Z zKnb{RYy<7@FzRYcSk=nMI==;^r(uz>U}c|s|Gh=xIzAktTk5?l+}7dbf96S0&u6$> z!M#HIZeWYSDp%zKEO4f^5n?NTMo*jz8t@JkQvCT@d16ycSFC66k7HKAKtY;O-Z32| z^63_da?IIFrF*yv1R#Jlo3Ei5jzFsbRw=&RG!;s2NkYup-<(SP!|a@L{7=XZFkQth z-$&?~m2T*M3>%t+&wz?AT7x+^mXVyU!IidWQ>y>;0VE(MOxX)Nzv<$mVET00P};RQ zojG(R8tVD({)(FJZ@}uaUt522Brr>|sC@v-i&)i2kZDaK>qE#$ZlHnXvsGOeW`gqJ z4{9d2y6@(8kjqJnz>?f5slLJrt_W4+EqJU81tCr~w?(U*3MHsfCYvE}!ku$E$<-JM zIf=9r@FCX`!X|ELR1mOXVqX^-L!Ag8yg4xgu2go~uHr~=I!Tu@W~)tVWQiJRu@;8K z)`)VgMr$H}BZoMK>M9#lLe;f;M2Y$qeKDy^7@;!|BPB>952IJ4^>8||15T783N0Nr z6B-wn25M#STc8I3V$uF@V->s3258^NX3i;Lrbc88K$k51P(h2Zw6eRjucaO1H8Leo zEHpWU2z^cfx^UFbhJ_00EKew}46@!-AWV-0(PXDWh;OSzcTLj;3)}I4_uF_xM3W8W z1Q5W&+}~Etk_`0UJRCrWmi@0imZ#SO*mt zX#c7K_l-I!*)2O5S7;b=E|rR(TX+bIzjO36uKwNH{>sSHsFh5_(0N+=-Jrg)AQ3qw z%;UY^1A11JJB23}60!9DPH=UHde~i zMK%ZJ+@lh^1sEYPB>WEUYS!lmF+%jUVezFAg~jJ|EQMt$jD=WKj1+Z!mg062Su?Q? zJoWV1y=ULC{LGJj4)Mv)VSV+dKf6Xeo@aLswYzm2ySumY?DoDcp1OlOPu<4Zepkzo zVA$oOd$_*$S|KMm_MY>20MG9bcb}+n>jKL~0CB`_r&E7i)hC`+HEYFMg_=j>U{)Q5 zW}>r7Snm|X9MqF91K^_e3I%C}WsDfA+9VfX3AOyh5{M;HDQKzI(g-EdmMr{ST$bS8 zc4cTXpKQaz793(Bfz=^@CD?PjWD_EE01?XMJ$Y+@xdLhqm15tR2vwS>KI7sT!SF!6 zu?!2ER*W4PmEc6gOlHjrMNS}!0#PT%AeTjVn>$wQ65Nrc*=vYhfID5nI)n<}dnm6B zCU$#*JAjAcvM-FKF!sbUY@+u-h#pVu97!JN4*@so{H_9v5?=(A(j-*BI1*S>;c043 zgp`+_QcAhp>Up$HB0OyX<*DLr9`vI}hq==hTvM^-y>)4%bfWSCH?Ov5Ne-%ja{zlt z8{jO(2skI=45)pf1}i5~36^2ItvAaBn+PICF?O0vxH|-PdjSMoAbI8hhlYi583Ex2 zg+L6Alqw=PmL)VoZjsFy!C`^Y7?m8s(xC$bB*~z}CC6gH^Z@2iTr@^0Bh9R3p>Ws% z#7?aNV=2Z+va&{SE(?g^f<=^qfw{8QEMR5jk+~i@Yu22za?K7(3xiR$vMRaO#MOft zUa z_=k~?aqF;tG3d3y$!F0@{ zIB3KKSy%#Q5+;I$g$dSbu|E0y2&J#XJ{*|>DNNHJPQJswG)f&i18KX@?Yjn*1c=(N zIBJ;ju=xF8kT_zV5<$n>;TTwB2h**Ybo^aPyvx28iZcq1`KXw)s<14;f<%mI-)Wy2 zorEjy89~KoqqU1hAAa7yC{JtID*4U{o4q(sdYmqvOo(i z3$)2oJW=}V(w}b|BOr}R!Uixn-I`infB$}VOeZiw07;MdR>C_55Y(8-2qpL7crY>5 z*}(K)d)<{7W_BzwI~V~yYJ!0B4=R2Re@1Zn9TJ=#73kP}Fys$?MmhD@s@V)PRILI? zs*trxAHu;6g+qyDX|ad4{Mf`4m9lohIOK`ZvMF0!Y5y#hn7YC0Xz?HCZJ~m5>v`1{ z-<^tl^go+Nu)SXy#L@kC%~iibvjWl7&}((HMx=h zRf8Pa|2}&-ukO-R+#J)-)FUYY72C|TAGiUGm{lAlkik!A-zZLexguX{k8oGczKvtl zlwV*@7pMgIFw=!gCp1cKRH-T}qV^cA_R11jfFDc&uF_3zUk+akQCpnM*j?AGUXG1g z#4VXo%#fuZXsZN+=pJoJ81?VhsS>@RPjYA{YP+*PcDAajaTt~5wx9}9%T*y4`L?&x zxIdnXx=!p})D-=laYDRc`caDjR;N>1!{jtT;#w_34x!cTZ?rSWIQS4|Ki~94H$v7( zQI&xk!&rVMMCX_Vy0^iWM7$oUS-koA%)g@UQlbIcW{=R!!P<<1 zrk+v54RwApY=I{Llmrz!KoCPn7a*!olR2f1Al_peomDTZiocEE^>!}x&z0gDPoYg% zZ9%i3#)dNGACgyWmH?UJ%uHLmzRbFtjLmo`jVu5CWLH96ek_&NyH2BOMPldeYpsZY zERSdwFy$ZEmjnTKD6<2q_5k-RF3C76)EU5CAP$LT0csCmS3+-=ax*Q#sOoub!w4OA z_J1J~QxF;p7YvR9Bg4&@St_CeM2!JN6eHZ~$rC#j+wv4+krA1Us>+JYQ5_qhvw5Zl zD2m&(YN#EGg^Xf(76Fl>G8ZPYW~#JPbFyY)UDr&kg>@xst)5v)fqSYTZYk`jtA~jg z7xi2I@cZ#=ereR7_+zi)2mjn(E#A7u?wKd6&JG#NKIfa)#C624`9nXyzTid7Z~y*F z@LZxFkFUX9kh?ST2S0)OSKs}^tlcvl%fjoct9iU8e#h_rNItd03*YpYfBLsR`Rr|A zL~+>}E2rZ%rwzl!B^OHANOj4#Z1+0sFZ&q!6s0;M0R#vy>4{fc4J&QIFwcbuzO+!_X@7&NP6Zf)*~ zwc_{=oi&BdyU##RN2nxPgGk>OZawHY(2NyY+kj5pTF;~3rj5Y^sK@(yMS9x1%C!N8&KQ&0YpaVT|2+1M8fd} zLON_6r#kV6*%_VJ_l+60V!hO~~i`H~(_B_r0 zejnPNzpnml8*7xEi!VxbEw>M(ke*7bkb-J4fG%pYpS{F3*aW;+mA=GI@>T5)A$t{; zWNa6r?-df;iIEPQLP&Pm3{nN#;0OT&I3;qG?kVc`Q=^buF!naArnRM#h!a~YkhS=n zoL;O_hGc-7;TB^dxA!NtFX_EZJ1!7ge~!vQ#z70(i*j`u1TrvNtYq2%my<;hV-qg& zg=@#-8St7puX74hBsUcspDl2lD%MpeQ9LThKyE*7Dwg4v4mLXcwy`u%UsEjo4(+^z zgoMuyK>t0c@LLZtw||Ge4!SnZNedgT9|7dD`A7ZQ4Ms$rENhP-jOxoQLz%hQpoR8O z*9YnIO$ZolXQ^k3E$G|&r_dS?>hsh0Tg<1=pAPaVWb)Z+5Kzxr+nrW`FX2d0(A;;3 zlm19K+ACrcb?E?*1?0RDNH)-8N7OA6S|Zs_jkN^S+^)Ns1YUXT3cv8npZ&})`-)rt zhkyPrYx#j6dw}cv_lT=&X3MPBp_YBbIP9=L+u?9HV`jzWBi8FLKdi@}{WRnHaa0v& z5ixdA%Yk)v3w3s0`}0E{4g+WBdtTgPogYT+c7gpu>~_F@Q2Ma8X@hh(ceLw75raw8 zRCgkBgOGuZ4j<9_BrvL(S-?!JS(PN$nZz~fxFXg$v97BMnx)fPQ8iR<&`p}Gku=GS zn57Q+N;1|EP?=B<^|amSIaS3fHB>XK>^q}Lnfkw&C~F8HQx3pWZ$eIaB5Eq6aRd<^ z5r-|Q&Sy<1k1Q{a4s}Twup`t;U#IFbDzvD3R-hn?5?)~m3{+%_{?M`kpdr*FY!Euu z^UsJ;V*|k+>Ikgtuv2X>YYA3n0K*-?OGj>PDIgA6*xNbKh0q)6rx=3F&~BOPcK=tkqgS@s2i;?z`H3>Nl$crUTv zAMhK0|9kM!UwXiw`m?X_vw!_BgLjj0`$@+B0Pa|ie)26G-t`{-$A9iiM@`_LecvS> zUlMCFa{|vk9en#Uz*vYHA3^0M$cndKxg2kM|1f?Nh=b=GC~<)k zm2#X036Pa+c(uSAb-Y_gq4lp6hi*szMyyhs?cMZodK9cPO3L|2G@3;9Jb3gBb!?Gg zFpyjP2RF*3PqkPJ9cyna%LKYEq&D1EPS&3nAOSqLCm@wLYw}H^+iK}zhReG0yKIob zKkqoXFZ(H}R7|(6Ex29XP9}?i1p_t5=B}#%c1xh|3NSYIgmR8kve(VxVrQoR%2N#E zj5!e4Mi2sy`M0va;|bHuZDA_9MY*+^p!i!oo#+wUfn|I6j=Z*sS<^k!j?Jpki9F>W zbTHLtsHsYdzvQF40^UUqbTYqvPRDonS^wFlCcybqoxltA#5=~>&aeJ#69#vVXG#b( z@l&y{aykK7Eoa`XuDQjH7Mvq*02Mw!@Ml+_kW>8H$$CE<`&>K5Yu`So@29;<6t`mS z2{4M&@vqK3``J|NtM(*1`d!ykzFGm=Ua|~yrT5pZUusn``(?|GnyKm8GpTsdRRevu zeF8hV&)lXn2vBiug#tZzN9j#R4cP9QPO6Wm50df+e{TUqo?2F2q!tj>;EW2c<>&6J zt80>C&k!D3(=_bf6rEZii0G`MOgZg^by9&2y2FRUc||Lbhb@Kj3R^Q9S0yLdjA_rN zhn-fL3QJQ$8v)We^MV_}?Z6&IfeP%Zb_dEDm!-hD&#G&Eu_-yp7&0Z!=da1_B%Ka^ z8QIaCMWABZDGQXJVPm{yGAArX`=sZWcrT1hZFr7*u}us2dlU`fu)zc+Q0zy|Q$i&K z)W=qq5)B;CVVQG#$5(Z_l=Sc0m@tF@cjBBb5xb@g&_GL%+o0Z0BY2vQqD$B7u5A(p zh>eyyuqj_~IY%vdKz-3l*i&e?FQ*V%p_8W;jME;WpV>)Uu(nc*CI(C=UbS7I^m&TS zV-#kty7Ylf9Ik?>kq%$iF1jG8^+pJl-73C)jHtv^6`5A*?lasKbBj&-vmCggMN=g1 zDAe%A#og{?v@?c~-7SIWtkeI?v0byv13LVMaIdH!>j_-=?*s1Yy?^7+6;*bkwD-|KZ#B4Gxhxfhhj@##P1W(hU#_9 zE!nP(&EWIzH*CFhA~8+ZQtuu%+g1JE8`aM1Y+VNhKE#aHd~ps}&HUIbET&ZR^t;vV zj&0G+Y?%qJ#9WC7mn(klFMIw^UmtP&$KUffUj5tytj7mY#}&m<7)x?lYJaxG{_G69 z!-6peW)>ekEIxes^{V@CF!GvXl;ga?vFtg{Z*e(4i^J`6Ufd2|oCVJg;9*bfMsQh1 z#hw@gSQaHW#S?4i7KsTWm-V|KFSsF`3f zBm@W7%ctx2iNZ9waRz&$@g_QyRVFeLHB6C&#Wjo6JS|fnVKkIDMH`Ozhim{gMa?X0 zPZV;RrqgJD^Xn#Hy1@y~OX##68*a07miT}@%TcF$B`}4z$>RcUcJWdN}thU|O@wd+ZA8gb2t5h4Rn zbJ2w$#s)HQ39^NVRe=>wAs%qU+FkXr=S0nw z>LE^=s#+OUg%!w&Q3FyPm{knK*z?h&1!s5f;@|qcZ^u`B$qs+=fAeX)^!aX-gFkMIG$Oc`-f|ELZT}X4n71JU~|p`>^gvMSyv%hewXRbsx3xr*H2)h z+_x9*cKK!&ME7}jLC5}ox&==VS)O88%I78&W9c zF|)OSg|ux9CH9@^`FsS+g*GuA z%KB{juB15-MpM#JR5|zPk=$DQbbfQn_*<{R^=6NYE+3JuZo2v(e)+Ak%1%!k3ehtg zlD05IyEgBm?xbutt&7}Xonlp`2MuO%vwh0Klz%Cgs!lS*RPp}MpmHaTL7wz{8wAB> z2=wo#{}};jgcDB{;O*k;K_|r9k%$vc3(xB3an%%Cg>~%(?#1vyCFvl?#E?!@VI)q+ zd}|Bv%~b+pgf^Vz8WGo~OL@AB$(Rf+c4v}+(HbaubFdGplB~Tqr~o+8gK5vTp?69= zYwLrh*SPzB8f=j&s^YPRPn*)z;hCIEBRu+DLLOy~KC{)3=;^W#)%&dNvHgesZnh!y z<>Ls2Yevuva7rgJq*fW}YJXRiO}He|c!LjU2g#?KfDDZ)9OV|1YICD^YN6*YW&^4# zWkad1es6X0C|_$`v`I$BT#Sgx9ynOTZcL&TgI0 z{b7%qn2(RgeDk%3ynf>q%;SS8CVilm1;zaw`?HM0IrbL^o}cgX?A8wF=S!ZS51bu1 z&kp2nhuV#Sh}u}GTne!=8M9*r%z!#Mt12_V8HJqgvLTOFev&|?{wPa&0&^CwC%CRv z$7HQJalBshm|(36@)D>uBIg#+VkXH*f|>;{z7tUu1g8{GNnloSCJVEwBFGBVN@+qR zk(rpaW=abA)TPxxad;GVW>smxAm^!cQTmRWsS}eP*U~KW#KdYSpiEiH6v`@gMB2j0 z32M&sjp~|pdUD8^a~X>CB5|6ZowhI=LYhtW2i7Pxnv{(sow^jnUqId9VDS`=Y!OId zwW4gaSMg!(**QAYq9f=Q^{ov-kDf;&j!#Px6Q?G$@~u=`*q}npQC8u|LR2t@Gz|t6 z84Q2}!~wv*D$a;F2e2>1Qe1Wb7fdX!NsK7$frzSDk|RXXToymP&t*7+c|+QC2yR8@_QmdDd7jZN;WB zgmmob2q2W`Zm=1A%0Z7^bNuJ5yJ4{{91bOZ>U(!`Qu5U0f*w&$dgaSjob&}+mVF7Liz*#zULaT7+Y+s4^sZs69P6c&3mH!z1PpTOTaj zJ8G>qEw6CQl0Ms^yQggFRM>Sg=DlKHWdK{ajxAwsz{c;c{6U_vhV-@+0_r|@>v}{B zXnQS6Fs9wnu*gIIhYmvH6qJ|o^qYMXz3@}&ox3(f42fT~5o#JnhBwlc;}o4-RbA72 z2+@72uuTMZPi>g$uG?2YdH#THL}XwFH}t1f$2-s$D%q-ydOj0dAaV$|%iKzxkxfgg zO$`&U*DbG;k;#bD2nv*{O^qOF9D_re%^8`zG6ffpq^hK@zMrUDC6tryL+aj+m58+u zhp1)A6s<*w4Pp+xhYe4fH9-;yQ?kpn_UeRuIP?nV^xBVIDJ0yeR#k{`I@ANPosHqd zwyFAnXy)D5a6dRwh5P+{q0I&ndVhm{wXLmN zL#6_@DA?$GZZ3vnGOf?jhN!>J&qvdUB6(uJ05Uk$m}GetXq;L$?8u{?d^(}rE_o-) zzLO;op~B8K1*WARhz4Uy5AC%nQ-uPfWCUQrmC6(Cs*vvGlS5YhFSh%w3Y9~fHmGjd zD4%mzDZRd;us3oqCnu1kUoO3m<aS01h-V|SjaF+MPFZy~Bw{nmx){|pAiHpSi@Z`G&XsuV-QXw(q^%zx3I+ zBI~M_%tR()1V@Zm#x4)%`*D6a19xN0>jjVQA94BlH!wP4^WZOF;BaQ32k^+XcAwolDYq;N01$PIG2-rS*2x}MSL3&O!M}pQaFgb;CL!Ko# za;S&E5l?`qN@6NJ;p&6pd|eeO7;jlyCm=dR5z7H^HQ(gcw5&!rG|zCEfTu8fOWf@o z)*@;#T+T`zZ~up)X$0!x+PTNZK}$TIZnlf?4l3+9$hh(UsM~&iKReS^r%U9TY?r0vs!`0 z;7ASounLTBk%0V{!ZDsOzpi4#5M99Rw9^R+Q@b>Wy-we6bf$lD0G{dL_@pDeqUqF4;aqbrj{VsSfZkFhJB+7kgmf6m{{ob>*+wQ-yUs*1nSul=tVe_aFemHM0pOd|FC z+3-Z$c0Xs3np@KBKgV%uAMxjRlC{Mx`j-Xg7o_{n`!j)c-<2QcLcvI{UKFK|m*>GoNAPr~{IL)B+< zz)poEi-4EzF6h2|c%gFHa;~k-!*M;^8@ZUdq0skJ+qaR>{D2jtNY%{)2Hj}5ncK9RY(N$6sm*yJklmeYqT(8hIys)bUheOa)D_ z4I=1tgA(tv<8D@o?woZD?Hus>CLLRt5sQ zpH25c-g0ZRQAVrtV7oGHXgB1YZ40_y8usV8*-)J)>I`(i1c3+-u7IbWI^@^?{JVeg zhdw>=LqGgx9v{5ERvpKjRk6ezyI99z!TxZl<>FAgvjsT{mshjyy?hVXZ@!kCk1BF9 zV*q0h><={#=e0ZA)$Za@XSWV@>+T-s7lHjgYU~F03vt*lwOg1mP%(zP-6=wW)J@eC zqJ*L(goUgj(XnJ^P85q0EF+Ma6EkT>eXYq{QFT0`=CN>n967I($3$fo*5V{-oXECb znGym~+NaE!tOjC&?nIDka@nDzTbXjQB2zQ;RBx|YGb*v7sOe`Uxlq8F$c2#tq&gh{ z0;~#!Pgy{A&ko5_g`ohJay~ML6R_t=4(?zgudId3x+$AuI7!KhG&+{mSuR^Xw4b6^|_*cZpX z7)waCZ-4JI{0+bBIsA*yXa2)~?{7|Cy^;0edr(h2 zQ)f>`9q+$Y_doXlU+@dQD1XQAzgu^fIsfJNKFI4?;JjajtHAOUVz;Z}?uZCnUaqrt zWA{gY|NHaXe&Fg4{`AkRp@iE?6Eyh-v_E2Br7a*=pRWC+lZIj6+rE$%^Ht%foK1GD zVEVli0D5X9Z1;_8sdC=_JAfWTM?-JUHa3=MH*?ppR!IBcjSAqa5uMN~3E@&sX4}X4 z5&C;OLmdrnM_+%aU{z9eM{R{UbOFG=sr$CsF;%i9;r%5YzjJHk;c!VU`uVY~4bx1` zus;qc#wGkaT8oY^IDi^j^OZoArZKd*U4@Ec!Eo|_s*nn7DaS!(cWm*i)@&;}mVy6{ zji?C#-G*E!WD6@sDYou+>lo7omo~Ev08Ga_Gn|z;VUI4=$2>i=&xVpeGYf_&?@C^^ zrW20Eqmx2GtQ&g~ZUHqjRCy55Rj_odRDK@$lkoZ|Rvw+NIbK)FR=#uG7};QhVva)? z&WFlzn%63@-KowuGh7sPbnVV3pKIp=JSqAEW34h2->g=SzJnwe` zTdPh&g~Fx57F)jZzNm1P+qAAms`Sx{8w*6ZS?@&5Ln8`}fT#*Kj7IiPZ0HG;Y3NJg zd8a4jj-iA^V-wVUhpk%c#mTZjQ77Xt3g}HRr6U?1aMe>UqVQuhO4QQ<(1$`xb26&c znU@ZIIDCQ87dwVcn?ToHXjU3U-j0;fQim~Nv~2?*LZ?BMx#7#}%U|7-MQBcYf@xLz zG~(l9frQ4Y__+;iZ~u&%64!zsn5`RNtKEGcz}6B0g)bYBq4#idWnky#U?sKzWuQ`X zNEffO*2<~yka6$NY^R_$cRP|TQ zG%ZRv3%A6roDuf#p|*O$$q_?U4j&Ku8d3DnpWi>y?&h{?9X)ymK$NFYBt)T` zUhATQqV#uqO)G1gcDKh1Y#`2n{Q2g z>}#I=U!3pp;2(a+BRu$-*Q%}`Br#=0xsce!vfJVOVqb^Dp%w;@$H4uE$9(*`*P|Z1 z3C!!1uEf5;9dI}!4~N>F?Qpi=#reg^+qd?0aTu{*SchHA!y#%J5xa#RvlM383K=b_ zjj^Vx;01umQOa|bag;4dLidpzCstRgc$~mGC)UbZ=Zxc8m21_SS(w^5Rv{uPiijD> zVj)tZ`$a6_uC5|yW}r$fg+Nu#$f~~Hq8^Z(FqNYa9r%Q*wyd&z#0~&~DzzQYrlf*HBHKby31aMs%33!FrcwY(VGq%v=R9;l)C)k?W`rfMM zGKFDBPrgFJaIg-%q$R^?M2e%Rv4yJYgTxZRGPsEa?hDwJhJ_9knp?ftV(v?6?^g%PcY2t*7SsfymwNkbyJYzl?h4N8W~C^}C;}@BH4Y_`(15{~f#Cp3Czu z#<+b8vFwqTm-XgPeYW2B)nCG2|GS>S2<)~MGsCK)ta*SHeE_Q{CWf^t< z-c^0g*StGF{NBUvKl`sg`!~i?*i!u(PB!3bD;@Oq^LKS^D0p`Ot`^Jy%L2aD^yudQ+{_pkbJkI-9wvw^2HI-#*d^$}jzY%zLd`IZ}6N-(Y zL$B!@)8{#$?mEZbln>wPj&6C;u7}gfKm&RD=TgkQT|~$4ovY+c{RkJ-oJ5!JeE;f+ z#Zy~+h1N|Q1{}bxOO7ag{+78r7W3^^%b)>PvjJE`e{aBVE3H>-_q@-11!RAq+^dsw zaH2&6b36Dfx1NHuvECZKV#+z zIV!JL=R*Z2d5wU&_dm5G=tG;jWl(J3F6MSXD~WQEeEE5;}p~dVtWz zCRHWdo)P|iUy{Q1nF_@cu;DNJInm1!GxdB7-`}bYse`NW@(7LZ+2m4Au4!5kdVgU? ziJlDx=eJ>F(3RWt`4R|F8;GI`z4tVG-%8F2Jz}L3;)H3O20s!Z31qZ-Z_nav!@n7u z?YJ1Iauh)a7c!`-a<5ewaY~%q>eFL(rh|g9A&!M+oN&r`6`CDjkjWcYUewXRifd~a z+hQXV7#v$d-`O^A*u5H*$Po!(A~`n4(rdx!HN{3(+?2|r4?yp)fU1fHD{RFrn5jGC z^Ikv()!#LA#@p$fL~a6&BDb(o^n!O=2dbl22YtOBUMB|&upJoAn_#551IK3X2*9J+ z9e#9geh#rY1TN-jWD9HaBis%|fD3dH4VWff0YJxm!x<`lbJ}r2tpv;Py&qsq-QO%c zx}1FC&Qf3br5AtWTfhDBzx|y*{P6mhzw_lKGEui)Bz6I;z}W4I%O3k>@X^AmBlz$V z_0s3><$!k^? zBVZ+>a8s-%(U6gui6ArO*B3C$zJrLUoJ?>&4oI}J&z*oGw)7GEu51{8?9KwSl~Dhi&*6*w;P;m1N;0XPO~ z1(sFwm?J=}HFJU-s9Kf(sX?kL5n*64Xo=ZDE?h7%=UnF)0nE&dQ2($F+pZ`9Pa;|c ze~_4JePv}4mB^4<1WT7nP?Uw5Ggd|hbCv`Nky)c6azQP~nZ=lutYg-|WT-{Iz`gMI zfch33Nf$Mj9h00m7C_`W@pwJM&-*3s=r)(W4d5zVJ-^=|AvX z{qFzZGruyAg^OL{!PT@z<8ZtvPcX39(#l$fV@m>9U8Rhqix2{t(^dYo){k>NR7qJv zZukgp0uWvZ6yYXSrZcjBa9umhn>w-KzZVxpSMm9jh)>Y*cbDl z#DuJAJXb+N7Y7n<>M__|xX~lcF5*Sw9b0^`RhRsE!~T@p`YzkEor;aMb=Gwdr~;B- zB)P>uuz#J#<+feV_Pzy9igxek?EI!WJ_S*nC=3^3oe!lFJ%PQQJi~~;eqU464Eoc) z9z?}N)lhCyg@SAiP$$TgigjTSqT^hZ#}dWiLPs_VO1co$$`YLTek@KT1nMc{4I0>Yg zJE3(~duYFplbcM;7;YP|Z9sv!ZiRXE$6~AWcOYIY70H4E({PG)moAgWmWT_Li42Vg z%;|omLgn;k@PuSwy0WQ*+I0hfreUP$CsWas0$Ex(Zkumn_0&_+3il!vr(V$LM^}p# zN4rAFeq+6GL;R1%syA9R z^z?TX+vW)0ow$LF)ih|J(%VK5(4Fw~=%(3VyM&CAdZ@!dU(wSVMLYbwL8Gy;iPZQX z;6@+0J6}Q2$%VhXi4Q_SQ5*On@`6X|CD4d`Aw2^)4LZ0gkVAI@h4A_+=+U`S!sKW7 zSxLXg)+bd!#wvXU!azoXLu?gQGA+49ILqv_tT{aCfQANnDocGvLX`A;uFX}gP=943 zrCtw%8- zw=5{wnMVJK(*1D{F+47+vQQC~dBjJ*_U<40d;j?H@A@DA$;16ue)x^!v+ujRBd&A7 zZsam*t^@nCU0hupYX5N0|*Y!ma{`G^O|wJ z)Vx^u_;QZ(i>zD6T^!fK^^rIn0y(oDD*-1^g(Qtbi z^D&c^OpwDgJb>Z$09}AJ5)oKN%>qZ*0!Iue2}9&4ju^Tfs_s+_&5N(93PfN;B1i^_ zK#mYEb4Fr>RazrVJ33ZK%2x?x1uzyFz)>hH89W4Hhr~cE3yVvEyNI}36L-6ARTF0! z*oQ2{ArQ|Z@pc3b7^s|BDQ=A7r5XX^Dv4VxEcU)T5{D!hg?%Nj7_~z&FjLdnj8;lT z4wtE0yF+CqITc~mfnXr(aWEdEuw!Ob)FcNp)G%6wYXT!phOLQ=ftA26h^2u0D{vUZ zbbaoSkRYg&)QAoo{ zSSt`!L+QB=F^h9BqnLw?S<;cJwJIWFWLAz~Br`L^+?c3hMqnTlsR;?JS!JXz24WU# zU=(xu=0{R<7$2FMsY{eemnv7a#itFCYHVcfItn-|(>) z|IXDb*D*On=NW;}NEK;(n1z<@)j4o#cn!z9jt`+kFQ;SLPM8cvr{j}m&VuS|R#(I+ zz5|D$CdE6EW;!~Ns~Aqiuq9-<1?I%2f#qaEg$@-bummve-xF&4bnHmjpSr4ABx-@< zJDgNLD(ok1Skpxr$A^GMPG^;#1qpZx)5a1Q9d|nSaI7IAJts7dE9s(^ezmi2yI@_L zt#z>(0z_>4G@KYuD!#>xlZj@RYg~NWQb^|*gAxNy0Tw-qQCbn%fgrZS}extp(C_0E6k|YD&DT63oRxe1oi}jeGGWA>=iKp06r( z2)e#tBc*)K#7Sa9`KtPT`w{`baMEBD%t>_rY?*=3{1OjS(RWjaRCOmMd)xpD9r~{B z12+mCjew@Y$3~OVbWskAsv(6I3!2*AGf_?~yJ~()Ff|IrIh^}UN}(7gOv~Dq$q6(& z_J-eIs2L!UE+~p?oCyJm^U<^6bp^r#cmCw+OVCD_HX!=<*;QX}O!(&(s6$ot8lV|D z3k(9-u(lJ?+0waD9!$g#BSnTspF1cb^fnSjG?vZCF@}*w?Lkf`80<4t8-DDB*&<;^ zPd9Ow?$xelV>ro^Wfhnd0*REHmjMZGs-EFeLXH#5pdBc-ck2D}innMVTlYX0qm5T& zH~E)ApP`l*LO*9`x&;(Ff&_o3?QDm$pq#mVA;{NqBA=oX@oGgPeuu_)3S zVAa@g3Hf|57;a8ugcwSdVu%NrMedh&K;UAVinO$HW-Sp?c%FP3k#7|cZQ9#?31ED0`&okQuf5E^v_5AKzxP@fHeJynW1f&(E$dkru}w;DS~jvcTuD;QkM zU~32%&>V6`Rw0U2ERMk#8Iu95C@u?^IkU)6zb~*1a0M7^CdeqR4)at)3)=;fm8t1l zlNmWE74x7TS0|jDz+{mXm7E+AQIl8(Gc}7KYh5GuJFI!cf}xHu%+lzu$T7tvR*(~p zEQ7&7#i&BYsB>gp^71kZ>)^+J$2;PsS3jM9<`4Y%{NMf6Zygt3{A+zDrdUAN|Gk?Ac-D z<)xCG+*nfbS<_&06B?&|H@iAt(1fF|9*V4`f3|<{i>(>4 z<;#v&R8_RU6W2=&JSawPKi=`N{EwosFaW>#O9ip=`zZ{{(AD z*UPQFJxZ_vnWAqj6*Z>mjv77a&GVXs_mu2pT7C6!e5Q6l`(yjpZd2`aSVvveRH>;O z&?rHkE^BWA*hU_7LOOd_9fK>1kJFfL7wG`S2V}RCh<7zhMFBV5VkuANa?GG(SX<0i zF2=FcrqWty=;Ra)I?yp|_wK_?h?^%d&?6!(e~)GWNB6FW*Wbm&aK)>74Z3LM9IBz4 zt*9c}4iG~iiGd6y(x$XGID!sx8+_pD5gdDO$+owpE9)wvPQa{JZWq8C?LweHv}U&f zoIs6^cO9>Je*nL)V?yO;@=CF_w9{=5bi2B(RBN|Xvy^nNMuqQmx5)V8eYmvj&VPzG z3ZG@1Df~Jv0+xj~x4a60!Ne>$5#^1(@BnJ+kc2Onc)ceoN_N)o1+&u=1xZQR0I+fe zN;7Lgn#QXHVWj9BRh`_0(W7wn6(@rpA!-PFgVPtYPSsH(V#%hLJE+DmeY+7kSJ#bv znuh9x)P2UK;lvpL17jw-qvW*Na3Ax6!3m@boE3(0(z!z$4Q_`~&dSI$PYGw)aKH|& z2~q5ZduN1n)qYD%(WtgX2nitPrra6^od_VKwx3_Cz%hUnxF8mR_kvCQRuTxWNmIlE z?QpdI4Z0w)Ij=Me;bgUKBwf|lp2Sw|ZKYk=5}g$^(!JSN_A03Y;l#SNt7}_3A)O5} z$kf{YI^mvCV5xU;W5l41c_YE@Ei{zfcCaBDIPlo^-(dh6arIil$>%BkKY>>AO|Cuw zsz9`kpzzpyevQ|z>a z-0(p82?ZldO(fKc)J&B=U!COBph20AGAP@@F{HeYJ933va%8tY=<-lg~W; zD(B%)vFupL;y6d_*NOd+<9y-a@opT>j(K(&I6EJ#N*q_z<&j+G;G8w)jABZK-=z#S zrbKw~io%S6LLIX(SV_@4vealJ!juf+sH!!S7z4{p&Vjtnh)D42DzPxJQVjWp((0#u z8f=pgpb~}R?4iX2fEeAfVrqYud_e|kBx(*s%vuW(6}mB0sbmJY%p!ND<0Bb^D)JAa zI;a>U*93T7u>u&8SeB@>96V<+ah@jxaNqv@42pu zC@u%`4mfs)1$mam!7T8=JHUFGd0e>eW`K7BF*3)?9FH%F{qq%gwT@RWlkrvrCuhw% zUS0w-c>DGvthuY}YB(5uPP1ixwjDVqr#(i{)k}Ul`fC0p{ zGoB!71;!exoGreq6_rc|0}F&auK`Y0u17^0F@PkwD6m|ZHI<{I7=a}!W-^(m)s2TL zbAn;yse-{mNb8|ymc1o|%p7F6MKCflk%%Z_b^(dWpm2_enrjJkLuCXaXU-T1td-a= zYgLlD24cxb(f^q&XfRP!S)y7#Y(a8@%MQzN<>eJ?e>lf)`91H9|NEc)RQ>sX_q*^% zzU4XW-t$#8@4tq+cMsSNMl9IjIyf$}j#HC1Q&Mjl=5St@SN9?Y>y1}deCR9Rf#;w2 z{4@XHpT6;Rzy6m${ZB8CN5y+RhaJXf0yqh;I&KW2Hb10fIPLeMgK~>Q3qZEV%1%DI za%g|r{t=3s1~>#>5 zPZdaW8|Vou754vSALyb*bx)w;t7+gPJBb1XigiD>c{dv6oPCs_vOQ^``AkPV8GXW*^9Ac9q zPVq~@&+Yx+V$zO5^?B)}zw@Hbndm~ARy7PHbW%&_7hWrMqe0pqT@H3C$Wx&L3SB#p zQFPVs)1T{gR)Vhz$~NBGv2Zary@-TbqT%GU9A|6^I=HcZ3)n<10W(J2LJ-}0;RWb1 z-NJ$dAc-Xj=R;i>sSQNf@)ocA7K;15?1cf;R>+zT_;_R8V4wuv%if<2IOup87Q8ed z*x%c^jeNcDdkTc0_fV*gG<*$xA z!#QH1V@I7Yy-#e#?eMuQMIX*9==^|K>ISU|nW9XUp1LS;q?>)XAP^IslA@w8rv*XE z?E4eM& zLDQsatMnJ>L2v^Kd~x=<_W27X53^0RnkouNzG0k zlGjftVc*`xtrg_}0BqCkeF_SwMoA#rga=5be7EF}dhK5@v&g}! zxiXYIC2A#?U?nl>-Mva2cVHX~6H`;{7uMr-Vo4HfV#eS|R>tHKfi){hsE@ue+6k^h zBd7G)ljNdquppSs95aT9@bXmR^GWD$lC^+K5$ll3!PX0!qd2qH5fPl2Yk`LmXSa9Q zo$qS7yGLBy0xou}H~@7Y%w*1qdGCJCmtK#nS1;@So3HcH%PX!veu;;#AM5(nD_%ZK zTs;Do5yeAtzXxvJ26pGbIG`?`1J9p0!}89+^2F1)`~1_nyE|FS3$@&RZ^YpXf#q$$ zcpeyUC&n$*`XZADIkQnfEf~~v=7B=yxjd9ILR1EpKxEkScwz-{ z4^^)ss(34ooW}QT1cs@l&;4{s6gtf;j#&Ts`{hnB$r?C&oE3A4c)|z}@Yb zRk74~4u^|(BbJX~9WTUk_5l#@#T@UQ%qNJr8;LWjaquw$S6p!g;$Z>z2XG&O$EaFa zOoYZLK*|5=Na6t2V*7an`3N5 zKypq_O0a8Upn@!BRj!2r#*9j?93W-`(&l<7L>jr)jAbFpIT!{KYmy9(Lahm4ajma7 zL|9yb(e0B&E-Qk>aRrwpYI;OWtjyX4QGpDli4h?N>O!?GV{#D4ou-CgUl(paagN{i zKYts(@lX9s{nbDCt^A#T`8ggw_{Eq%@`K>jB_|7G>`81brqhJ5j7w#6|@)|HF5W&Lg3J{wrRE+1q#$GC%!`xmkkZH|4SOsH={08ANY8Qa`zQ0@oZYNia=^lvtLFRx|BSrg_CaAOT^MuZu`=-$Z3kHpoHD& zuw!+B8|gnEr-BIdy)!(j&eao*aW=cMloP~+k$EL69nW?P>ypYF(u@K)S#?DR8>7&% zU%^Zq10g1DZHbakFgTsOZs)@VL?@fdid{U+4kZ;c4Tq{3)?Vf5J4NtnMxu_R#WO@n za;1A~58Miz`kXX-v>6Z4x(Zq~txpu1!cU)ZpaqLtn6?ZS53nY>5Vo~Tw(db$>j7pY zV2HILOm)jOy11&>i&OGnCm^beys?OhnCuqI#BfEw0L0)H3ojW0q>Q4a<40IOLSrM9 zxAr6ml-rmG3FzYD^p{M@&rDxx4gzael^Yjw>JvVk)fD$m;+0U$C=3KvZ~O3jx7Nc+MGAoFzyc@; zdZY$hFvX6ph3)kH{(ntzi5F8fctmZwa6KrnAAUYBo|^Sp9yW@k?J^5NniYq*@5b&o2=WKaih8e_Pvk5n(y1 zp~Tjot=w78JcE$n3eYn-%apkRVnt!MD1Z?Q$2RP3ePC-Lx?lOaMeITjh8dgloWP79nvm8KmlD+-t0nF`)`~Yj89;;DjAK0dK?4 zAq12LG-Sl1y8m9cVEgxoh7g5Py5~+tvgCw1bYO#6)cS;3AEh(dfP)-Au@0Y$2HqN( zEuuo_b9laCG-dM!-L2qtB~T$D%W~C16hPZNf94>zmYD*!HvBgKqVBa|Aq=Py-8QuW zoiU*K_Jy7QyrzJl9;w-53R#PQHQ$>eP-YmcNbIQd%UR+D9|x{?nU|L9EtWX)K{FfoV&k!yj+E7VvrE|0SgqDvE) zSRxdUNqQY)W>%Hvt8I`Xg^<-SIAB#976+n4$dSl8B8wpv@u8c8QH4eo7 zY;b>jSGy+;h+BK$z{KG!urP5Pk@p|hqtCrkuYc;zdhHW$#?@yQy!KP~@y5>_>-9Hh zJbEke)|_>$f#+_4?|yF1=iU|LnJ=h%*Sl`>)(4-%?YBS2v*$kmJn>%C_(1XY3oJa% z#CZbGMB#Q;?O3eHtEI-_Y8-Rah!w$PcFIsotjsl;Bo#i=Hu_En%9+Y75NCcJ0~m1W$cqroJSp=EgZf!cNf1j27YO+ zaW?`_*Kq~LvJ%w5+ZC4>_^B#9Byq2RD-^CsJ}itP>nNKm8R%3ge1I{EQ!}Pm?kA^% z?>T^ZOy&~E0bWgTnaGvkj>vThM5)M<2`uUxA1g4&*a`*YsGP+yfH}9iDzN}{#1g|D zy8|^yR*?#G3ad3LT@_cMIIARLCGCk0PbLbSiOHkdE!PFLOD;7F5t}!!WEuSAx&we+ zWs*^e{kX=}>hEPws~?6SV;o9^S?fBIYSb^rT+zb@YQUOxW#Cstn1m_Up{ z786y8OjeBI_2oJXV=QMo-h1OAA3wOnx}McXf63eDfAcM`yyr)M^znPX{L5~A>hgL; z_s*&vpyMxt(oxvdx=||67hJ zTb*G#F>D||?5k}5ZV(Zh`YeB1F)=XID4WCx>1!~C;_t;jr*LtLpUQ=V+WejfSltq< z&TY-}7>%q0TXJ8~%*5Dg2Q9SQZ4yOd4q`!Ib#;C7uZ~4Jj!4H0cG8M;S;&Q8dD0Sy z7LxhKfsN0zOf-3(+0XFHTp)Fe$arI+67>spwr8aWx7IN4L+LoppCq9HZ~F zir`BO=U3cXT{_=Ty-Vw~l~Yq(3xZRPB_EMgeJW z&`DZA70K+DJM{F#BHyk&%G%!lc&U1iJJ^` z)G^}$Itz5N-DVheEIoFx z>;UzxP52j zZ~qlf{)%t>Z(sYtfABxOHsA4%S8@9bZgb3i-FOtSC=c_ zeC=S9N`LtnS-keA1r zyJD=woK;|K1(g!)U#)$Sg{%d|8WB~SqD6VCd!aN#en6OcNe++dJi|INkH@8U3vdiz zu(GEzsVX4lz$x%XrYWkbMsO`4qH1Y19I8mRK*CSSDn<=Pu8GLwT3G>(ia1+vaSJ%y zJ;V9ahZ(mI!E*pu3Xc)%8*kv1fBAWQ?vsz|<3D_vKk>uY{Pd@<>$Q7Pd6`^6Jb702 z{ucvZ@SemAKM(vl@43L!A2`n^-~M7;yzuUdr`}#1Up8?5Y_51QCT=5eo*Rybmh$SS_8zitu5#NIizyy|(r{0%N>5{Sv7cx3f z0_bFGl%#=~*z14?fEwzOEe;K_W0gi<$Z@DXQbn4(6j+v2>JSCsKmb*7?%V%GHR_8H zXUN3wOna=JC-dMn3*{&euLeEZ@xe@S8I)QTyAwyv!wb zPu?2i@C6ljz67}V3e@sp5YN}d2dd^R6duJgUa!f?z^etm%)(m4PiNIzta?~ckBC)m z0VpDO`-)v;9kaNO1z16*(CfLd7HGO8gIHINrK;va2}BGQFlz+oJaUY{TxZoFIJ@XG ziUSoAfn;QHWoc68RJ_4aiCHYtw`)4(RrW=S%$-@aP_}JwQhGzEIZ~p9m_=TrW?_=n zp4wFn!Zqnp6;SVlC`$!Y)vkiYtQC(QRetH$Jry7O%w_$TfBtp6|AYS(-uYX8do6E1 z;QIN`#^T{05mB|a=ZY*w%nnppk{fy4Fy2zp`z={rioNU^u=h6}Y73Xw9X-#t_)FVC-vIM2$dAVu_y2 zW%gwHXO_@p0mmD}4JJg#mng;W?$u8>`pX3?@gO=Ea(vk-e2Cr9!A{pR)tV`rF&!Gj z2K{!GTd$+ad~V4;ynoKgwgQ(3AJz2;YYt!&;_h|na*IUv1~3)hjt#VMESxtIFoz=1 z1xI;rfg#(hUXg7ap_(b+SW)E|@8#H7x}p**mJkg+oj`kvnz0xaV4X;sDNq@TmCTIo z5J;&(==lv+NK-**>U5q24!@uBkJt)JaOkDPUGndVuoAys-N4SmO*d&-Lg)Zo$cy;+-T`(CU7}^uV%3a z%y?1$QwiPg@)>m7%gq9}igC(sTa%@;SeD}dY@{_i-}L?v9Y_j0?1I_wJ5+;JT|me7 z8CnXeeqCnTroTU%p`-8L5j3u}FQu(+cfnCrx$paJjoVMKNhzS+o;zvXQI$I=kWth}s4~z|_o5 z#H2b|adHSXDMK|fhMNjKY*zM8(KWYCkFtPLrfdaII#>i@*C?U z3RlqF^>o#>Y5fz3&?w1`^s-e=39h0wY>_nyCgdIY1Bi?V6mk1+b{b3EaMvlBv5 zr#M_umx!5+0%bsykemIITk*Nsil@CLz^TvD`IP}1)@2}dRioFf5q^VXpjvcb!j;kZD*QmGNyox7Zc?0Lqyb2!95D{Y{a_sj}d0sf1HEunO z^G8>>x^+YaaCHn`9un6_;IJd-9N1kYfkZ}f&O!{Mm`KC`YpUkPC^AzO%LI;t*s(Cw z#q7drffF=EkV%Z3iHd>aT4T9d>x#h$*7e9(xKyl#jDq!9xm`c0+@=fM=#ySEC1{j{Hq^$iT~oe9^-p{ z{5n7R3Syl*+!@F5wmtCv7lAMSP~iO^I`BPTc&Fa}<+pM1-WM59d<602`!UDck+_S2 zr{fyH#2)KxAdfOMwm%l0PmWN0&V)0_Ct-uR={) zY%D5P*H*4OF0HBsU@&$CRbj_cI06{hN%yaccL<)3!S`0~f6drk7!ZDLtzdADAH%r% z>zwz$C+glOdH=^>#={@^KCV~aheLid)(ha-430PcPfYxj|=@nIC- zkHVgTuNoB(i+IGs18{i>SU-bWUqQu6%=?3**UrqTEapf#t94dn(t}617Nl0B!!|Hc zu_Nm^?FU#$*@7xi@-Y}yuBC#c)b4H9%m$-mQCl&?dNb+hj z4?vAV<-mdow>kq_Q|`QC$T$66`-Jx^8M*-4^LQgFqbH;$zJYqtn=A1*>g zjO^Gm9YzN+rvm?(rz8-XDVpi^QMksSYv$teHUB^1}8^p$|fijRkV zO$st{{K5`Kr3qtg8dcKEah|BzJ(Ij+L(#m$p_Vk;Tc=7Db;n>qj~LVMrH@%{RZGX? z8=YIev7<~lQ5udvRd8sK--*!#mf=;Q11hTWnM3>I2CNN$@I!2s(r^JF&C-ib;SEk~ zEPwZ`cdk@86=upsx_-CTipcK$b4UQk2TZN$TvPFB4X@J{!YZy>OBMNEv5qYQ8=%2v zS`a5;yb2eu+^$l%v4`Q@vNRpW`Vu(`twq*9qk<~?6&yq6_A*(e_{aj$=%gIp=d}wa zbk64DW}URQLI>1L*z7B0=7WkN8`IVNGu1hp{R#t9Vsk{_H4_L;7~a-2;hZrH0$J~% zL;K#~LO=pOK9A-5**TBtE$j;#Wu}APkEYjnjIawk9Z8!}ptBZ`2-Crw+%XvMVpOrBcd1u}61$45&vIvP2b)Qr!*b*o= z8udJFEU4rmAxZ{P{Sw`rThWy)f8-{dCnI!H(${8%la<;cekV0e8=j5brL}$ad!mK< zbJ+=^{(fX^!FJd}6G}`n+9BvrD38)^D_-df;e4$6=sQ&RW)(WI(?*ZYKn9isJszd0#{l)&*%zZuNRkbjK1}PS z>Tx5{@;WhLdX|$cU(D=;wl8hJmDgmJjGUMxouJsr862wN&zI-)ny6(YeSnx<{r4TF z&3SQ490i;-#m>p3d(MM#JRO=j6Ga>9-fs=?~df%dx=}ydBwI$1a z{Dp4KP~xro5vhuZr-YPC1y^QiT%rP_?V)Z2Bw~bYBAohE1zc^6$*whS z0mlYp`M!sZ@zytG8r7!kU!sX^ETE2&>IBk^f)L<@d&(MoP%yJmIjevneUsTvx}sqd zWQmR?s-I|+(f4Z_z#4jw*;SoMG}WuTZ8QtOqFaE^?3`^=e2-(gKhVG&1%NpoRexAv z-EoKWivxbsuYUHA{Dr^y>fiXuPtWp=9gzASurbf88IrOik!t{WK@#iK-3j-w~rAN?paaA9JSa0WoGRn0x>EUmP8$+ zILQ)Cr{?tx05f)lLDxeH6+0v3Bj~ZCRZPrdaK8ZOw-#JH5qayGh~1sDjDz|#u3x*t zXTIyR{P=g@=Rf-H`|IEPp@ zJpTY|xm|@PD7U;I>oQmVa4g6gc&kQ!4w#obug3)*iFIZkRlf*=HIS@D7deFb$JnXX zGTQF$2rNJZGh=dGk0^0p1_po~G+U({Pu*U~k-!4tSip4vS2CuED(nUsDM7<1VxdTr zI_5iBAIiD=V+(FEcP|v4`q0d$zTujIpDwK5hI;Go*W))ny{xZ) zDvv+$3hJ|;&EwAM^xlGbBW!+Ix~X+N5w4Nw>U=3$XII3Sy{yz zk(fzM%_SRI2_jRY$PjY{P*M}B0%HW3c{B|(gn>t}s%B*^3pFTcmb8-QjH;2jo3uX& z5qO}Ej~wz=3%S(51fqhI8Hn8#Vlpo8t@*_5TlfvX=Y9OMfAW+3Yk&M7=5PCN-c@Js zemAdPel4%(V~*ua*u{DsnM^Wj?2u3DO>A4prEV-Gk!0?nL#5*n&g!YZsFj)UdyvgG-Acz| zjF=6$#U}<1G#SVMpo6S*Wf;!iPQu5I6TMa~a_JL+9+BPJX`p+^l|MTH)_Fz9BZNQS z6(Yqlg{?5uNT*&}=cof%x)v+2EVq9r)P}%hk08N~;1*rrQv53ulo^Pn{1|lJC*Vj+ z5f&cocf}^)912zS=RR`{-i(gn(P!}#$D&VfGau-E>+^RbzLnGCsW9&tTlrx+u5-Mu zq(;l?|Jvk$ZbxWVMd!E5&C9}>VoK<_TQdz=qTOP+6Os|z9!NzWttfvFwsIET)fcqzI7*V#7 zfQ>$I+T}(j%Hjw%y4;fFb`q`{nR-&D6j*=3jzyVTIT6V;9XTK*4s^?e9m9=Ec2jH8 z@2*ZfJ!hE}P;4fFjZ`uCA@H>IzGTT zo$v{!>*T#Ew@NQcZ8o$J3+NGsD(_$$P3Zsi8AFHS0c1@?4Kbq}&@>~Vk=SMdz<)l* zDG-oZ4$qIY@ZIJF6B3V%8}~=-n7)g{fQ=<+Hp91RB!=m84c6Hj3s6ZTr?J_U?sFs3 z+9IN5rNM_P*kRa9Mxy5c)8D@-8KV%UHxkWKIo*Fi2sG@_JReJmc|m|;2MYA~%cQAi zU4gLxl)e|Q6==fD+Sr#r7%E%fB~Pr|JM_Eko8P@Y@x>o_Ge30q-m<%Oc8qb@Gj`-WtKA-XcD`SZm&Y7qS8Haz z_11OV`I*<^?CB>f_ID#E&htuNTu~g^W3IIgD3;0`v1ZO;)&5LYjTDq9-ZW-r7Kxag)Qqy62r{@}0_$<+vLohk z>YSNgQGnR;&HP;vj;uzpAtANRT{0Mb818dpE^92Z`8fba zk%NdaFo)_X+)>K(PU30?P|_YN6uEgXST>A6jlyAygc_w3YAJ=t5ek8;=)Sux&}7$B zyH1wXl1BnIB0c+(z#y@zRkEWju*B!PhEztcXQ+8KK&(*nhtN509j6IYWO9bam<(}B zmIT%mv3dn@U5Upt@YX14ZU9L@w!Z^-nB=Y!3xKl%Z`Z_oqs9j!pZRxc|Mc}5?_U{w zz+68A=8w&K<9o;TOW)52AO8_v|J38W|BrqGm)EGPmkQughv%|xebFJF_`nmfyyxjU zd+~$d{)swXJe|9{&mz{h0`p;vt4kc;!i>wys`Z+4oia8HBQV8yCJIY1X3dou6*<-2 zGk{Uj4GU#+Nyb<(a~6;>Vq|7<#vm(GscWFJ%EMNe$f^nkvw)1ssFq6&ATig-7$(in z!raZ3Tt^mTMAo#qVg*oS#aLNbkRV1Rs%9)%Ri$yGyXBaPPeDl@jBzq1=knf^W^faf9KQV{U3RA zzI}g@Pt-;In;(7W`ak@cPk!t(FF(X{Pn{pH5|KHxx{~VnvfDkYgM*SUF9KZ4%KSQt z5oWa-I2MatTcotNmD3@Sy4gk>jxlPh)|Xoh5N;Qx3U7Az3bj&4x#_ud5=+Olon&rf z4o^9jzQc)ZY|kpc6~h(HvVKuH{&peO@N)Fu;KVy@nu0tNhy$4!GwzQTEwlN z(KdaH|9ix;CcAdVt$1G|iT+SD{2!+x3hGAX)b9?QMg}Kb;S{~T`^3|14Y=F<$*r6># zSe+$PDW+m1o#h^tt(dDeZ3TzbjvwH?u~|in`6+(W`X#pHpN=55__FuMEEwo>Z!%fR zfK#$RUwcNkQoAC#&xD)BRPEFZ<5zg>CS`7dRYcB%%t3MNF@?>q+Lv=1r@om6o@`U)twpM4n2TVIk$)S zfov1D{J{mozQ@ry8c*?HPuq$=sn=RN zC!rH==Ze16i7C{fTBTCvq!l(34e2<@@7vOMsT1HvzSz}KBRfqY;*Cx4rGpot`tmel z=8Z~ZTXeRO3&?*@*o9;#K%YNh85nxVH ztCU$Nv$PpT5lu~Qic>oyRbOMfoT{to&xbx4wQ{R4H!Gn^{b&U{gEqR=L7?_eJ0;c7 z+V;p7@5T~xOUQWgN`711NcgLO4Y_G5y#?Piy3FsF7XLzQ`V*iMrSkgf`)LF-Ma#jB z^H~0UqnADNwI5CnpdSn;>W$I2&EeHR);s|TZmt(yP!318OKZ8Uj@bx4P+J9BLAV0~ z5Lopao#-=k4u=n;022dkgzi9!)(8}=f`)D}Y3HlrJyo^doTeO=KyJm=8*Rx}upC+R z@0aZW*_Gu2rUVb=S8QlIFrYvqI-1%9lH4XkKi?MMgftv37rC zf^vv0s9CjR&;j^X3{!hDYU`>`nRo;3+22i6ZG3}oa4uwY`E^>NZ7s46^u zykfru{_T%F^{f8mH^1^v{?4~QUf%KkSMbEU?hGy?H4AM&V|R@G{($9h$=&smIp?^} ztXDpFFE8%AoKM|-w!kI8fmrsaI*U9z$8vr?&n~X(;#j=C<~Ur<_3W_lxK_+VVqGhf z#2Bc`h^m=t3|CDdOXJM72r-g#T6nfek81m`2qq%Pa4+PTMZ|F?$C9(i^$4ykjwNa) zA}SfFDT0M!O<+YtW!5Mzu@v^G+8-jHe{qRBPoHsrHgLQ=*2|xKJihC%yo7K6t~cwu z{#E6x4|f4n-5Tq7{|lVI@88_TSAG2xF%!dzR-uooR z)n(RI)!cnQV!cA(3dL21K6V4Kp9+!&vFs4bf?5Vq0p>zfOkfmZ29r@C{R59R4jz#} zOe`71X6Tb#H8#6uO8IR;6a^8=4~*08TQz@WQd0xawbf-d8>@bX_6=kHFIRFuIVosyCNncBCD`VL@gYJ z%3XQvL!p+zNQ|gN<&tBEy1btE?mfmwe*Ufer9XTt{?kA4+3}x${Xd&eeAzdQTd%&7 z_h0&K#QE*Xikc!Burli5qetWIU-$ySf1aQE@z2+@?|2U`AK~ytU;N_b7ryYRi*Nsd z*MHq_`RF_U_Cr?AG6OP2&2`4K1uaUHrE=cPE{Rl7@rkQ}5?`D44@zcqL#*x7v8RD< zB?z?%-&H5mP0_1nf)&JSw9gEQoe8*4$3>1Kx^M>m?D)*Q-T)-d%#K-3adlZ}?bM{L zWL~4P3#bK=D|%{<+^1>f_EUuC&6n8*H{&1@&e@NoLM5vt$2s+}(u;+FbSC73_^&v9oaE`S~1Gf4Hmq==C%Rv9(on$vC~gb>sc3a1u8^Xf8#yLlbCW%C(ynpEt8~5MKnpws<`odVhJbes z#u(V7d^GAv0867YTcW$Y5VpiHM|M<=K9(C3inUeYmC(4K$OqM3@;-2BL{kr*M!&WL znKGQ^iXH{!CgXet#$JYDA7MzAG7t z5LF0H2zXtuXjX8Z43ch-_8X_es2`gr z--g6#PP`4k$UdWJ7_{P~^51wCs}qzE9S;4T)0exP7zZk3@T7ep(-^6?jCNQXgTn$g z{ry`1z9pS>`ujJ!Okt`<*UJUM^(dTBONE>5(6F7;lmDv?IfuckXvRX>@NGYH`iw^M z)Vj8wlFQQlNndor314nU5DjyQf-`MEy?>y`0OGX1VH21J0wy-5#$f4uRils!BKo^z zBH51h+e1sq``IH zJoI(k>V0q(0xQb&rcGahfb};~oVeMRK(kS_18B%ZkdaiBPA zdyM5g*Td~tE-vT!@rdi|%rimzo>iI}j6FtJ4YZk~+ zGu&gSL0pl;0;uZ7n~5rNSDYE4?zJqeGr139; z?%W+2%M!=O$+uoR*7tws=kaadb$|R%-#_v4{lGag-}emgTYvE(zUG%a$q#(RQ+(nB z&(?VMVu$mm!Q5x&p2x?RgP;FN%m4|=D4aNgwFB140;7tOd>eCN9ZFU3J&?5kQ86IOK7#}zt12o; ztdR)N^PCcgigBbmZ1{6y_s@Fq zmp#mPj7OZ;-&gVacj3`b{u93T-5w(A1#5|5!0U#$vR0Re(D^^3IRdfq9e(QT2PTyGu8%cJB+MkON3P=tE!4)CLJ@(*cCI^Q4?6cko`D>%zjhxlyzhPU=YHk$_~ehi8ej4YpIvi2Q~UG7@(o}6RQ|vI z{;PlCSAO;U+Y5;!PV7r&38U}A5L<}Xu>gUXI8pZLgpu~;sU&KPU3l`piHT-}wb)m{ z)p#ca_9={sc?`^#3b4%FkE?uGKEP(#d%W}C^}De9Ku#ZhgpBV2@Zsd zI6V_riK^K-D}T0BcQek)pWi;!$xKkK3`8JGqY*jHA!0Kw9DhuRcCA3rEIo)V?1W6^ zhi=)`y99Fcmz_UqBBj;RBR3FWIzCq1>MDJghaCflZ#w{tQJYY)7|Htm?D9F4kav+( zv8WRBq$Er-r;1038?mP2G!j*gZzc@zz;Tx>*XaZ__;IT4D}HeV(RpVB19V{pZZ#;y ztkp4a7o5!JVF?86IBa7pc8r>ZyqS1!1rx?ceL;D*Y*CP=b8ZXJl98Lv5FRt^`fkpf2iWUgg>cj4H?5xLTa1#<3#><JXj8INvhWy^b>Kd2z@{9FoAr*~n2n$0N^ee2JKbaV&{``i4+zP->tVVUaMj&f$`y&J_t=rxQ>m)AN zm&NIelK(X5gOdSKC4YFAT>UJIMs>2f(Y5+zs;-lXn}@!qOaM+? zT|3&&BTtDlZ(QQ?Ic-p<4YZ2&Z7F*l`aN!lTBd;(>W1n5`25i)rBr4?pEqN=eG*M~t^ppBwxK8)KmDTDh77 z7aa@5VY-~&Q2qNdyaR=7QIn#BmbTxu^~zN{VbXn$dcT2obiLBDqohTm{b4n*JzMsY zm?2R-0Y~j*P=y+05Q!&-L^?G~da|ZO@TO$Fw)LtO1j@w3z~^4M#P9mpi~sr``M-Vo zGymUjyIkM*fzQWN=NE&^t=tX7RRG*Ad3Jt?>;FGle;#k`dQ^p?W7PA`Ial-b-?#fd zd+#JW4TSU|L?Cnt(g-N1C>#+{@p29xQLhc>9K3o}JbD!o1+hU;L;+1CG$ujgurTZavYOZWZ5W~ zRbH)_K9mLnZd6j&S+8T3x*yN(iILfnY|IW$z0s`;V^eph2EvaE!DV8=rJ1+ZFaMw7>Y0lo>0xB5;&$tN569!vW-zVPc=a_h3tN*Ez&jw%%iBt z(FTkD>!YKIC!y>}+_-e~!A6L*9W=RQvOLu!sjzq6vUWH{pW$3dNpd=Swd_g{yy^%V zxX1gcm1x*;io()EW7N^W=G;Z32d)5khRy-PCdA_%qLnuK2 zNMxp5EkHBnGN&ul;^xhbqEln1X3f1DX(Qy##YQ?z<}|bH)f%&uXvEN(dLJ5xQS?UG zTziL|Cr=If!+-iV{Num%jNb9r|BZdsKm2~3{=Ap->hFG#9UZWt1JW?Gakal{S1(=F z%U^SUd+ym?UAwwtcVO%*kzeqVllwpRmPWBpUvkieNZ;_LqyAYHfkcFeWCOuux**@Z63lI|-wuO3VNm*v2fX z%)X{V}@$yjHEQ zLC}O3>qMp>uNO{al3zAa0{PoV_9FxBAgI>+Xb_@l=sGHkdi#toi0Qcs%^rP2u205< ziLBx)9#M~~&LXDxty(aFM=@G_R=vj*w=llPr@cj<%Ft>71)Gm5nzNq-hKy%2L6d|H zr+10NE3Egj_9}jVSl`=v7)1$>tx-BcagrpFD-u@@Ov1LZE9+n}E2WQs-l_#sB*a?Y z?HWH>DwMiU1|Z5!;;}pxEdnx$t0_JyY@dKM%A8#QdsrYtNr?jddoeLZgCJ}E6&d;7 zqnl$e4n0}U_<|UTk=-6qHB4(+Q=5LC?31egCtfU?dMoc?0{2>cRK_kud=n#wtf|gM zV?8sa!K!xf$RUq|o$upy^wx(Id9fm+TG_ochDQ#eqaEqAUi3(eX>&vky`g^2WUrKU z(U_RHY%qoDJv@NO?ZKD1#N7h8+A8b^$)u`Lhf2M5kek6gm`EzelH^BBMZZ7`rO znr2&Wn+KTf?{R*(;9{d|V}m%hVOp-NEm!o}5UnpdMWzsf$p-fN??D0%p{i6*zi3jl z!;}eTEoPXRi4w(;t7bkp#O@ktjSlxQCLeDsW_HWX<~N<&g4EmNk009G-f|W1c<&AS zy{CwM=WuqL{Tp62>6HC}&ipMCTpCvbB% zH*iK1teY8x1~;>&L5_(1&CR^02rDdIGMNs{EIJfAQoikg4av8$gKWv#32rc7g;$e{ zt#uGXAR~Fyuo^L_k?yihpdFWRrmeK8frpR|M6L#4=wYcB01hlFAve)=gTlh%w7PJ_ zvP6jE5X>B-8|Fp%Tf#_Wd#{E`+Z8hiMgqRP1@rbU>EHu)xbuk5X2;ZK0@{|zPG}fz z23EI1!>tY6mb<*Q1-x&`*_-^7Q)9Br5yO)}Q_d!)8M0MyhB%${;CJQZgo=h1>2dGK zO35hfqY=Ah`oSoMqM;2PZER@fI6zEcxZ<>HFl%xhH1}DbahuXLh?|s-OB|%d=c(WP zg*Lx=?zeo=MSRV7|0i=2g48x2NqBkKx|ut$6zLx7(es zy}6%#-WhD%eGD5sB|jAX+Dd)z8poX_mIn^Hc{4P3S+vWHbeNO0a6k@&y1cnZb#05> zKHWzTS`h}C$+Pu)AbRV)yEPE9IGpHe-D&J(pHu8)qjFk_x!5g476`X4cWWA22ijmV z$Xmm5HR{@R=iT?69fxa z$4;L1yY4=wgPj8`_m*uoEc%&qC+yV^EcmY9dhQ>5{1b-#rxzxFyVlj1W?WK zVwz3hFK6Kc#PccqhdFbqLHZkGW>NF!mCz{qIs<2^h!G^g5p$!+z^{TZ`Z`nGCVv(_ ztS7nO6xrQS0fbdx`Y%X`!7jz~6M$nd&!*0n&t0W@;TwY_AjXUzVqFtoS~M+l#8~Gj zFj_Z$CM+#cSk;IHknu(A*HHM93e`&`nKG}`ECbivYfrze%sS7omTd>+379o>#o8j1 zMV`1J|5YjnlN!zUk8_n-WX3OsWi33O=ZA!%iCB&-&K^p>#FgCKpJZ_@uF68gjy41l? z5_*A;*Q$WPb(Y9C;)5dcDlWD<1W=aQ#2qSJZX6J@B|opSaT=#U4i%KC7^L|9 zGSTq?p+$BEdm4m-Atc=ylxOf4X0ZckDY-AB9X~nxPRJ}H6aiWVOs0-v%%)lxXa2n= zD-oBW>d-4ci$L?asj+x*EnFobib!`owJqLLC}Y`!07#!zS==>4?kGr_358^siY2bk z1EzWLm7T>pJ02>9WIC`GHdSMUB6O75`f{R<3N|%iT-LeF#|y@^j6!ZsSiz}YEw>+2 z)-|t*G$Lyzl26KCEOekT*0Zj2p0moLV*(9a*8vr)n)fF9RFv`dBw@}ci7c98|<@;9<9?$2f<}Az{S#{9| zJxR*7dZ0>t;$0NaXEiS`9bTT3Xmparq)GIM#Z>0|(qXBpAv8S;P(CJudT45VSbJBU zbsKGJ-~xL3_mX{SYPe(NoQ?$fOeuafdQ4X_ogZ39%RUD-y?+vW$*Qvo%@|}vO@u)G zZuUQ`I<{6X$2fV7EhnCY!-jC=ca%;c){jlugbCS*C%(VdhAdDPj-Bin*ir!zWDC1+ zdYc$mJojCH_u;1=x*hFr{cpF9cRh4}a~^}1D_f23eKq26e+N6)c5V0iJ`VO*(l}c4 z1Kj`6xz$atdRfDdtJ+= zuz%=2j$)TXGLv^j9WJ7I3V~K5B7&lG7&$;p-|NldU|Re;H8TU8t(nZ|TU&FTJ0sq4 z%Z44_G{5l7itl>=4&L(aeLnmg-C=ye%_G0*%VzpRUwck>e9_%)ICl~_7`5Ep@2d;@ z*nMu_4z4e?-0voVO>)i*q{&ROfi|=O8Yr5v8DTbuk#4OK1C3@dQZyOOfM%juCyg9P zvXO%ct%1#8ZbUPu&7%CiHNsldt{H=kH;X|?@p%vj!Um_&Fx%{|IWW70T^pMDg#p(- zp~Fj0XnElY%umee2YX!yBgey$>LbQ0-L730&fI$ni#dhh&a5;sXro%LPHs5kVOR zT^62l6ft@TEe|M+3}`tray_Fvyhry8&-|HKVsV3Iz6%n@>Q9ls*Jap;a5xf%?ivg; zcHeg6366G5hFj>A!w=-VY#V%vy8d48kNjG@^!`Wm@CR1<^!t|mktb+}$AH`Job&VE zu*DaD<*mHwMR&LjGFl(|-XT^OceuQU z%O%F;lH>l0hX;o`+*|d2*?;&)PvfyiSN)&vK6ZmDU;H@&w9+;s@%)(O!evlV} z#MJPstGspucM`Bhjx5-Ua@JfPB*|bFxlW$A zNK*nZJawUC&$NZA6q3r4!3c<1T^xnzdQ!wiV#rYUS;jo+MO0D_87S(>}aoOCmTX?)olf~yv0qojPamo}jGi*Jx zt&BONOk%>bQ;|vrryjNvK>Z4$t!Q5djNEIo%A3R`AK}#P5Vh=xcJyLSY*0uchbcm;^;!lP%FIFPKW@ z#g!SGk)lMl9*5 zlPvKvT!`}lBfLim2rTap;_Njxc^`DqqB7lz(FY9MbZBlYn>%A~UVW><5TLP0bkY(6CU}tpUSD&bm znxtS!0;n7dQZmW37tJt*BnrtECLwbK-Vt;U@qW2~aeN(SWxT^dhJe0J=c`RJg2=E3 z36|iZp4J3fi}R7njgf$*aw*Q=S|t!91JM<0H85>}JU%m(9#jwpvj~4t-E_go2DEG_ zWla0)Mc9M_WN+DUZo6OlV_$me@BI6BT>d|P^*1iJZ@%r6Hcu@u%4Fu!V73_M8W)an z(WzC}p_}g>kWW5#rJcCrNp0PK%6ymwz0-!y#kTq8Qf)Q*VmWd=>|7o$b+|q7VAcC- zq>TAU3(2}+i~qY&i~v`4o|$}0zP?u#FY!( z4@P2ZLzXgQE|-R7&#d`M{n*((z3ALi?Umo>I`zg^w(vpAxXs>jxN+t9)M7i>jj$M! z)v}%Gh#1}^0^W%YQ~%hw_nyDeF8+SE`JDaSYd72R!-jFMsqgl7eRu4xj;4X_n$uSp z`X$%J4;2TMvb#qc%srazU2En~jSZyw(11Z~ z+XkJa_<#;iJY?-<-#wmt*#U0*Grwf7Ie6TbAAT<$|CLAhfnVFVxBkR6|93xprJp$Q zN#1oQ`)j{^lP`YbojUd4S!~=sgC8!fU)%G;>j&Due&`rS${N(0M6xxv(&Y8%L`9Ko zG^3m3FqfR5clJgbB#}eTkQGE5NBN9GkDAXmAI*Gj))ZY=fliynsNTL}Bzk z7&tVvMd!{9U~6N@b|y((e`it#D5&W>zDsJ&ph}--~GS`*~iXi^(12RVI0w{uvQ@ahkGXbtcHq5 zV91=VBUTCq=+Pu82<0kC=<9bD6Mr&&ISgGMO=}Z>D2t`7LL^K4KtN~_NEtwHpVPoE zg7WOKz`zH+g0jRH{YavuWp{Nqp~(LplI6f3w7`?2V*Qx!+avI5nUISFO$5ho4K@BD zELdJH7aU^tJAU*ep#oF1Tw@@W$h zAplK7;`Nk^dc{8ua=^eME()I!o$Ks>Kn9yiZmsZX4lilp4^e7p9>uSD{tI&`=Q0=3 z(u{x)ah`i5oLk`;Mc^H!IB_04l{xG9agE|c@OlswgA57@{q%hNC;#||G7%kvJKgKR^lTJXS$m%{?w;9UPb!ZT zx;m;!LuK#X5u27Ex;mrA_4I5OoPm68D&jy)S?$c4QytTk6<;@gs|;>sgOz|@`FqiE zF%HyGCNko4&q)T!{!R*rFaVQO1&E-v{<{-kN7c6|KWhrgr?2uDeQ2RB=*i-hiotWQ z;to1010O+f0z;IAh`E-Ly-h}2^>ZTB516Q(DDEVpbQGu_2SIdcO}^A&sX(I?08mPW zQZ0e(6Od~z3nyCjWm6Nq#Dh^=?1k0@Wo;bV7h||HM+OdB2s;eT8 zoG%7xGM$ICs%sShfKqv+yGH`=>Bkco2xpuHjOl1GfrTKUfMVOL$)HI<3lV8Z`r|v9 z4hszv5f(MyAw^Gc8Nh+6&Ll^O)3vif1! z8|SFr(J-;*0r!&e6|*)zP)?n{Ad)i(N7nO4QmpvTNs1OsYvtWj@d3|w%bze|W|9|S zVtsmd0`QiOiKTYPtT{?ukn53Z4d&JojKDtEgDi=CmTVx^0j&q2maKMtM)KO(ywEV@ z8LROytWbdKy^iE`z9SJVt&}a(lBG2jNgPws>V1>1WF~w=Mp|ncy$Wa%&>MpU4Ha(S zH>OQ#$&EDxsmNAxz!65+scrakdzyXE|Ml437eCnexBuqNwsGnlhRt&vVbW^k@^Gou z-T`)Z4|uS@hr_)Q%iSfquW;{u+qmNuFZSWg-Ki8*5HGt|;nyzV@bYumxwfw>SC+hT zwd2b51MKW{?ClAA`>y56x$KJe{vH$H*ZH1QIkZS&QO3X;rDRx>l}6Ln47};wfYT=$ zu3iy-|I-Kfjo&@MN1p-a0$z4I@pWH$3U7GhIo$K=b7*I_gu}+e^B48pqtEfevm^HR zJA8C-0BlCgTLXufw=y&{&O)L(TLkc9GtgXv4FFq|0?;tb=io4;V#8%NkEq@vp>K-? zqDVW~C>u<@8LiD=Zs07yKVk}m!wbV3b$AuPA%Gn~ z2a#E^4T7i5aSp(1K+Mzf&76J_{pzpSjgP(^kNo^c@WJ2Q$HyN7t{(umodaI=D$`5e zxXC+Tc>=SOn{aGnJXqrJ*6>0YbM7Vw11>#TZoJ|PO$ zrXCYTg@*c|kQ)=v0?Ll$UKkZA(?_3*bn5%NBS~{Wm0{1$Vx`KQve6#TKw^^1PxzQX zWs}{rV|)6?7}Lj8KM3lUjd}xLOr672DoU#dk1`D%UB65^f>ZAsO|8%CW5PL3!cX9H zryJx{fM`s&UeEPMWKt3yszx2vDPsbYfyqM6(7=4wLR=YRRIqLFUSwtR<4pDn5~mNg z38R7QeJ(5?qTof-l5#MDymrH-WM6Km87ZNYF$FqVm~O zqOicBBLe+A8#Sk1ncbgCERH0ZQFxDu9yx(uP;F`~sa$8~cg0ya+SuDBT+pWL%=D$4 zNR0gB7_HYiY1Qgk3Yf)|ry@J+?ZchkHb`ifQes?M*`icFen;Sgv=jPU>p}G0)`U0 zQI;9pU?QqJe-Hx|M8%~E25T+9ie_IW$q%N?n<8Kbl3Ax?ZkuW6VyJz*UD9_}MAb*!bi!RcsT2Pdy{ zNzuz_SBQ}TAG7}2Q;`u4r@T*yn*!n|yO<5*rrI<1xMb6q6ki+c{1E0^lw<1&s%s`} zJYGnTJ3KC`b0SdUR3(eXWX2HAZm4f@Wu0}dS5Rk@(WneNT&X+=AR_B2I}als@GVG+ z?1r2{Rv7yDwy3EeJtQ-e-Bd7dnGgyxB`Kw~flKDuI=VRZb720g)ExB4Y+I58)pfKo z*T~>CjAhE0dI?WMi4bxrtw|MPO&Uy6iZpUqJ4DeZ=W49;%PF|75je4~NxGyOBfy1E zJWLS>u^q+mMuHK^ys8*q#OL&uPPY?PZ=Sa^_K%KcQRCF|>=0aYTlu{)o;1#NjmI=a z%P=r=h7zC_WP}BwW;Po~tj0Npc}HJ1j0cYMPw)Ggo1f&dW2YR8li3V`#`(z#)|uEn%Jxl~$7(CIQKG?*y!=q~1lE@D16KY5Hi zx!o`r@YvH!{nT3y_<=`&y$;-S8vYl)W`ke-rgM71=bz$mYM>uNS02B@XWscJo_qSR z?;fnI_vRZLu=&#5Dm^|QkP+d=)9{;#!Q5^yveLH`)qV+7@Y3FFm{IxKpW&P zau`f=)39jt*3dR)Y}*^c!XTK2aSYyjcZ4rNDk}*o#w57v>*i4msv*-M5^MxGONOY+ zxq#yi^c!c~#|ymcr5iZ5xk{nzA$-?J3iE+(bAsC?fi@1qsD8Ea^7{|*!2WxCUwi{w zYak9OECQTl*i=3^T9*y!X_213aSF=mnqg0l`_*rdgTUMGX}Z!}hd0Ri7DRT9-UuJj z_W&2=V^l*sp<#2t*6F5aJ~it8<*!h)Z_C5oDp!@aJ`&L>Lqt0KsNW>wjgCxHgfrxDN^ymbjv!X$5wZY_w5LjCTJPn8{H26>AL+^d^|k7T|ovVRWqs z4#UjdS9aw__vgRt9RJ`Oclh`J?+@!ge%pt1?DM~hJLi8I!-2Fr9_qLq=l##WnIHU} zPx86*mv!!rn|R^TC%Uycy$$w7Z@6{&_J8`wm)*FImuc>alxiHoUF~;XdM=+wY{<0Wx7Gt$BU6ZI7&Fr+7J}$mL z`rQPXR=9s^3RbZx8B!^R-|x&~#tdi;F$)IvxyQd0j`FH_4tx+b)5_9?3Et;&q}0DM zl@;_V6cjOm3KQO&@ZIE-kv0Dr;8ycQ5o*FT4T=#TR2(LcL<7l8{%|4)O3^lzP%6*| z)Av^DXS)7ECIxLuQX-+XS*~L~7agEw6LcanxFDFN&)F9+ei%$b-uzTyHsl1YT8zS9 z@h($P>Yq#6umS2p#!X~T5(mm>iX_20Ar#Opl7&{&3sNBw_$JPTyJaKq>a?$EP2&4P zi6Jjrs%Z_q@OuT%m2_i#xAJ!^KhIQ&9!(g{otdye#z+xcI`gb$V!1ZI5_HO@B9RnM zZLrb!b{(V0{F$xgawZRmGGQ!4XrE zIHru)RPs4_%uEIw7}Eu;p>;=Z6}DPwek0Lpn)+;n4U3Xg=Dp3%ze%KY2t(ShH78N> zr0OSS<`}ATwgDJZ!b7h%U2%ot-4ih?gPJquao(3=^APhA^&9{gNtOou~L zr+x!Mj#C9uTr-?h9MbHd7X|@Dbt#Puai|R{o1J_hLcx$j=xD)uv+AfYL4pG8Wn60^ zy*C)f7{dZX)Ll1#IZkAH+*s8D__^YtqCnQFh%rGa4M#}SdM#Z9wW=W5GB8iJ#}M^X znFS5(-%v^jB!g9fdWAuuyz!~2L|B|;;ApW|p4s@^a~7deL87LZd^+@D11wb>(Lkl- zFE&ksC}WTEt5f*|TvKolAczFdpsQy9$TE_Z5w2&Lj!>+*18kmScRU%jx;SwWn9UXC z`2nq7A})xf5k}5auhA+o`!q@hkPLTOfd~v!u~Hq)CNK~To~OKNDrIs9*pf_(fH0h1 zHBa$0?3$j}Agt?8dK!JCoT}LAc-LU#tI1E6J~)%1%ry(qGRku?)eJ@KtYuE?s`;t( zD;s>rJ1YsRkQW9=mP|5%nr~kXi)y{Y9>!D=rmDkQ-Mv85F;S#rh?@~+|hO<`_edNAtXK&wVwtd`aGq*O-Z1mZzwb^XIxSC^VU8~lx zf3UQRPha)TGf$)4wn5D2l$m>*+pySF+uXpgxzNUPwAEtZ!Q6GQ7`R$V-ofP<@pE&h zI~n6A6Jo^GXly1+GMYK3t2Oe(G2-}QuyGvwZ~y)t-~PdoPhA1eZbN_Qi)Q?TZ#;`v zyz-1~oKoMpytL1JJa&=KJhrF( zgAvbv{k`0}_iowM8`4TNiE8k`6au|cMk>jf)*e2AKM5NT>6-(N-Fl*(IStKuphZF} zIWarwKCqb$ZXuf=F^=Fk5Nn{1RsO|4EvLBq2scD_bDg`d;3*d|(2Uf}e*Oc^JXDWA9)3C;rJ#4^RH? ze!sqJxZ`HW>01Y$dhr&v?>WxRyKfbb-GbrNLqNM1zzYGM1hhf%DJPy~N*gocII4i~ z^z03hcdfjX01PqslJgFZ;5;lpqHAm8&#SNz}p%R^rLCr|s`w>`<%e#s24eEIQy_e+nr)6d(m zQ9g`m(#lB#IauY(R6t*{Z<_5pxy{8~~WuM*ws7kg1F60^QIWY9@7x zmVmLjnEDhNhS?@GcQ&mwO0;I)M`?f8@%pd04WInv6L{-i{x|$X|LzBH`lYYNGr#>C zHtQGn^ql-$rkm zEG10rU;z4re*&0A?RVlr3Z5!L`Z~dQlmM>jIiUkf+)(%ol`U;>^~hfP+BcYGQUPsB z!c;!C0)`56A};Ie`gcYE9vR~ZVH*OE^qvYnC8n8Fb|JrJFF%yHAXNygNUD`88G#w5 zX1^KqjL5P;O>h?ZKEY3Lia!L8XdDi-hU#y|#3})KJ^#rpFI>k074TR2pps-j#WJOO zND?rb2is&0YK;uxS4cwLCR5>Ae_mPdNa{pMbYz5;I5W)r+P_ySO_|6@c$kU5DLxO7 z82&$-QN!aNSV|3r!YGyetk~Bk0wQ8FN7PrRm$tR)0Z4oYWREM$wLw^BKxJWB)09Wt}((;ZHH6hV9hzoj;|oF3qy~yNA3{!n#YRrtgX%X0pY3x~q~g7}WTy3beImTfJvkpCM#Im5`(u z=sl(Sxqx{NefqKyMOdPm#8gx)WP=t>0Z%9n{{Pp3IaIRP!K7g$%byE;^zu3Y3lC5w zA9?xK*?c77FpaIL+nb+Po#rPgd`i?J=#BUHD6T+Fs0c`zL5L&w59^CYt{2vLq8WPV0r#66TLSyVfb2T&QE z3eJVfb~6bVR*(zJY_bEY&{va;jHw#IBr!k2C{}j5>f(^jAIQvlTx2lRA$4Z!UDvTO zfhf|Eu=bzpGa}-t~!H{N^Wv#DC>|z+d{d(|F?-oy7d~ zF&*4E(5F9f-kyAF)%N#Skf=5^z}yFG&1S@GFwAC+!%!Ka2q{Th2QbVQ;h9lt4$2rN z!yPiC%Pph`>pLs^MyGNj@ zVFX@y@3a2*e{3Je?!D94++6}j8EpiYf@ZTAqg_%XPp80S{MzWiKy+Zh633r+k8jO> zo8unLwxh@5&|n)|`8EV3W98HcDEuIJe&KrNJx}4DmmIL;qyf))K#fW*IU>*=(qk%x zy39C7z31nj(Xaf%ia+_2m$AKd8L$7m8Q$>8#qmBb;E9nvNn*pu96K4pHeXP!i@~~Q zeC@`J8z{ON&4wA!JFGip2J_Jl_Pe%E%<+|9eMC&{PNe|{DWFC zmN)~+m`fhXjwmzp^3b8m^b9uPa1L>NeYzBhC-UzrI9961vaY~dDMq8`k5XPdLa@$I zHzI>VRW2(V)hTWd)30Xkc>?(qM3KgK+C7D=ha;IXqI&f^xP-+ zlidvx^B@WBwQ7Kq|IL6gGqcfxGYN$}?P3Q&mfxMGFJBB^cr=v;PR|}*Jz;oa9CE_%%mmhi&nFc@l_@t=eY-_w3N;EcJVufX zQ%0uZhxKz;f)d&3J-v3~*VG6hv72mqR!eiCmKYNPG=x5cYrItcf0B>qXON`^=@a2# zN1m_FMPT|$msV^BOcPQI+xuD-5U<*UsLFl{wE=Eb5xB;BnN>`(=g9d@Rqqtz=l!f6 zYE&qctv)01nIx!nG`Dra&jGcfiOUltP*LVy8)QzUy+DcQ@nqm^C>Y& zbxF2*YYZVnQ~2 zjPLivQ`Hz`B9BZ{tO~~3%B%LMc#4v!D;uc<5hPg#wLS$!%uF~lNUpIlDvN=bZCp%z zZ8Q;k?Zt|#prApS22f`0gZuF$hbj|KsKs*;B|jq2Qch@|cgQAkikUg@)%~6mhaT%~ zSud|L*13@^8_ntWW1afMtWJd15$8f^@;!lBm}7Iw8&={!8|C?WebR&G->!R26e$R% zyh{02n(~dPn6(-^*14S62l^x$jAop1-=H-W7tS-utrovg&L0pstiRj2?p0B4X!^Z; zQA0FbY6$yOfXJAOtFUvZpud{GAdPORVDbsqtbW`dlO=o)LLp#oo}ZRkb+pJdxnKjc zrZ4P7D+iK2$p;XyP*X&CM1UUFNcclw57wcpVj zZI~JM54x^gxT<5fT=I>rjfS?6kwTl18=KJfrZ)HY(C6-(3vY+>0jo{-<>>4i)Hpi3 znQZ3pPBg$gy5t#2br%-%hBK!J9a}U!{@E4Z`+Ix-fzQG=H-SI)6?6UJH=p4H4{f=3 z!xN9(u+O~jvR{5~#ifX0kZ%rVvq5SDXsxxe6Ew;OW5^?=4x^2tX2d9|B~EJY$q`ai zh*6se?;UMc1GvKW&_!e8#>UKNry1N|5JM3uV3RwKOsGR1?(L>z5tGG124Lt zICYZR+-x`)9l!ZIZom8=K8^zO(*h#8iK$onM5RKM6<16C;VK&5IRm_QTyJ5Bq zU7N{|jn=MiImXBK=wG;_hPjjju+s9URjN5FM7HTdz{rBGO(DbEfb2P}4pw;Z1%?-X zu-mo2x8nILj*mYvqW#(h-g4|`+RMK27xdyk_t!Wc z`%(_peb8N=pX@Y}x$xBu~P!8iZ$XYkF}Kc(yMdne!h(+~UG-*I4n<^Q@N!xcUB zK*v{qu=J({<$mL0=XDm%k-7j zqj4QG3lDSnSlR#ZgR=AyKIGVIpSpINF&hOku_DlWm9a$-saEt(c*C)+{j@RS%7%8t z-KYPx%tp2hz`TMhtZ{H+TL4i;Falr@4CM!d84TrKmDTkO0+gysV>FqHNu<3eBA zoXYsu-$#&EL1Hv)?$Plk6pYdo{0A5i3easJkU%(R;E`AN_OK^V{77>d#6$m){7bTtK_#vK+wC1X?KeAL&(Ge>D< z-9vm%#y?MG>_VP_`cJZ=`PiDgOa^0Xe9RoGE+Vc@_NuUo|7vfPB`ihnWskMGuu5e` zKb#x zIaHQRkWZJoXH1Y}fWolFF(#-nm{n;qM7d3X8f0Sz0SY#bm4(Y;vl;Y&CAjl!Dv}qP z8QA7!i{NrCck%q3lCfC$vdHpvW;a`AaI9(50c1^i^-~BYP}xJFGINte#*5%UWYn|f zyWS@(bSARDDsb8q0}frcZ>@QDjO0)u1Mvu7%>jtG*`JT|rPNS;{!%*>fNbo4e2|i0;h5 zmQ%nS4;A0#z7DX9wFYYZ50XufsJqBCmC9g}%~h5^_Y~>)0Z@do!!@KaMNK6tYZjkT z>zgcPw5dpkpp+=)a}>!E>@_B%U#beq*N!C8@Oe`59f7Gog!1oL#fDVgk67OcOBOgu zMN+7Q%IL<~i~u`Z2d43K7zX;fHqC&E<5oyNYkC;7TkW(klTnkGX2q!~ZHmHb7BJZu%z|z7AM@}#S9ZIhyqW*18;x)aes5oju;#GZ$C<`SE<} z<(Wgi_cyQEqfZ=aZ+GmA85>Mk%&EaLV^1?z6I^{5*kokyYZEdf(9JcvWZApDkqSk} zz(Hcn>V+tgB&>_pD0-ys98#MPnx8WJ)Vm+W-~Yj9@tLQ=VIXcl1wQXy=*(I3?FP&? z#CfA2XYattP2gqEZ~i;Kvxl#I;z>LH;s>GS67&^d8!-1cTxO2$rdif`T6eT&F|Mp7 zk~eB~1za50?Y9CK_rcBWfm>S|TQi%@#gJsf%>t@4IN4mog1%B~CvG$DUK)kNkE<{4 z!yp4V3Ya<3n`4I5l%ye1if1eL5V;K{C22f#p|Ndk$yc)Of;rrBzyn$*B#olm!HOdk z<*Y#~aBI`q&H-09Y{YOd5SJ+&Q$f|~$^^V?;Wa0!5(zjH3If8&XqOA@UveBjB@R09 z)e_j?uJ5@UG-%^Q=f+lplUyzb5a{>&&<=M->|a^=d;ileZ@&L0aqb)6L?5?dw(l{= z(XbxA+js5>}<8(_|fxb=zQyZ(0vUq_kE~c&Q)^zz9>DZnrXaA~Oc@ z5^XY3%o?9XT$9_KWK+dRQ_yaiJZqZHow}w#os0yhOF`6lPPIr(SlIn@l292h@yLN% z2Z@R8Q{)w;#AySH-2B{IAlrPMEbS1^4D95b^oQ}kIAxeqk$y&RzA4OGE zV3%t#)#S(e8|xeb9I}r^;r{$*^+s5$Ka)&zL(8Q0nv{!$67q9el61aa3ngA`xlI!Z zpJ&UaELzKrW=WB?4uljx6W0QQYVi|AJkb!VSWXn06-bDM%#Wd?Wg`JI{l&4-Gb z`pjCQ*vWjBM7NP?_Y44f2CteJ7Zj_OX=tnWDI+t{E}1O{p&A{Wj9+zvt)^>?jzIM* z)mvp^r>2ye30cStcy|AUuT>CrI8*9W(y0o-rvH*MCNYSJh}$hlfh28eel0S4S+!8b z8iSdWs)l7iyeD!WrRmB~jnFJ=(Of-@&)|8nb2qZ~s7o1OrLiiOseUgVTJ1qGW3{)% zgiUg%+@EQE5c}y+G=s~}oW2T217wvok4wWNfo2*#mEI|9V@Ad(Nw;FJQ-)8^Ks=m$ zh|VqFyOacRkvth|%YBU6d|+yVQ}3#1P7`7drKt^kJhAQ5=$mTtm$Gf0xZC) zJObyK)ZkM+UY((k0HRhX8YkBINd-krq~WxlD&sKiP4*lxpNw5}jgGUm9>2w%Bc+X1iX?E7xv5B%vOPr#xPM;2;yXS^0?;n z34o*bbbl6EcX*cM^mtBBI~0%R>%WJiD>7l4&T87xOh`KNGxBWr{H$zRjGkZwKoTWk z0ejkq^?6CV1V>kl5p+g2s4IIsuo}5Vn@d%rx?Edlo^1&udWo2#W|PA8J;%LwZ0vvO ztLH!PsSD7rzv~KCJ3I8%p{2tYi8c%a+T1v6gToB8W(P~hv(H@R{64-RQz>F@px; zXaB=RedbxWr^Mqtd1$l>Y+d(>gj+-gLk1BY7JICfHY;+Sc3vt!=Kp>;HN48sbob!)Rd-`rU0`0WGw9DMQv zk5IS{4)?(^V4ZF&4P2py9*%<93tIw^DXs=UJ;w75fl<^3qBR48#B?nwJ0yICHg*k? zfT5ugY8yl|(|8CRUTA*#Fhm zX+QACXgfQ=-~1uY?*~0e8%uae}VHDuZDc*07Fx2v}Oi269>X69UgQZJ3HXzUvd(^_Rd{A z@n8OHJO08KXzSDogLi_!O?Mm<(RKCe4z10&S|0S(IC8ZFUh~Sc`ng|y?w@Vg5Z_g} zA$!&cSO+TE9J@o%5Kb$=bC9SBDW(&hxikoUQb!hcVFlUpi4!v=UQGaFiIrf18<@`# zim-SRB;H~M6h}{RjPb*yV2zi{FHa1R`L_(FlW5N%U{c#A5g$s^!2i=5vQ%d+u~xks zCTuYA7tG+PDSb`i0n5Iawhs2zD%e6-`EJvvqJ$%{K0?`p6e`Bw5`kxN7u9KU{o&kuL zE_NvKYA_(4i>nTIN$KtdmDQQ`%l9ujNz3`R@FB*c8r%;;*&4=Ep67FS@; ztQa%~l?^p8eLjS2dbg&ur~dE^#+yE-+L{OzL)=oK z4*oj0k9s3Uu%yiA+X|NTy;VQuIX^W*W1kuo*Aek-(lP}-(?TPDuWm&?6Vsrj-I$(@ zD26j%yXWWUrOj(JWnhuXrKwYbS1=+#2KMai%3@woVRo)}vQV@nIhf30M>VJqMFc`l zLqO~y;sDm`Scb=|rIeS=LRDgwa-ptU)wn3L*ppZ(*Ie!PSt2vVU(Qes5-Sxhi`s2@VtoV90pS2Wp=HJK*x$nPcapq0cXwY=JY@f9$7C=Lp5r=bmxe z`}%oRO;yvr*o&Cans=@;5#)NUSmz_x3}th&^e7b;0)XblPeo_msV**U91x{3nVo30 zUuhF$z9ug{>lS;-zXW>plt|`f%~~@^BTtY-3EpE$LroJ2bx=pMh!xD3PGXN!(uHOg0pkxf^wF749OmoPuI z#o5_~Y%Y0QQ1cB88^@vfE*6Uwx3`+Q&$wD0YHLNT4yl7>hnrgyxp91^b0=m#Yr?yK z=LY}NZ@G-%4}8PG@A&rHv~klMPdHyBIa#o z^Et6vMaJ&L@d0LVN4M5Yi#gaea5b*b*|@O@r-eYXMNJ~jf{}}C(&%EN!#E^OD;I{v zU~U7ReonmgG;s1{_k$hS=ui)n!g+&cGhjXwTZ0CJW(~HzK^;FPd*6Ha_4+qIqhk-; z7p25<5)RA=DOBQ7rrePuIvnN=BZX!rQt|^5#MwKy{jo={aYe`AjH-kzzVv~_IWHcu`w%n6OcVgX-l2=20RL_a)$EtlYG1$gh=ziyf} z_+p`U{0#ikr`_z}qw0${xs8KqKBmzaIZZv((XFO4xT7~Vr>Pkn1I>Y9HfYsHnKd^$MMJZhjmtwv zCmwj|89wvr8~TaA`yu`HS3IPfUhse({_T%(-oW|sxt}?+#iyRU!8`BX=;Oh%E%ryW z`3XMo{F8d@!uc0px_a1-Z&<&!8#qQDqcxpOJmVAgr82R?OtvI`nec9wlTJYc2271B zkiU~huu)OAo}hb5*yLW9k`$SzIY`E<_l~%51tjhR^Dl5?0Ozv+Q#29nn?RGoy;~rs03lGn1QvM>Ww( zd>Vk#k<4`B)BN4coL2I(@Nl&om0F;60;~pq6B?>A!9pq7&uH@3K&$>cKRI*jQrxR(-WRIhNsXHPyIE??42V(e>liG9oT$)a9#{Ibk?N_KVU?xE z{i%_@k>St%E56Pg-J`o|DF=WS=Qc^b_#90*T1m$bWL?NGD$4&}BhxBC>YAKO0AK6q zz8)drsgZ~mh(MtX;uM=I0CEIMeKL$ic|`*h<)umxY@Uq)FaaE~%I_*8+%vGI(1wseDVv*-7F}8m zA>Ab==BpYXth@fl_f`%eYSvZrSt3Yh8Iv>&Wl&H#{RkEenmV(G9ZfgjC54HDd{pKh zhAy06NQM>iA}^NF(NiMD9CH}460^_32xJX*-C0X19iXWTDAQR6lWVyy@%|A!AsNp! zLI~qx>```Mk)@4UpbRO^L=MG1R=Gz6fVsXbr9`pL8Q5lkRkE>SZ>zg)3YS9aNK4sH zS`I_V&MfC}S_zJ#Rx--m!tq&N)Cl&{@V1oPyG{9`>X{Lr>r>;QYSa?b12_ST*uJbi z%S%qA9KEC~`Tb#p%6-J=)PKStde)QWTNkMSi)my$(p0j_Y~s?u)U%#06*l?z)djz5 zmnPO*;R{;QnEce&_xUX*8=R0$AN})6r-6fg~@GtTgk|rEVoEmXSs?otH7n zKBx$kEuDBZCYs2gvTwwZ^~oB0322($T?%8%bRyN|)uuYk_)Pm8;*vQHAqm$>CbY7|kfVl^-9EOlnpGoX38@4tE{Hbrg?Hj)PA3bsXr{3Q2 z;+G%z;#l;fX=dWW+UD^Ms*Ub)beF7m?eEJkU%J6_*LE;FH&Tmjp*Lwx;P`17oO3v~ z1eDE+XOUlTvA#InDOR^ZbSbcS9RkWfZhQg1PmOSF!QKUrJJLX^UWp=uo*`UCkJg| z6|gkN>Z)m&LAWCLg0f}l>g%RW z>32;xO9WPm)bFxU8?FpGZ32V1JTN=BE*|be7!;XFlEY~jRzyE^4C1h{;^-?^AECp} z;l}yq&pzdCHV4n1Z9ILe-~H_m`uG0HrT+Y5zt4x?`dR+Ozj#Lf@F(~6|NZHUeD#CR z;9I|Oi?9ERb2#1y8rWQdHhrG8`lmr91QKITj#obspImc zr5!(Y%CB8p+Tz45wBa%zy2)lwKeK=Pop%gRur(|YBWAlIAH2#yvMcO<5!p}%C0yf$ z@cUtj2TRO{%-qStwFf8*xh`XrtGcG-dX3lx9bMIc~b^Z=z5m7HN#hKftl}iv`K0Xl17eP~CFe7yu0EGqcf6Na%%@8Sh}!E%0|N z8ydov)HE*le6EC1#sVst07>l2^uL8ioR+U#>9+5x0-g4_@a4YvB*x4f;G>) zSd?RiC?mh$7$qL6XN?3GTPc)dq-*q2=wYyX8WVIxLyL7{r-D!>eijh`UhBR^0aYTd zNr0DrJiU5m7A*I_Ro1MMRIw?6Z!5ypL~mfqZA<|=E4l}ZM9BXz@p0xVP}8ztM9X+; zV8mUV@UKneL}2WSi`MZ+9E-%8QlDBPA%iL5C!D z^GpPLO3z*e_45iGA~255qLIz6#wu_moJrAmO4*g6V6VUw>0Gk^ zz@)NJoi|$(DM&d{o}u;eOop0KvojeuU~&Se^BMLff0l+L+-3x(RR>sSuR3HVdv4`~ zYMqhwG)PC5L0-?FN2b}=$^(z}tza#h-^Cglt0#V*Q;Y7pad{nJ3!X=L9-2Z1QTtzJ zo5&h)Ou>7#@Tr=w^_+Q2+n-V|YC1pp2El5kIfy?C=V-7gf8}X_iX;o>F^M3qB~R0N z%RRSjdgAr|iON0ARAslr_^qu$kXX|L#hIlgI1su=?N~_`;{4aX3)7etmGQ0h;{+~% z1RkNtg)(E2O7DDU%LGuY$Mn9!+CHSxB_yT^s63oS$s}C?o&x+~YBm@$HlG|oOY`DD zj4Vt*(zDJlR4jF0lGH0s(xMro!?WWwP^zdA9YZP&Qlu44djvG|NO0x4ELV{ZMmRW*a+4%>hbVV7iQWm=AZ*MB+Dfz)(hmV{pjPmQpE%I7=SRN&wVP^fh;o2g(;!E0&_Kbxk=DhP zsZ}&E0=>bT!MecZ-fCQ&9fsR)0v`R;;A8Jo0p*z6xR}G|jkdiZwK=dcmoK)B7z2Ym zeF1#*ksW*W&VkcrkVcuCp$GK_v|yS;Zl;hVGYkOST`j72`{<`0xD$(wkB|GiY9an;$-RAo7N0bb}75Hgw`3H7m?Y zP|y5D4bMt|7mnXaC`KmknGY}U(_efip8kbLvHy(w{CIQDjf>d=2mzvVg=TX)`p8Cj zUyU8B-VXLw1le!;(v$47dz{#JVgTt~;E;DH)9F_9mppT_%%VTQWt@RNYU~Ze$t@q3 z*KK=Y80JmOYa@FHdZ#+TPWQoJ!-7V0p@raUX6XHvfzLd3=-7D=?bIJ9Y^Fl#MH2>c zVUQ9uLDr)IS{x$JelqN%X+HDSlNa#A-}Za_=ri#7_El}+alh-#`|Yj=2EOzS$93yN zC;Hi!KVUlZp!bBV^^SupT?dCQdL!xVGr1`}ayIjAAl-WST$+=OX67~tap>~ z;Ly0WJ>Ye3Jjr+d^0RuwA9;kgzxt*2$+y4P$Cb304>)~l+pq7gc>LtdukI}E^3xaE z-S^+-58U&ZzvqKj{`Wuqz-@o=;4mj#B{5#(<-(SR&2|&2zt7Z3XNqNNUQ5F2?BX4D z;t`B`H2};2M@d*WF%u?58&onP{kYO+G3xN4HsPy@a8BDUS$=-H*d*4OK1Q-E%?!Vm z-YfbrSl*2Edq4!_%3fHNIg19=%*1>=f0eI=XlzZfMdE`QMEm6bh?di5v`%Cs9GjT9 z^q=Ls9BaI5NCgFw9AGH`1E1PNd;stkGIq-bzyWIEURXW9j~U|#NtS5h+fn4K zNE+5W_h`6iiN`82lG$i0e?ELp!a81Q9dLU7kZHlI#ycQy1e#R~-&0A#lDTKeNt{`x zH36m$_He-3I(93|GreTtLr&`wmA@HZ)V^8vL8!#y6rJ@6FX~7`yq5U(=vgiN7kDCL zo;)AZeu$Z*h@{nefGVf+(WmDRe1{g#UlW`nuubfv!q=RvZ3OWVPjwQFQ7&moU`0J# zJS*}{II{s|sw*vH3S{ChemCxzve!h#TeLj?c|Br8VI?86WF;jcHEhD27_yAhSc=bj zrtG_6v7e=+iStz|5!UW!@2NJeU$F0~&ajOCGFdf*-APxNzgU6IIyo4D!B`FYfS94G zI6XBx)2Cp<6Eq`bN1g|bpoL^=LYWD+fihlsG?D?DIu}cA0jWxe&qoIKE}$Lh5IHq#E2#@I-!3E( zQtViGIMuB8>EVNol8QBt&uxf3tS+@>hgZsEZoVwjPhz3(f&t@(qIm+k~ngX->t_-4cY0FX7Qgf`|V-oGmW+uVnnOL_n zk5aC0el`?A{5p{x>sR>^dNyK28igXCCh~(x&eWarDiT0QqnxjZWQSXZ#z|z* z%h~jhOA1rBT{1hc64@vw-Yfo{VRC&;8^Se7<~Ra&Je3!%9zUQ|9IJZ9_1W=U|Mf|W zEpiuHTj%iOHI5iqS4#4yZ@^S;P<;}JBpxuSfILBrK&WXF3dV$hz(rk-BO`kgYyjP& zolaMrQA6Z!TP}PT!0x!dx5As>aO$7`w|C$8fgk;aoii`Kzx9V+I_!8LI1g~6xA6&YQ&0CK}$MTlaWS5Y&uV_{3ltq+r z=mJN%}E2KvdQCG!gx}V`^fcC z6O|LnEl+*OUO=%k~~ad`2%+6M3yZ{Cnoym$e;{Orm; z{l2bW`i(0%Ib3ZgkA2o(_TaDb6<>40@BHc)z;1b=wUcMjecmw+hUF?$!CfLe7*NuU zOQ>5k-Ww!u6vi&>A7c5)!@}c_s@-%P?dF@c@zCe-5B$Ry>MQ=vwSMu}Khplok9-pU z>Q}q}BgpgR?#O$ee~O>|1QNe=(Zi0+Y(JfKcMCYUDRfr<$;D z_EJG*6w~%+Mw#iyBI%NTjmYMI1tGO|ftl1b!_+}Pk^q4Z3^5{>nc%8ux%`L7ND4@h zuhp78@nNaBq7!}vn)N;vXcc}fAC~pYEJ_Ef}dkE}jY(c$Go$wJPJJ+$nRALa}530$8XY3Qrumd-l zXM!hj0x?5n-}7~|vHAa`bIO;iXIM9`%fDvf(Ms0T-`QFn4P>Gw*DHU|N)3Zltddhn zah0R4`G&PR6)MohsR^@$OeTA%5EBQc5F!#NIJ&2_1S8Zj z)!3tqS}u;~uE!-#$pvsEPzk^}=J%{uDUf;?`pS+2wF0D1nMp^1?6@3h&nBazw64`u zud>j=sv=|3V*G?^zA#Csk%889c`&^nrYluJY#N&S8B?B}0YXh=WbA1+2uqMwX-;SS zFbm*gPHZq!O7O2J1Y0{Q#3gG?_A_N_)r_Ky-{fVEKDSq>mw{aFHxSB&th89yD`65V z1{>&6U&QQGIkBAa!t0<2DJo)i#BHe{$o;H&v6D?POFYQu-rO@Oc09y0A3V z%DqiDrlS(2d_UwyKwf#Qj9_cw{d?45GbX{QRAk}AluQbfiN*Os_b!wvUv~kNao)kk$AdDzA*E$WVG@0+mz+vfCK4@o z$WUY2*ZUfmb9$dqIqr<{yNSL~6Ejq%Cv%47sHXkRD_bgqq9wiVA7YGWvB*<@36F5Z zvnRT_qK^qP8ccE{{9!cY^d#dZ{@ufB&Id4{+qO1$pmFq2sOT!LPr`wqN@ucAbJn%Vm$* zPsyqS5!&SlkHBy}y_3oF)Qu1u=88g!8xUX2<8ORBHedd)c;hp_Xm;Z<+3qN8boFZv zZqT$Raqbw7jo{2?!)&wb_z7R!_F5ZF*6x9 zWU-G=;Uxj7g~`S$48*VISg@BlctKI%PB zfdBn(UmNcI=kM=d__`0`Wqy`4U7{ibv6rmuV*zUwQ$(7)rt!}i`E{UCqzC$0|v?;kzX z-~92%hHrhtXZdHo`%c~Q>U*>~oWk$X^i%0-5sXJ7rpANe)X*v_}-s>r(X4SufgHf=k&Ypeym-)<~n|2Q_IuKcKrA@ zo;ts))slMYL)*Q*<|8n0Zz z5KvvUy|Twl1o=4xdHLOxT?-|5%OI^t1g(9mtxMa2WSAgL_zUy3zxDFpoG?v2XJtyO z8FEb~3d>Uo6+_1eLxG>f8J2-k`6pqLI6II{A?rZr8kQQZ)>45XM+l6%!nN-fQR>dA zUlkJ{SMZs2<-rOSe&U1+GjyCf@V6oo5+hZqV2!j~`&+FQ&d#aSxq`=fMrN>C-js+v zHRc|=XU;Ozv1@#VOdtf7=^2dHny4YWz^~67f}hKvRMXiqMEn&!2r9rMYP@5dk1WC@ z0Je3!fy6e2-%#K?EmUPpRLPhkxp)-pq?$hZQ$#{niQi+diZG}c3CMUW_n|8kqsX&j z#8m5V!ldAy2(^anzmXn2uM0DYRnLk18xd%-NSb79Sp-ux-3#29L33QAT#3TTN8$pD z=M@sa5vd>Ll(@#UYtgNtWe3J6B}T@IiNbgUW5d=8)g*mTU14Hl0EXveI63uM0q-4-X{TKI2~UHMX1;!j8g^c22JY- zXUd!sohSIO&hqh1!SVp1&<&m;KD}nG*GZ{>y!Nu0QnHooo{%y)O-?1Uk97#JCR2b= zC#X-xxkmi~k>xkf03!|5l>N_xWl3^yI$!l(M`Sl8HbsygE#D-~W~^y8L<{CmQ>XY4 z&DQxS*;{UAvX`+`aVSa{Qu`M*Mw;sDi`$y&^7C>{$3tl}6!nGy9M*RwRJ%w5$a2+c zXHw>Env6%hVdf${$z!6XL*>M4U-KLSVh(*cA*hU5yl1fQcqX<~9v@dy(LR8zM zr$QO(aH?@ngdiEC%WN)?7m*aw+o_CcGQjEFa=k2T$>QvUil~{PBc6{gbQ6aB1ZC}- zp?Y~FDKi1RAa^=EnlXjZm;i_-bxJ-^g`Cx~I+a15&5P;=Oo2!q$r8lg$61In zjyy9!mT3^96Rm;QcTM-)vHj_aSJf(9dW z`uN=2tl1|&v+S!S%s0cd%xB=xKpNEM@EN15vl)DIK_i8$H?43il|y7e7$c20Nv;cw%gdf>n7 znfEOxRt}1`&V}QOJ<`jylE9ymTK8D z69^4Xcv>mzR~vjn3_*zn*0Up2aY&Ln&WfkLA17Y@*Bn^UuySG5h(l1Harq925m}Gp z7;b^vgXX>fI0taai7f!|kPu9TMk;h3?#;4OVT3VZ#fL;5G|)QFe!boGvbXBWBYWiL zZ8mFHARVeT0c47ZybBmOBKj%#73#I3*`_rmwDL+76w+Ry%X$6J2+(e|z1 zbg{qUZ_k8duLKS+yNx5NSXP{YfQe0VcUTMMsw2_~7WMiq%1%1>R_r@Z`Qek#nw{9{ zvlFL>`OSCuYrg-b{)X>+g4f^sVf@D*enda=wvqq#H$JN`x&JZyGk@|ny!Klj)Z#_Q zw7LWwTsn}JBYg&Pn1Rq>2C) ze{b(#lxGG|J@9Au8jlA|&Afmk!cf7?;bUaq3~_R%DLqrBI|8dIS*!@Er%v*tl0ix} zWoKsoeVPtgC3sC)9@+|*BB$Gwue8J>oUlf@iEt4ZAlCk>}X<-OFTER*s zYzip`KC;9y@w0MAAzV-~=V->n^Gtl8HJ+GUStX-VFURy?Dz#=Ma7uwl3?+s!P~raCgeswO1mSgAk>{jvs}e^|eT9LvKDj^M;cSzS z26Nquh$$H22r?r3J9Qi>(dNz-k;Fh%U>gtK2)x$5e)shcIw` zD#aE5QW7-eNpxUfW$P7L+mZ^zA|gAB=7r>%HH(MIx`*n*kCH*hX^w!bZYlxxWU=C~ zT4fpKB@L@9vSwVXP&Kn^(-@_mQ5REOo zvhYNOvTU}<3Ze}*O%TX4#|lDA zmC+|f38&ybBw#9|g#0~ba4F;kNzaqU%@S79eR@7JdnV-l3VZ3<7oY;S68EozUV{Zm zk(bfZQHHTe=OsrqD1s&9zuqFOJJ$!R%&c2>NU-UA<^=gEV z(IcQ5Dq0ee9Vwidy13T#qO2hlCzuqzce<@8wM474mPAB=fB*(TY_0Mj#T?AGY>1s0p5#??Oe z_GnkG?rZbX1#N7dkZqqaHJN#bHW%1<=q1p@zr|O6!LN-UyJ7r|AGles{GLCcp4|HFzoNF zaOTcqe9=A7GgraZ1`}5zAfwn>#=E8W!WaFnz(pMN9n_@-Yl z{@7cz^O0xN?;_O9hPkQDq(+GigDA<3MydA>n~8@9!q#at-Edm7b>4Ir z^vO>&{NPXR^IyF3KjX}wc#U8UXe&TN!kLPmK#)dj>H*x$T#~}7jci~ey%VI&T*8%| zws-l44xe1u;;vh8c=J7d<4d21?|kDWeCH=0#(Vz#@8KW)*bRNh_n+snAADAS|9`y& zU;bxb;)|D`g+F)LcF!MZweOq_kYf&EKJS5ZcKXz2zjFR^yZNTg{;HR3t^VEH zcmDhz{pwr)p4kZRncTv<+%u9gj)nl{mED!K#1AuAs^L1c_Ky~c4o9?`tRNzisa9b_ z%H}f(k?6k2?`Q`eetPn+u@kUvaErbGWOZ8C)T}#jN&0t%GPLJ+2T_4cdIYj7a=duu zDhrIDv10(UytZMgrB6JFDk#Wug$bHwAPZAXSx)~%xEF>^Kb!$iH2h`7U;rBE9Ssd} z`Z;}WHP$6D;cHb-9|f*Y6ND;1j`)Hx`nUo#I$8|9sYtH$d4Pr~m_y>(7)w(4)FzdJ z3bA=S*Tgcg0&c>4km!|USt|+R_vOki?-^#(zy_Gs%^8~rRpMh(6K0GBW{HVS>s#Zi zr|fyA9b!sQsH7)+U-23<4oL#$Xd(e_QHlaiiHnNQ93>cF_7EzZnX1H!kt&{H{VyFM zt1L;PXqZ`z@B*jB?0QE;&Q-G>J}u%91r?bQ(s=Eqi|AQ^LnOC8hgf-WDuiO z0y*{Am{3-#WLWsIVv{!EOXiwXyh}Rdg|egcredNg`JDG6@MC^u-hZoJY|JDziRq{d z5i<+OZckD2s=EXL@&GB#NLI3*lb8bVU{?E-rB!J;yyO&`E@c*f zC9xF?R5Lqq@Wwx%nhf*Qg+lYyJeut(&z9iz7hSc*62?5gU9pjlJcq^7U zJ~l63i{Gtr5LF6>G8)9x&5@~YkcuJYv{zH`lK*{Tgwr8SbJnpA?2xc1jG<38M#^U` zrmY&n)rFd*PxT(u)YxM>Kb3(-)VYO_A+qN_1=Se@M^og9Q1WcbI5kdW?pdl;qVY`_ zC4)iDftG)hXV_C&f|N@~Mm^tMnwVpV=~j>)@l*bQRCpZ&wzUvu#a@RoP(%%8h> zZM8f&kb%9C;$Xy#Fq#${Guhm9xPor%NLQbE4$Di=&V04oJLisJ-g)n9wEw>M=(ZQW zYkYhc_T(?Vu)Xqcd`myLV7m0d$FO(xTAT(a;SGWYDQ<70JoiTC>;)YVFv1tJ`Kw!OfE&ztG`p18Xl9Yb(1hojVEf`K=4v}Q&#-`f+eJV%^=PPl$$ z)VXtmpStCYh-OZA&r1{Ct9!Vf9@cejyq%znmL(FM6newqGmf24lKUS}UwuX$Bec5I ztv@ZSo^1W_QDF6H*y>Zw#*e}D8LB_+)Ky2LIl32G6jo_<%>^F?Z`pms1G=n~URph^ zTR`HDu-Ho%MgTL1nH#$iH#G1(XM9q`lfBs$HD2(>3o=}6 zLwpx=1a%BML%BCtwsCF}x{r{Ers(T1c*8zNtT5jC&;9m4_jh^M*PrlX8#4@hecX9` zrOTfgdH(T^OHa99y9n$b2yB#D>%DL3+J#v&qHF%z4j!r#9=f*XnLA616myZ~=uS_* znsTzGI>@7W+abB>w!MI)k&V4^);nkJ$2NtNC!|~NfZcg3bnc8}Ys+YZ`_{sB@AKe? z>i+BpcieHSdb=4I(Zc4L2l!#+JIFDI??lW32Fz(tqdL6>Y~(;RLvO7cXHZ{i|I?qq z;cx#B>Lb66)#b72!O!cj|6AXNpZ)kZ=q*2VOMmTs4S)3ST+j>ddk6phpZ%q_d;X%1 zz3{kBKXlT$HL#ESQPN@rY#K``+;c9{u=v zf5q!=)7hKm_Wlp;_e+l9T^%G3+TT;}jOm0h0bZu1HM2A;%(aZy;jWpbf#gw@ZG z()9_oPk~bSG|z^H85ma*r0PWTd(04`kRtyxlNyN<5015Pt1*Ks9Z}QOqoz5Hgk{iN z(Xu~-j`+DU<86giGe~ib5IOn3#&}jIGRqtoFp}<}FY>~-N_fvH>P)lkCVcaJj-Tz!?nU0+QRBNVsfD}dx%u;_Z6oHgS&hmN8)-hR~&%9st-pKX$ z#GHoQ$BMsvjsK>R%M-p`qumPL1AhhnuRSR1PzgHE&xiShZL3^oieIt5vvCyHn7S*m zAM$>>Psuyv-$w~hoHfrF^=P?i{5=zAe{TFSHT@3u62)OeGq=jP=iw^$B;>!r9JQi> zazmz7rx0X3pp*FEjYRXm=GHb%ZP-erHih%N2<+RMqqjLVA`}sxUvF<@RhdA$414wi$ zN3bR$*0p4YUY0VO??s=TmiIHyzherb)6ik^kji_T%PS=5c_brYPJ}G4R?_Qo zB}g!$Itr=|uT^L2JWp;(m~agWORpDRx;`y@nj=WOT7a?YG~R}Jpo4wq)l2)_dG=ZPjVrXl&~JJjmXCkT@A;y4Y0#A)xmwajZyICvk~*Nhedx-KuJad0e)ehD!;g19_9$@b)S%aY*)2SA>z4d*<>(^S z0ZDXEs-gqdlQmo8qu641qtnWiaG=cwnvK@{vbEJ^HtZVI%_tw5b1+%tW@aMX2O5Am zfaWwekYvzBO-Va*x_uPTlNu8Ubxzb(puo(?P$Ch7u1r|Xh?NTiff=IH#Q?)9tQAK_ zd_WqE6lq=_!xUbvITU#fVOF1g#Is8l6ey8JML>f%z_DSZFlZM|^VV|Q*N)$e~uD3(&+dHHY=|6a zxW=%FMo+h15kQ=oDNcmPY5<5C20`>TmM!*4Okoy|+zAX;DB36ZnM3ljiCmRs3e1tQ zR=D&?Mz#_!*&q@{BoIe>F|~5~tIz>plu7`Rm5gddrYjCV%;-!Q*iuBzdAG!B z)|5`Q^gp$Bu?9wF#&eDD!YZVpv??vNP#m&6V(u>^jIw$j6IxQ5wLkGX?Fc?ke3^TJ2m-zT4LkG z=Wf+Y$};|OteYsu6I(n)#5NObOZ>;eUF-D%s*D2D`mE1l1jv@}Sf3wb#+7{^^7)S7 z%-ANMvg_5{Z_3FV%Ir?h2Ux+Vi7-K{{mmwjN8$^mjkbKRh)?pPGvPB?cVt||%*Hz~ zHAb)awQyvaVF{ebgm}jzFf_eooc&PR6iihly%mYphNfN(qRU5lD#O@(jXLzJZX1#6il87_(#Kps2sfpgg7-WD^KRP!WqnsHDqBWL1`z zh7-GIaHZ_rJ#?fFkV9@3Vmuo{KIW~Z5VO=3L&!rcCF3O#$e@G`IcGhaljV=?C==<) z!#NOR!F&q(Li+A-&R{vu)~nxwr#C=kEUlQA+~4@3XcmTCFJ-$VRDfjyJK${7&qI=F zS=x}FU$S%Bx}M$vvxZ2S#bqhkT(eSt#OKxi0=C|tBj>275NAx5AP9O9K^@`%%ih$= zoF4LXy01ws<@151Y8W7la5T_5+*>lx`8=kmIw0!80ANV!)5u3Bs?;K-WUf`Sm^wFT zA=v}Lu8I61B9y4{Y+^&tI{4_DFr*rSlbBXL&S}^pLKvZRrj9V8)mI>%JI|L#c}>-^ zv$Vj!k@D4*( z-%Qy7Wr!O|pdb#MLaVw=hRrR76%^|e61YNdocedt8)nVSeegHD>Zb2~#|NMJvJZZG z;Mv=+4G$eNcWqm(_kqj@@B(;T?G4{r_3F zE`SgI&Q}WezShRaK4yODf@2OXyctZgC3q-wpwHClJIn5?6{A>;1JRd+Tlemba#zf< zYLGat$Ya|8w1RhGbDoJUfvthVkoIy2MAO3UM7bltRfiTvUc4f#R*tRh8TR&E9l#K^ zG)~FPOdy*mgn3K2N zY`p9KExh#0UyNfXw}svfK7dUf)&{mlw$Aqq$}oM64QMooLy^+hP`hPBbUIVX*j_Il)43eS)Fk@kR!09K0YZ*}6CrFeB(-8!TX!888qSx+RikcI|9xS^g>z z)*-raG++!i%$7ZF*k}N|*&%={GPDe7?xN-|CLa7FJo(@?KZ)}I9x?PMft^qK-lM-y zU3=OV+cVn6zU%D$;?`^FnA0#&m?IPqU_i1iK`k6ecVI?E7dFxzK#!InS{eGG5AB#e z{2BCHsCLttE_bSX3^Rp`t-;Xbt;5jk#qy^In#W3Y8Xa7ptgF{uzv*@j&;}A z=mPpEdZXx$ZY`J*snOuAOQRX+@b>?Z_2==nZbx+(I;!UPt+jT)Pk(OT>Rw4#5|U5{ zk%$n8CfHzt4Q?>F;Rhx*!S-_#{2ma8=O*zZzz^)?#ZByB1BnR+8%%3i1|bOv34wI4 zZr^w3o^$ruXZLG;->iCn)Tp_({KOA6ckjK{*UVW}W7McIy_oe;rui6t&}zlU&U;m< zGqY0T9J0E9)5qgOm8&T%1m+T)+r7T z=6ZZk?Q@^HrtkT>H`QCtKk3gsx}%dndVsZ!O*uZEW47AML-$W-zwqI`zw?7{+WyrW zW4ImV%q&dWys{7+HPsaBB_9di8Y%3}Vc#5at|tUOWS7$^KPSQN0oZCK*;`4-B7o00 zFmE$K8$GT$Us_Xn0HCh~ zoKYv&Q{~8K1w;zmt)1!?WIst5;t;2wS~6E&5jcoubTKAbLMg$Ymp0f$cYMh@5`Zhs zr(=DB&w6P*FDOXuzS3VK=>dgRX@}Yfug|7Pz{)+k##LWUJ%0i?xe5qMy zO5nT*S5cSen5ol~t9$`Yjdd6Y5=LAonhoF}wa}Gtz!4USKE{8NlMLCAdt;PPBXz-2 zx?*8vlZH~c*qkn>$q`n8XpO&5M#E2mCkF~DHxngS85RTMKvYAAb4Ytt_Tu? z*Dr3tG^;hELx@MR(dF|6B_9Dgyd6ykI7}37r_J$z9L#Dm8KbP)GG`?d=g3r-?-vNr z36d{)YBFCzY(%aTaZur4Bs3EEc{77?f_vwqiG&)mWg&PJcnUjWVG~@({w3&4zzT;| zCzF?JA>OSri8dvNr;kHz*DHcZlI?K`gHwWIfLIucI4@M3Ge(@VH*T&72HAV&=0}PH zW4-1~Q!e+ooTVf@Nu25dfTLF@!L%}<=l*EQ3mU*A`NM6D>>`<^hewpO?Ks7T?J2q8 zep!O_*hj(or~EN?Fj@y*kOq`0k^D1VFFWOdawDEB_g{iw%7f!xTv~UcNwO@Sk8-1@ zX-&+_0g;84zWK5;OM+as@61uQjj(GCrJoKfkk z&%75aulq7AUVF8UHxERLNGUAC1=i0BRyQWPw$W8U-pY(|M59Q$fE)29pyc@|G@Cl0U;%f%EjvdOnOH(x4BiF zNX&)_JX`^zjW$*@h!*WUhSRjdMiW1}G55E=`&R#>UwP=i`8!AD`t?Cf6jL?1`%dw- z75HS<*=(wQ_SQAM{dE`p;ysr!*+CcRGgK4anqQbj5z95T+F4YUy znD!!OF!f$+)<^v@7;0Up44tE^W;#{bUa!7>R^WBR-TN8^Of6c~D+Y+cL|nww1!IkQ zZBt@IG4-&8akt{;Bio8LMu$y{n4oB9qOK`R(Kw#q=+KAxiJrW6#U?9Hqr2@6!#(f9 z*Zh?%+YkS#_43U>^uF=TJ1=5*c3*d%-F2%#2UnR$ z)f2^Nb*$#ZfE9^!Mk@Ti_m6JAYp z`W?%rjkjmk>SM7}_52e2!y}4E{*LBQJ2j$V1A>2dc!~Qmu>L{356?P^9dDCpE@USf zd_q~rMu**(^>L!UY^p|K$S!h_S8j$Xr;iD=rP5mxH-NQ&l50*t%$k+;X51hDp3lr- z^fOFZym39mUhyQF7l04vNn}xwM$vb6W2o*$(3p-P>X`$a&tm#G` zk`njU&Clx({DDp&rg5?Wo9TSmvUGPhqe0&?SVWOY6l{naVnEAdHAFepY6@42(|Ea{ z96}LZ0MlG(s7qEc$p!XsSXlAeB#+sMps8G3PL@h6gBKS6I)Iqt7WG8Z5vfRsZaOV*kJx-fZql)C~3cP4i}>$d)JIw5)_ z85lt>|E4e^@%^NOdvZ?c=3h*g?=P_kPIa3hynkLF;yX$l5+8{WXv81Vn1^bd8ny$i-p?6qt{WoBIoV`!}BXp+}$G|MuT`Oz(QrNB8RozH&C1t!xc* z>me0bSt;G|NpWbW!#LE#6Yo~GyK#PfwD11b|5Wx4M)}0gzsdW1-{r%r*HjK}6j3*n z&QT^PlPasTqUUc}$Ks&+i_h$oqxn!TUf3M(x?83%zI1?_Hy2o&s@H{!EdVQCMWnh( z=W6g#aCj_IWP%4Cn03GL$;CLB*J)_Wp={D5&j_dOg76e6gP#n5i0HX<6RYlyTFupq zNRbeK@#H*5(NbJROdJ|u5-45Kqa*WvR^@}=c$>ZH?KkT%ul=HyI-O1Qwma8-?d+;d z*Vm-mT&0@1tsWsfveJ$OGJeF;0U7d z5$;{cki^ji;$f6Gk&z*b$x2kT6bGt=E42;c(nD$`4F<~TnW2$AF*r(aih5 zLy40rA#nCcV&|9u^k^L-8!wohiUiFGiGG_EV6{4Zu|pE;<`LbfsZob`h=;`; z80o0yr}|?Z6x6CxgA`eK20%*ib_)mg1Q<=c_VLRrE;1DNi9rSjCL&l=^LeMz$E)DM zVj2hcnn0>MRHS&3D3D_P_2KgtmU3!kA_AAPe#tghRQ7I+dg;#2rUm9=UDv@;BW{$L zVk)j!a~}r5I6!o&vN|)FK%r$6trne3_XSWVMPP;+T&t>teyuu8s)O>~h4U-&(&~uMKYZNnKlP%0@SEOh|N5u?V|n4p9eLp0clhk(sqXAA%> zWHIQw7c14Y@u>(ady3L@`o_On$2tq~bd1Px|gL;b~ z+C?6xtSxHw!jdT1&v-uBRpaMmO`QgalK-5=gcILH{&b{KaW*5&Sf3Ueuq_L?1`^|0 zI9=C;f6p>PB=UC0#*!&#&AE62w?ezPBo^io1E~-OQtik5?;TWX^Ji%Fn@8;!V;7+a zjhchcmr=|k{kNs07LhZKc4U1;uQX#ai~^E%s+@YhteM*L7cPv*74Ymf0<6<$Fv!vD z?D-P4MlHjRd18K%s1L(Jj!hGZ^J9|Z5^fD8egF+R(?;G2h>H{Kx{+wmz#+m=?+PhY zRJ2PY5yUM?UW}PLI<9O@RK_WoI`ZRDx(r5FI^<_}tW+WTER3oV2l^(ecz|-s0)83m%tc zAVW&<;{+8-a1vKk89eAHUxF(!%6Wv~BslQs;>N8<7d2l>U<)2O;|^E}W{h%>;sO}E zj806E%u&7*LlpA~&LC*V%osm6pS=k~2z$i@|8Z?3G8B9Y1cM&Z{4gVCl1va-!RG^l z#W2Fj(~Sj&=6B$%rX~Nz8hBd1e?FIF4pVCr_L%VY{$u?}j=V~`&GP*tj4#6S$r|`` zQ+Q_$+ldKJ%nKIRUE5lS#1emx5&+vqEY}V9fg1r5*L50rSO!^2b21pT&TRft>mrlo z<(P>ppRX8i$urgx{DU$uFjz)nG~vk>5)Q^rat&EL*LC7WIdqywE;5Evwa(htMI zWTq_C_u1aTFCZx!N%g#v#+iK23yI60HaWrB@ zb}D#n2m_-4>>N|bSZaWKg%*XR=8nZ`X0z`&O0nAc3Xe?gi z{hC;KxiCIKoJ5#V1+zQ?HIy=r0Z=Sp-}|R-dCx!msjJWbyN{i8x83&I_?CyJu9Lz7 zQR?cn^S#pP$v9$jMaRyeKm0#DB0u+7wg2$9FZr!s{a&2BR;8cs`RD`0ibyxr$(mzz zvojkP{*hmKT0Zl8J9zokc|AT+T)2qId){^4Zoh5APL4-8Hb>VxPKHsq|NHPZQ*_0! z80NNrRQ2@_Zul)*H|545%4{vRYz?B{t8<7d1T0PvF6p)tx9KI43%-YIRt)iXtuh(F89Cfd^cU6dAGVE=7PoHO`r;f3R}E- zvlyzV!L{oV>3CEx9mK_@I=u6)ge(Kqy=o1MSSyg2CoV-o-(7*?P;`JfN->0yLa$v1 zco!O5M3)TGSFxf771aqG#e!k0=2#I(2MLz5bL}7~VqRdlNTXMAy8QI<-zP9gi32Xf zwlZK!>EVhh-57Ol5z<@2o@^i4zgQgpw#${T2*BzZ{sX1P3ZJW>Gmyz}NEcwec)+oe z(TN3~_9CM*LXdoPcl3Q0fSU*y}7*Y%RXek@ymyL^A*R|CFy3f&b7cq z9dR-VtQ6BpC*Jk3ox4uz){0{8^CH-@04&v@-U05Y(L;n9q*il@-l99Y=p`5mq*g(Z zzO(+^YQ6c`)B5}$yjX6#=d7Q7<88ISYYRTO)C0qCaOCx*ius@=Iv|y>O^c|ED(=Sz zUKb}tu3pFF>>2czUtj;s&pcGV<*~>0$G`Vi>tFie*W?HOmtQRZ?Ei5qzT`XJZg<^& z5!W8MV&n6J!2ug;tlt1pu24)?CwAvOEAqtSC;p*-^926zU;BW*<4qGh_WL{b`uCx( ztn_8)`hj0MJHu)xlSiJs`MNjUv;FXV9I255L_)C@-G1h`II$iAL5;#^S!yCjIcX&9 z&N_jh5<$F&bGK%^OOO?c1x)kzdMn=1sGks~61NA6aRG!hILC}YpsIfHoQGL<-% zR?SgQ)!8{p7VWG!ji|O-KI(%|MaN8ed|?vY1Zb_w=kpLIP9ykCsXOadcZbB6uoeoG z;}BSTCQ&4)vZ?EWoaK(x#P`!ki&P4;S(XS*@*Nc3ch;ma8m!rTFwlgKBc_Q%viTE3 z@2wFbp3?E`ShKDJn_RZs?M;cN?G^LqU?YU``&>U+eRSRw70>{v*;1k-`4 zmU%isdV6omqv?Wx>Zqy^&;pw?^oe(tM*?$gImZ><8&R_afPCJ<|1@u-md-+qm&=-- z?jjbAtyGfddIpH8*eB@_U&@|ct;G>t}D1gD;6Sjx>2@^(Hts6{;jf+moW&7fuy*FYQFSaeM$6!%~( zl+#$ug+(zzQ6-Bb`S~KJWExAC&6NDRDrG_e+@fnKZM6q;s(e{B7N#i!f6XZXmPZzw zQ7OUpF=p&@kH=CY8I`>Y5(SO`mOw~9%#mXRl0m&O3hW4acq|mjV4d$nnVhU$OIzej zaw!&dwP4uN$ALjozyqx)$BG0=5M5%Qx%gx8w%A}j5QYIp&2Sey(BOrTZ&sblTK?U({+fg7L=k&2m z6v2(9e2(j(T3inU3OtVQiTxPQB}kzq8y_diaedXepTh2ef=8(o4GEto(Z-<3(Sjnu zZ1YGiq+w0`J>Rz}LSB(3h>q|Ah|abpIm7)E0V?*Va)6qxh%buq(ISIhDEha2dMEbczng73gvC(yV;^SWDSy|bO?Z{X7(d%66_4_~*gQ(a$E+uAUj4}wp9 z;yUadR<_T~9Iie;uG;nD!{8_=u{FfRioi$lE3Y2lfe+qhuYbce{SO~G@zquM1k9-+ zgAVKX!g>O**#vU!09fsT_r7xr)eI-c6|!vO;HNy;|y;i6dbg;1)REu{L!!W^Uy-Q!zr8mX8R_`LjcTmA}jES|-EcTd+ zVKBpyiog}W2gl%o6A4kf!`*6?p%hdrm=@0Qi=%jlB30ZSV<(~}IP1Uy1tx|ySFFOZ z?glT=b!KX)p+`9NuZW?SnBeWzeANW1Jm*Cr1rp8m^?ZN-Zkt?&{($ zq6LltB1Npa3)@xFZ}=U5_Akgc-1&djS08>wPfmdOjq2#2+E380xL2ua8tbkTfx6gi z=H>FOW*CZzA3`vP6;VaB+ss8`EHfHP!N=AJa8=Dv6(U-z+wAO`*5iHu%ir^`edY-- zw{Pv*o9}+QeC3yK_(ShJ>*wEim#^Hu2|KJh9FH~}oG8YjILuYV0!M``RNd9a`mg*q`0h`99Do0NK8dgYp;zkzKmLpQ5B}zTc-J?)4r{B5XCABF zYp)!RBtyN5OPs+dxb60tT)w6AU-{)5_J_XbsQcgoB{yz`5u5APlfUW%YgRV2cNK2(M*^(8=(5*>zI2r%aiu7td~0uf(1x9n7L zrAc(w*5;splt835Zz;?APK5a@Y6jD!rzC1qql(KSe^)6{zdD)(J$#a)em2!OmKV`+ z4DbmmV=L<$HVv}=E76DuP)DE!8lA!E-;_zIW$4hicz`QQ^IPT*u>Qgz$~cyW;Wu3LK+I^C@#WW2?s@XOSPN3!-B3RO&wkdQb)G;i2RbG;pNL zP*4QXz!$56Lei#n2@|xtAv^&1jZy;vMfj7706@O0SVs*aQ}+6F_b*oFFQr4 z6pH#6^i3d!J4HH3BLYYoM0w0{c2WbPP}N3Ko_3|mQ$SP|W?c6XA6OK!&{cN5VC*;% zsCmkKTmp;%O`Z{;j%Q?hzAS>zWE&j}2E0F`fgC}Twz&s4;06;Wmztz$#qDIgL*){+`S&|qf#Df9EPJv|x)0n%DncZX+;Q}H3 zD4azDVv`8cV*v1!CK>0<1o3r8u0|`VD&xl8x#jB2p9zO>+ZT|E2_7h%_g${l+*l$GhE9FIn>nZhpOyY6h zy8J##^EYn>h*2mggSanEUH~c_gwn2nYE1PsxFq;i_M9Y{O9sVOe#RZ8p-7AkaD6Zk z7|*fgZil&|7=n#ef>sdpBFP$U3JnT~;>ppNMlIG>CK46nKLcQevqp_=g9>>R5x6VK z3mTUoWNaXVY%c6PONuK(c|&0Ah`maM72Hd^zm!|GS;pJNo_Q8Y4fhXU}FcFxhh?+aZ25tL3c z?pai6A#`z|x%~!?LG`j!5-9&}+;)x}u-|NF15%S_IIz(qz3=0eGi{aAXjgoKJl{nw|&!gcj4Amxqjo=RUOp@>eXru&pjw)bZFtg65w70 z4$&bP8t+|2%uz8qN^w&k1y-uW(TTklcTqJFb?G`Xgk9*ZRJ*Waj%mb@4jSAr2ps5E zi%fgeej++sHB43=W#*%1%oP2`ikA%&U!4uJ)iu%0vqfebj()|<>W0hY z3{)<-;f#q~hWg#bbppf8tISNXRz%GV1!0@o)9d*s zMfJ>A5p9BYjU6hEIFK|ddP#q4H*FInRUukg1#~fI5yMMC8JQ^h)aMnbxVb>Ib2wa! z1DF`<04$CaYnOcckNi2Dd;ilmKK%#|9)HGfyn1Lit_*&7b1dkf=wPLHnXPEmPINJp zy0+rhb>55YI!1Fbb(E+^rHX}_t``#*_iCbI2=5RXtC~nPf%LL5!SxS6Wlui`dDGny zzdrIf#@~MI&>#HS{qAiKJ&!N@z&X43-M8Dyy?1JV{;V%{j;kFUhz)a*P9)~~RKj(? zgi*@j-0b9~{^aHkrrQ_m%G=+Kzwk550=-z zV|zUR;?y4hgS~okxIj1St9BwV>ASVgU;l=6`N(H>_0ivW#^3VQ_u-fR?GyFYXLj}c zT^FQur7Y&d@YV-c^f!Lz;OoC_rTbwtAjA`RkOp`WADsrZE(DbcSRyeIgm}$@J2dgMKRlgM0Z_I*O zpXBo7-^bbX`SV!wIl2vyU=e3MB_uSQZ=QsRc+``|`lbNtq;@U$oT5-=z=go|$C{G$ zrSn~+`Xay2Jv;mwM~Sz55PO1iXP{$yuFO`uF0pdF$2M!2*g%uq;q|ysnacXDg^6r3 z^6wG9AB{bwLMZT&a$mRK&owVdjRltDBJr5I?3SvBnDz6#talGItv7?njr38(h4}rig`->^Lh!FrDi+n0D=cWmu zfd-u8^Fq4r%C4OVgADMW&!!l`Xqz{dwhdxoBQ0ULkO9CgoA12Zn4L1Mv9Spffm6IF zzw-;ge!h4ECpsMo>hfI)frF)`H6M8UZkK?Pl!|$>x$WzeY-;{p1SZXg7ZEgq2)Ka| z0Xuywl8h=7#$N@Ygw1e((2x$=;NvH2aja^;lMsT+BK@vDzC1%m#$sffXl8RPD_{J~ae)D6`Upx4v-#O8T9^BC{eeW8E;usgOeyzv$6#m@vH{>^;fqw7% zJKKKXUM%)SU3)b@siH*y@Vn z+KmB+dyBHZv010nB8y}5q3~olcNcMW9c41<>~Md9&wTO*9(?0@yy5;Uc=+)V{R$96 z<^qHdJER8|CjR{MkgK~cU-PA1dFTyW_UfxQF;>NN3UOG47Zq9!RxPz4wE2eQdZbWs zC9YaSouUdCR33fD5i-|WYZdk0T`&%x}2vUmd%8 zDCh?9gMD)!;a6Tmtq!jP@j!u#X&DBq(;gxntSe!O(N9qds*99@;?{Q}hx;~QVZ}zs z!ckD?Zl+T)Vs726pmrBf`y$e>2&S{rm8oE53%ar;vT{M{ z^=}({mlV3l6>4t$vjm*2W^eo2>OBodN4AI`PpRo%EH;HK|fN z35rKt7H+>Q&DiU3_eqQ5`}p4~B|1`UBG7VJYdm|;Qvbpn*)7$BVR zbc_zsAu>ZeSo11H3If|yXy3Vx2PR(N8xNH7_BZ&Mw;t%$-ph8!jc3d7+>2IsuG->c zVTXGsdbDFc9swdtlvfyKPs0^oJkEKl#cx%6r~- zu6y~#9Y1r|_E=_9hg5y=&dK<{|1#cmbXd_9U>rl$6lT{6{Nq)+ME*+<9D=XR@$_J- z+0~AiYnqAJ>F0ttj`j;`Rb?$4aeQP=B?L3kXH%+84RorC?5@Joc9!zqsMClvDdpE} zj1ZWJI&?&g8EVA$3X=DT`YOP5)S`-LYWYZ2p`bNJfOrmJww8^9G&AJLAxp&s-R(pI z#5H8ov(= z&gz5Unb<|64ny-(5E2)yB%lg7>a%QU#G_&(4c`3HAWN*0()wk6Nidrv3L^{HSvJ-k zQD>zca5i081!=>Rjrb4<6}h?0V;#6uNzNS@Ipm^D`Pe=ke32UdVqBJS$5Q z0378OZ{HmaHLxbkt~$Z8M+D6#5kOBg0^8U#%6G(fO27`YP|xK1lBkU!Kr`8fqiDR3 zD%l=nL$oz`qmkqMoS3EO9eQ3X@uPUuPm0#8&HFdv69<|~)LAQre;3ya@uDTJmF4@( zxKRl6JmU+WKid1}az|_^)u??r;7V*M4L?J<*4)uag3Of0aB;#p7uBTml>N7dVePIQ zVH=Y(!EudL5x61b%L6n`zGH63c%vR&I~0vg#P3TqA2^xP8@hGcsgGva z8=vn9bR*KIA%eTZi@+-xR?kGhjz8rXMpKixekO<9q#DDco`A+PD{!&rdGJ7!CrN{v zWFVcAn=I&&SjFI4VknN zj{+vLJT)N~Zd@ymtl(<_1A?4dsF5&&CAIc~!1oaVza6y#zJCT=XYh&!@bWrSUS`UK zRJ|GGIKXifE|Odrk_rt^gay#vDl2#=>hpMY@iz(H#W@GYXP;eVO~N6%gc($ptf^vY z+Q!dU(5coS!UH=z@g|cD0~A!^ln#&Q8b71cs1vc1@ec)`^F5zpZH;Tr1tB-f=gW7R z|KSC~5g+F}H!`-_txvCk9Ct{TAE%y~lf90On82L-ullm{AMlcUGOr;~EFzF=FtQnF zB^{0F7Xeku0wZn+pGmw2Ecex^Vj*1y_yGjev3kL^>YU3Ggsd#PGODMO2V!)i#(T+= z9fbGcTz_t$jTwNHym=4>DjmFC21yB^kwX+<#qXIgh)C}$ub+I~V(Nc%i6~Y-Kf`_UO>-S5aTS=DN8CeAlptx6X}x~4*8O9t2Ma&Gw(x@^ zmzQ5tJw7rUj!_N|P#25XyQM;W()s4v2Ib# zDYWyUpGsF&3Ut;9)_UOBTst$J7KKYK1p-wQQx~aXMO3CX|u3Axj0YB+QrY9#V6Bz1^ejLP;e{Xvw=58R~$=py)R{-@F9fdeCOK?}=bxW8Kp;M>{4ro|BW; zuKIlErYv@M{jRs)0mTT62MQO9kZ6cQA6nM|E>Jfybu$xabjJ#$7lD~xd3DfUVbdNy zEZll?nXbY6(v{7%I_@8M`P5Ue&;Iz$@?U=FxBM%<>ViD@_4kQR*Trf9#)XLM*hkb- z_fV-BR^T$2TNODv8gTMbKi^&TetX;R`?jyfr@vuOf93~1gunC?uiDRi{pav^zjIsP z{}s2@)zyVuyK>+*nl9Y2xxFIqfA4nv-+pqp{Pw^86u$U<_t?jN?HOCl=hF88w3NFq zP3NWavsbUx)#vH)RtI6J(tIjwJxR>xDhC}+ITsF=cKFDBbUR|Yk+y4 z^@$KVxFbagQNL-olv%R?XvZDKEk@#7EdX`Z&fw%DUmtZ&WO77lBHf$%0R-gB(MaVrXS+1sFT~k! zWaGxYc_(?QX0raz|FC?I+$V_r+sv~WJAfE5F>#J#@|uzBQyVD(8Z0UsQ{KoT;yIFs zDB!6F5r;bWk)7mtk!`*Q(FJy=9J!T+VAse9B9or@;cK4*c*hQw@4vWwCdprm7+cq~+So~jq} z9!iqpFLG(t*r`<^C4Ax?MpMDqoC!yBNm@0sx8B%hbD9pikl9?aN9MUHYU1Gx@ypEt zK)mMui$J6C`OUQ-&zzx&JY68_r)*e}jGfpH@ z=*19Z%ZMa*0%TdUJ%|}4XE6}TCs@_WcSL!)gFiRqs6XH_b4MFZ#*FwkCiD!#lB-LA z0wY@*mRdPtqo)#gvhPuokhL{|qBdw7ldW-mDP>t=TpB_m@@qH>10|fmgRn`rSVaV+ znm1r*0uzK9Hksde)W$PuS&Ud3WAZK;0KtSK9!4uM&z|ZW@cqV`6drxz+?W*=MGPQe zktCDAgAGPS9!VO60EsMSSA)b@feFyxKNU#28HN=t2YeqdB^4d<-@;s_#GeqOnv)PPhFqC zZEZ2F2kNVRZ)@i^%cmb1{l0CKOZRWNl-mV52=;H3x_5}(S9kr{Ctj8HGX=M=_jMRh z29vUTeJ+!UV_e9@YQ#=&)IkXnQi^)U)c2*UKV-XEsotI;CKOC+<<=ItNQw1y!V3McHdTc;?Z5- z-#?bFlhQ#^v}lni=EKXPibOwH6%`#+CEliVDy~JkZc@;7P*sJfOr)^s+Np|~bW=Ak z=yU>1R%SicdY4|IQw7XRw{kv!$zp^ZU)AH6uG{W2JG%SQF|Ix{$CcL%`!^uRhro%U zC0&K1rCNt>PdEnChDC@J%H&#Vv+eKH-tzhG}>Sa0;U0VUViDIG#Egd=- zARQ)W4Sm-^3s5G2^s&o3S1e9|$%SQQ6osL~PXxsbL)D@y0LGAyKomYPbyw)ryYWQO zZ2+hf=m^vkMI8(_3fv1uHS{8|;|_~GpdJ^TEP&%$?BoQnisAUs{kRq!jj*Gk)P2~n z>pC6)!=mEgDd6bQ(XrT*!O+P78wE0*qB8*wM?j{K%`?5M+&a^>^D|qyWu>g#zV6t% zTgu8UhV}D6cS)cZ`ie`nVj?Ir5dZ@&xS|x{%>knUa}}Ax>M=^0Fv38bJUe# zVQ+iSLBWNu0qV=Ksn@mus|K&ZSy+wDTp=O~6&~e1R*}xdN5_Px|I7~ttV~c=CemTjZ*ZrS6-Ov23 zyW~AzwvA7H?53S84B~^n^$nXkTiYFf<=?&5z4hI9Vsi`S$}ODF^Gy1T-%;NPhB*2dnQJTD3jKN55Gw-nf`S3= z68#zp!X6Uf4DjZ$<4!rQJ9@1cDHD%TOo3ZPr$S=F*|h~!YpW&G#7=xf)i~ch&a85X zmr$H}0O06K(=1q{@shxxfHTrLuMVJAfy&65f_1B--HUN-G(h}FbQ85}19wR#B;77y zmRm`pbOKa!6s@R~X#*9-1F)ycK`;V{=Ur@BSA*9K88Z`80m)$hdgVV9jI* zgrl)93xdUG5Pry+HXDutN*^_W#eHJChq-f`dWZWr@8MBQhzwKjoj0O~?SVfq^Xc?~>5LQi+VfsDWXWs&(QGK8tGc zoJ9((8V^`tEy~xg!fw4wG`lo#CF|>(Tq(NFD)^_nsZPBe-%3z|=9Bfm98YvF1r_yAV|4A;B6GmC9YISju_t~D2dK@q`nk@1ziyDu$>dz8VqDk z{nVsPn)S))2bmWDI0F2FJ`Ncqg#K$u#l_Fi6biY}BM>`pn4itfUL}IqlI=q?QOWDo zbZGSD+){XTqmY~*8Babfcz_Nm z0g4@lus$;g8>bBg zs9pd&?m$yfao}B?NwE`{k5Jb(+R+R|E$qPzx%WeDAxvTl2f8FPbEoA@7Sn-njhn-} zct-$e;%Jm*c{@g_soYC=+j9e#_G+S=M_N0j1J zViIuwEsa>ct>=s#jt&kR1y^3%$6xu=m%sRTAAA1zCx3N+dgq0H=r&ixs>#mFyH%#p z^(pFXW7@eNnH^V*hlhUs#U1RtyrZQPyL@R)&TXxh&p&#t9?qfF-NYT*n-qtbRhYOI zfv<1Eo_ZG8+gs>#qUcL;>s)NCp=Pd;LyC5&?y@#j93EFZ`ox}o+50a0yWe%I{K79i z=Z}B>Q0}^2@y@rMwRgPl7F|ELrY}5k%|G&+SLNtHm4aS@9K{H>wm^G8D1T9C zq%HMu#w-f$1f8mxh!kpIMFE}k-p?l9ttlpFCXikooxl?*Zw^uRUnqc+rRVk|? zGAodN2583$vIDf5ZCrE}QRqZm#|U4jZlX}_yp~OY9|tMu#{jB`EnqS+S(&Qn4Fl!? zCKyqrg8&#j3_V9ky%KS(s#kRsnW&_cUd4~yuabJ%WN<&OQg0l>c8|2~4?Y~5 zRI3=Pj7K{zN3Yg$j1qMhRde7tcDBjxF{&**7Q>@fibN*7+DFRZ|ndmTk}o=Gt_v=nJ< zd*=n#0dC@6T)Y zz>R<7jtz}7;HjEIEuM-*z@bvy2FC(88Lp#S%&ptlkd3!|C4Tzx+vOua@XP%-|M21P z&cFJ6`TKw34Bq#Zmqh$Tj&{eov1R(!*Gu>FzjK7|**WqHw`}3@$FBOB^JlP_yPUtH zvwQF8@z{$eU$3e^3*j|L#<&2kk@h3vC)kPl15GU#v%v)Sh!|X*Eg%n~KMZn-iyf$v z^^Z}eF3EpK4n0Lo1JZyvB;~v8x`Wr3W0FWuCqwfq0?BITZuM}Imrmf7*C$VqTUo*iLiB$dA%;m}I^c)~h5sqTJy< z@cv4BUTF9sM`XjlOW=i7wu9H~OJG((phQxJ`8FDkOI0EujW95zB0Zix`%TMS%j;0L z@EmaP^YersiT6e0zZ{2%j&W>rEd|CVO}_uk{UQO11*hEl*^FBP|3EQu8dr4twGgwh zp_0z}S<)5at{72PHmTWUaE(DGsc0vQu_2qI2*S~XIM$er)OHO~--;(UOl@zv0(y87 z8IL-S&v!Ns>HPo)RF`F_$G(YoCHzipb*-?#@l;eKVW-AT7&fr&*n0&?XCz1hG{<&G z7WwIs2oD9NhuNNcH0RQP!DQs;qp2x^7Fv!ao09WM!NA0Iq>|hTWFw6^nmmSNfF{VNabEyh zE?zEX7lT-#PJo&L0!+_~zoj=+hO3_{}^ z+pzT~D6C=nNGZ37g?XDTL1LI;1}Ih<-Ly$|btYC1#+&DyYl;0EAeb_GA(QUO@&`>* z$uOo_32Jl|8a*VMUQO+umgfYMA-DLskiicxqX5laEf|&LiZEi)t=ELaBLBJaKI7S^ zfngA5!F-1Crz#B;&7o3A9SeaVZasS5l~iR7A+Q!0Z93NkPbY>g)@e+zfBB+ zE|PF#v$H!AzucjuTR`Ydk|0CGnnFow;mch|VJk zNAnRYYco|O5OIh1cOgDR!b(L;10j8>bnL1X)(G@}88@f)>si73%v9T^vpo^OY3jjWMp93~O zK|R=)dLnXiIQM?{P{xCbaWVRMU@~9C5*+5V+8LmAgiNNvUycUvI^^-pqo1J21kww{ z`$%cs1kx7(JNY}ZPK4MYnJLtNLu1tUxm`>NU^gXcZ==v!z>rl$X(G{Sdq73H@ zWug@&8gMdIE$6&nS$AJC^^;4G4N=j-aZi=vT6?oHb8{I-h@TX=365{V50Bgr_b}Y3 zTCXl}@bbdNbTT;x9WMfOy~D<+$~5YD zvCv4tXMm3m8-O|r1``bXaP3^mK_m#LldwyrUfd%d^>LzNtyBopIn-gIMWjp|Dl*$t z6$h%pCOuR~hRq696^x_HVjgkp&dX3AQD3_bJoc$UAG-M(aPCjL^uMU}WL`^|6){J3 zGZhtsh`O0oQHc52sT3a#BI1jqGVaVxj*g|=a#7yHAWB-Ck9x!|2qPWB4p@B zC8MM=OIh300IP*$vk@pL)w)8kl->M1K_*Va;`d9oX|$<*^Yor3M{YHdH_sO!PL+wA zQc%+e!02;?sK+cl!JNbh&)JB3L^xc~@-iZG)c@w52|RIXJlU{R;o%%aNo-I?!t#)< z)%dv({27FGYt$T0(mOUx{P(<9us(t-{h^n2k|(JSC(%#R#--&(uv@GSjz2Fkg91E_ zA&HqJ=`{fhLQNY5R7Dqt&EOa;Rg?KVh_V{-lag;4S)WHRi2O|DbrA$<;~l%xT+f9H zOR$D>0SGc-(P(wn#4(b|`k72t9{8GugKoicEWg8BBdnPUvOe`z=f-|8+U82uZ+tef z1{G;Q-v%e-lz^bsX9lZXG&|r()n(RO@ev);Ff);%l0Z7`GZ9}PZM-wEjxHOD@kkn} z=BM^`?9sTUz(jn3tdk0?VUcL8veB937ZRsSQ<=8fo1c@-T5*b%(yKzd*6fUv2B=`L z)9Z(gT4DX{Y~Zlgj4n}SFI)#%iX zSQrEwmEbMDvXYchgfnRbfn*Kata<@3qM5NY=Y0Yvp&5$lLrU8z~{& zfCgtp@6mBYMRe=p`o#;ZjDW@cnF(CkO@*{`#G|So;sqrTfsl1v0^^)JLG|TX;##Q+ z;EP5c(`fDa0tL#$>s>3PkQ|_d1xc>3D=3tlV&x3Q7TG_0529Q%SI?PcNs;F zpf~`G?81W`VnxWi;VqbgCNj+ct^(4LIoGyG;p!;1BtVQTN}K5_0YatCVUgs?wLsFV zy@P!JDN&3Y?--@W>~U;ECLfBbX5efV9k zzrCMtZqCcFaPM`*=0wzo5yOp}SR5PXdvjTg3#f~`7EF4Pda}?PHwN6?GjttfHc5G+ z!`(&5zx5ONxee$OPwe8shtBxMRxk6N5uFL@0F)>QL|nadLG7Y0?I((BSB~*ZzwmwwZv+$Xb+Th-#waTQqgI6a=~JQr7|p9zz3MCQ`TY*Ku-F_G!Y zL}ptP6dhrUxgYQB;rh#a^8Azgc=m|}o_TI4&t3!e_rU7P}#022j@x=AOBYBr8yM^*e}-|Nk)!_5<4 z?2kI^&vCqGcDM(NS6+i09s)-TV6li4Z366D;FK746BIzQTcRbj@0tW; zQ4u$xDW#N7y0HKgjc%qEMGwm+C5iz)4$=#(2(&9A6Ab7T==B8Ji>mBlIssNDz{)g; zkjVtt*aB8Jf%VJKm9y|}(qXc0(w{G|wcd4YqB1S!n2E3T?wjiZoxoKKx*1BD$siN& z{Y~PsFkg50#WfY#K{phTsJ-MhiqG^A8AoXY;$Rs12Umfs zpQ>2=<`IUIBZ2MMWb&-8o%s*Cxd~jnU$OT38P@Jt@yYF%RL|V$Sb3dPd6OF6#e7;! zu~5N2fNO|(Wp&7LXpmt7tt~GG+Uq%#YX$b5%oPG3rx30k+;<1cr7hrdj}G|8*PeAf ze@3RgFw|G?MYQigfO$zlN9_2k6L z19z^%jt|b8E8ubdLDWlz7$q|*A#2Oq?HFSN8x}+^kT?lsq-2{h8E(+xs4N@O6bumN z0M>gBpi{_5h!ZkEo+H0WBMopkD$z4b?5PM|2^9Aoi2&aGK}_!JmL84Hv!DTFktu zQee@(9Co4h%ze{D5Yd{)9C#LsguyaH0#AI+-nr;dB=qk+F^f<@G8_uG!ViFYspoC$ZXR%J# zIAdLt^;!adwkZQIv5rvI9Qi3hWC+mZm~xsFJMkUiLUaXV{m@q-S`yyMNnRCA`I`daz6L|71D#xA(1NBHaFAr}BJrw@CAW9KH*hHs*7)i~DD{RWFNIyxG9T8Vl7^xgClBSeXZqWVl9IM#G&NSKC? z%4QeIo$y#Id{^9G7Hc{7i#C&PE~VJxjyzO^rvPL}Nn_qLSj4!2B-G*sN&{#}w|K(s zh$S# zQfW+=#W>uWVV!Fvl$gm^gwWXOk#kykOL|SjW~NeGNpSk;tY?VHBdVWt{qe3eBLGHiZq*y6Q`piZy^~J&(1mv z2F|BB6JFfAH3mAyc(_H>!&9IKnazk-)p?wvBRb=u+XI(K#37&&BN049@dS28Y65A- zhjhP?Wc`zr5f(3eFKC@3v^pH@28nw(MYDcD@|_YYn5JCbf+2e)g>3@aj#>Wr5Q5T)V|l0~<`tsKrH`hD<5}#4lfhJ@V)g-tyE9z2%No?C)0>A8;}{pe_^Sz97<( zXl+hb3g%G8V@Ys{b^31cqtFHmab6_$9E^h+&-333p<#P6HXJ@yH ztZyi$D~k1*pr43OHaBdxR!YBGw4bPzP8DOps0y<=_MR|1dTn3#cjj_^=U8ss9C72C z>&}kjwH-h@V0RxlJb|1nfD;22HTb1YfoTU!3NV=hlOE_cflgtiK-YS~c5&}|6)n+( z?n;QW17_>)Iu+^9#`NxV4L)v5Ss5WZM_CxkUHh2Y0E~*Wwy@i^D&`e_ zc!I^wi5%}9;pmk^-F5&?POf8p_K2*X`xV@J?-Xa>v5wXI zZujo?w+mLk1daz_xEl&!P^e(H7914d2;%#I&k>uh0KIqw#zC80Db7?AbYM=Iv#MuN zfJh2vBC5j5c4W&a180<hln{Scz*^_>72%OmnOD0F0(#$j~lWD9YA0q}` zz5qP-S>R}QUpBGs)#v0mYi>HFS~j^?=Y zjuoq&Y@SqusCXzbBk?P!(k#qL5;+l3dZG$*0O!+BAB&o`rM6DDCh`aS;sJ@fC}oZH zK`8UE1On{(DJtuuDEdtU+*_y34+cG8L)0Xixm0)#I7y2brHowXLLZ?h&_inP(Nq{E z;I1h_t9$D@2I!3Z=xjnb0FN{2;)V)=MWIu(BlXXwLky93>X6nXEtJow2rdSr%=qADlH)cAcZ%%+U@kn;2|F z1kfX=$M0rJC)x>esF_o@t~Xe#uxTKy^?~->-IC1$RUfQB6VS4`WTDcFkfSwlqftSb z#hgUVDw1OXK#ttRsRRY54V|Noqlyxt?$reAl=7f8GlP)`b@yp}7w=hgd74tm(RK?V zN(XOV2rX9T^?EcuTkXeYnODAR&&H6pa$X7z?Q1k76%kt`3>3nDfXIMlHnKEsB_I$C zOYx>8A(V$_eV#sgAsr6okD?tPpM(*h5mOL23##bieDHAhkNZyNYz2_V)Pd{?0|^WH zC~BA8s9b8{ys0g)I@gI9T?^F^4yO6Q3|b3CJh9+i!<9A9Sp=mJDrg=6kvU3$MyJpr z_fbh9Y%E&Pf1rtJBm!M1gdFhyysyoBisR$qIU_^15lyxt@p3%5F0#d{%lIQHjf(Dk z2G$WVYC(kw!DoV{vQz?qtSv8Va6suAX_n8Q!tTZ*^1X7g8x2TeWP_4kb_SQ{!{(y5 z_I!dpTn4Qi^+-7!Y-uD?WlUHTK!<7!s5H>4P$t*PMIlHxGbs-DjxuyVwWb(l=*18< z0(&@7Q;L@WH(mI1 zqRSEQwYY@aY-oexcT%OGX!|N;-QE;%jlL%1nMXOslthpy)d1}zfH3!>BiYah*co30 zNXZR@%rX&0H-YO<5fQ%@c&W%$AF<0DG2~o-y@ba?%+`5J8sJ#Otlak z$Y+nzh?oe{8Z%#p2=ZdkJb7IJVIh%bvF3u3$q7J80$YJ5KygDl3cJVreTPU`Qpn=k zGCn|Sj3u}r=2&Y;?IlT_*gwi~DjDPY;}mc#$xTQY^3*tPFghXyBk%>IS3o2f)8)HY zafH#mMw=GP{f|tFh}kfJiBF=yv1alVAfVF!q08$pPFbnb8zug^s?k>^d?)1eQB-vK z^`XGke7+FK#suH_b=&X#pZ~9eNA5aj`o#})5O-N$pZasp?4n{H>l-V+x?UhI^#2u9 zQQKOZ%B>eC`24fSHeWziXJM9J1g;|DgSdAF9n>ZhlcJE1ed0CzSLg2Z)y)a&^-;P4 zjHYHPu5MCQrN}6w#KfS&eL7J{SD|GhMIE9&1n|L>b+_9fB3)M%E}}(IRDCiLna+Bf z&N^G$=rHTh^{X8ehJ(FBy!gxY22fX)7I$XNY`T29b zY_4f7vr$%8RHoA+eGhbHf@1Dg)Bv&32fhC495-HF;M($!< z0yU11@B*OkW1@tqw+WJD9w}S}WfVYzJCd#ga=NLg8yuy^zeR|rL09LfMIqvcwjPa-90OQ*BX55g2@RS1ZNT9xM|SXZuRE^{zJCq&d!L%)=ojZY$aUFX`+eWO?fg*!&|{b%nd_!P#Ke`#Taz%5RX2B6EiiXi zj_p`=L04mDeOOqjopj?>tHVNuwOO6M>+8yo{qk-2>F@iG@&i9P$HRa85q$SIZ_5{7 zI=l3Dq0O?W6`?3#wcwVnb^RNv*C zGUH_erwqe_DA>oAY^C8D7e_(JwH?ASw~%MImF-7L? zc)?*f27Xj1)AUpsQDO$%sT^RY6eycO(QVGZ7o!p})v^R-v1gr4Cw9m+j{CJ5O$4L& zQ+gP{5fX1cbrd1KARzQG{B6=w@I)Surbx}Ytws|I@UYjc^d)k@O9ALt5WRv3STX*_ z+K)gPtQS)i8xN?5Ne$A5ZtF$jn8o-LSvHIcsQTp(RibO_0rrf9gX{7XAStDh4gz{I zGKo_NZHtonn^ryby)2hI?|Z3e2&>3e3W0;!BsB~L`NWpv zC(&FCMGuwfrwpv)x*aio5kuhoDmHSof$$(FSi-76OoAkk+(UUC2o*t&nXpca5#*@v z;<+mc9PSz7qvdi8oKu{qg%I4kOEYiwqR3M!qW;hKN(jSia^Xm)@f|6U2AUm$AkY#R zrEBxdma`!VqH@vE;1A1(+>{ch9};gq0afKD3-Ta)Y7X%TRMxun+2O3nLNKvqGGGl< zpNfyHdSkJq<0m+;+JQ11zF=5m#+;$l2m-U)n(mo-+*=x`)C}e+D-fW~*z-R@DGbco zXC~xKscbw>y0HiGgJQX_g&-A4{!o$@0Z<6aJ^2t#8A@azbqcKWp4#8bspr0Yrm6&X zHOT==+u7~U&L1>D6zyYLA`7Pkf?b|D=@v$M*{$Y|j)gDQ?y&*ZSQrG!4kt)~Tbn@( z#+aZeY%80iXS@rtd`w~tzs*A+T0EZcZU}}w*?KBqG>MF5w_6}2Qu0aW?0I3z<~ros7pattF-RrbpUbdy z$UUL&@_#eP#3Lf{Qz9AiB}LqVL=j?v5Ry=fE_u5A#xs;tMP8_1;#(`7_m{D}Q5;R` z7n{GbTf=w6YixrKS-iQmF+@iy7CZ$_LH-~TrfO_(vE?(3Vj}mYEjtP+;MVczi)uC~Us<}$<-2_;j7GGQMWNT}NGh4lu)!v7rxxez#4S(VJV?6Wp z37&e+WZD$8zn)DA)GjyZi7%gASvH3ws{|t62|SKZ|;yhs=6tHw7lWOMycb zWuh%jQQsYbWLyLnG(qcfFM%tRN=fe&-oc zzdFKo^uwo)?b;JnUVf(P$Np`_{AU-6#qZa(Grx~FzY)0Otx{)i+{Eg=cNRHwAF%OY zaebWw7phP0N9^cp?s`+jZve6n*b$%&ad`k$E%53nD$p^KYneF4uvLVrcr}rtKpEXf zcTp9LbH{9E@A;EoQWo>yE>Asjg6YMgXVyE}xjDLsVbTH8N2u?Z8wBEmyRV;jj3{nH zjqg>}*kMH=X7maQ!*z$Ks5ojB7k72bj<>1mSj|c`!FU5cOl6#GS~>Fu`BVS!g8!Fa z|J(X)f9YxbwSROSU-Ej$&hA1c(+-1+LrNV6(=rj8meTJZ*}3hFa&2CyrZTWTVN`6L za);$SIl-o~5tP1Ep>jR#DTOTOQIsQ$sm4SS-Zb-~5;n$fS>UmI9Uz6D&pL0JXHJdo zIn@(%5>Kgr08?*uk!5Kn%Sy&Yf^@6==N@?>6kyuS{jz|JzvsPVvjcz?;nBV{#sfFA zQ2mhjLgQW>;Z8mhv_PmRO>iGJq8uR&rLAWD;U4@5k4|*X+sDOm?9 zpGka{v$NiOA|OqTn6+aB>bPcQ_p#)?w>n0$Ey{b6wx)nE7>?%<-))`q6fm?o^H#s9 zpe+y9lEy}9-j8L2kN#_M3W2b$VuC2(m`b8McE_tWm5q3)I|wq{HD?1v+cSuo3C1!Q_^36DKr^&a8^IE zWPA6Ge?pGXGnOc*YC$9VVicF^9EATwQ6kS|B9#~_I`1&bS6CUMb4pB7=8%GCu&bW4 z>4L;{hMXS?7LI{|mrOorv(Enl286?Go_ z-~|2Zpv2pkopC}1CjpUXzd9qNvry;mK(a6i=aH;kGF1e+5kQn(%~+7l&DA1clq|M$ zQ!0W5%6gwcSsauqEdxn_a*KI&cD|E%$xssSjhoW2{1-P6+e5^{u?dwk5zftsQ#193 z+;7PS8?wcd#)xrVI_SX=*C_6-OOIlaO_TuuK$w$6@N%jW#L?vGVJ<_G!m|1_0$p3O z*i3MFstdqz$98?(qzQ&30+5~h&bE3rld$BIYymzVbRtx;egYCcpyVxgfPKMQYDRnB zt}w2qNwfK`G=RC(APAV~bo4nRn&$MK z^4+Chfam+?+E4$2j0r~I8DlCjDv%Dbfm<2qkgqS$NZf7^dqQ-e$&}JeGZ#$u0X&Nz zLC6qG5EF4+Bvk?C#fKxGGn@hiI)A_=-V-I#_!NVNg? zg)Ya8s2&1lrqh#`zI4aOv4=8dp{ zR@fK`QVNqZRVa~gV=fNJLec4Mw0!T?mon0j{qcPY=z|b%`IVhxeEZj(|Bk=;6EFYC zPd_qt7tR&gJ09xw-BQ$DCX>N1j51qakrL;e%gOO*NBeWV?}0OZ>$z+4!c~{;b;z2) zilS&SlM+@DoL|Q3ifCQ9KmWqb?(TbUwZ2m^8@ykL)FM*N5CgemXpfAgO}uZdW)P2Q zIw@w=p^joIz@#g(u~}q&t@G`TiLP#Fg;{y_*&BHDk$rvii4#2g0_6AvzP19n^D^+J zcZ%G7YljQxr@Fb-quVgdRwtOvL`&B*9TY!4Fx`3j7|%Vmkf)wIu_vDyz+=lfV&cOES_ks)3^N+OQ_*zu#-n>-otgEmMr|JIfCT>?`7^|H zU~=EwdYa8BPP~W%vZ#Q@1f#;>V;C*x;XgW(TtF=2;Mqb=qN488S(Vil;Ou#Hcb3>L zod#bx--DePK^2UEAaVom0@9`=0zsQwk^P=%kXn|LD%o-uyuQf^?O%+<SYtKNR ze-ilg=b$*gDdL~C%`>0Xd*7_M{I;2|-MyikuYaT9+?P~LzNm;?a>(7{x`5**#CD6= z6A?^g5IO+I+qFV-B1kyah6Y!%x~vN6UEKw;Ft_2POfO%w5B|6B(+5BNh(Gf2*UI(l zi#kR-cLDwo$>rkB3bfg=?g%tlc!Bivm?%{>r7tM$je%-&x}t9H`R#YhX)|pc17I zoIsYKKgj?^c*SJZUwnChZvY!QiPOiAh_1Dw)Nrobum_ z97aiNDC%f7h|UoY+9|(gerhF2);y`Ai)Ay~a*rdMaI7_~<AgJ)EB2kI2Coo9yvZCag1*QML75j*ci!~?o;7_#Chrb{qSlX+zwnqEhIQLQd? zD6wg-mo&hS#8KT*h zS?Z`B#bN^z1Q0^tW!bStbf*lbx@yj!v#?DNoX7cz16DcDOOPFlT9FRePVfap;R+EJ z^YJ&89Y*D~Wbn%C^Y;A?OCXo5Ab>H9tuh=D&@Q`^#(C5kT?+lOhB{0RC#Q$N+2U-Biy|yIs!WzQmXHEYCe(Ahq*o$ zIOl;JtP02oJA+m%L1)Nw3R;W-GJ;DcT^65Y!ZLWp-^Tv5s9=^5w*_4-@q*%&pHeTh z)n77?MBrx;u!PI;uUsDiS}WI%G*@S7C2AAx8oO`<@Arxsul%_p=*BU3xH60<86H@Vf zQeB~{eEzZOlm$!|`oM@`l3<;GE1r0(9dYBQ3f(L?3*v-@B$u*q5C^1$38#vn6vygH zkE<{2e(-PnA2)vOz4y(=Kl8Pd?uFOt{P+a@bY`--J;BAZYv?A$i@FYD_4O6?H#~Gs zKl;(<@#Ftu7x!O=-*Ohx^}wWq7Zs}}<>YA<|aCNrKEjCDe&o}NY??AUg~T*E$i#Wx3&t_rY6ID#I@@SJp23! z9({WBXP&FFcMPnr18=(@e%md*T)sHPnXL}1Ycj5_Xt%oNm`#I_Jlq?wcir&(%L5*L z4tU{;;qjL%uH0~R02USK6nEXhuZ_#V?g%+;F3Er8NRD5ruF@VM?6V`&^fj4Q`?dEd3A$vqe+ zlJY1mmozYr8VLn3>w+ItG!HS9_CKhC)%a(Hg%zh{T++y#WQSzEiP$!9R4?&gVel>m zHwqpb%F0dRIZXPHwM!2vh|d17fF4)i@FsBm3b4Bi?A-+B3!sjuP${cxjdvAB# zdQZV^Z<*rEJ*(c`zGAwuRxlYIZc^<|gw^N*4tJ@e;ADUw?gRUWIC<4@^6CL@Ts2&M zcHz%I?f&$0(49kIf6@8&Y?RmC1Aohx^tk^W>$36CZKk)pQx_}u1Go&ppeP16EyGRt zfT}nuzzKY;F1{zQAy8fS84}m(m5A(no0p3u*^Dc;(kWX}|UJ&*{sr z0-I;yXSN{gYp7#P5MdmOKk-PFzxuDf2IF1-((%!+l3M3hR&R+ul}ngti9@VJAc^@g zwX7u=vs{4cy^A@dXlQwc!6&OLqSM}GIuWd$@p9&(VdvrUvG4nN{JDRAY+rm2@ST6| zvR}Tm;g5Xo)pGm!+4%22x{%xNT=~H3?_U3{pqtRx4=kX4{zlM>s$hfC{kfrvw7s3oZ72IEFr_s5v?WRTwx)J zXU$bJ&GM^iDsPkAcZXZfBTIvjS&)+3U}Gt20tezdw3F(uQU}*zop9hm(PP$8!w$R(eB}Cl=vj`J8Q43VFJizn?|z` z2vW#X#vbd#y)5f>AgPXsHayiQUvmIeZ8^EJBa8f-%<*WF)A^#j!yS5 zLX)U@o7p#==-TfH^Gzt4CEMR@^yc3;6KyONF>#Mkf5f;a>!TJYiL3{d~&Qk1sxmvZ%jPm9E17&hJa5Dze^0LYGtZ zr{?uyxd2Fv6^-|=Ns#c`+WS|u25r~=u>dw^mz9e%kKXVo1k9W!WQfg?&Yt-v=24-5 z^A%E&CkF)hG%~3};rn9X*A*n&Kl6aWn$k_Z5=hq8OhO@wNQ*7+9(XCI?#YO;O453+*7Kp#Pv z1jDJ~-*RJQe)cqlvE05)SJMdn(8Xm<2*NMMZS7$I8w&*f1e09(yY`b*8PVf^<|DIN9BJ zrZry}nZt}9snv~lp5#mvLLy;UxRk`F+9E#Fi*OFB#=JRX$z)Qw5#Pb*rAhEG&8dIX*S)|?bR9&{42h(XS^OfgxM$T^ zF4<6^p9AQ(;6q@jE^%~I?!Pp=3`Vzx9|YG&EHaBDnu;(62)Z;80ZAWos$^olsW2uXKf<|w zV-G6{Q4@o7f?6F?IHG_8^AUhD4mfH>bSlg^mkG43RieFOngxkM)KJD#(mhL)Cqb=!2HhOQisI6fI&=A%!ir4|+4KQVdbm3@EL zyKcq1e|Hy;KL*)Yg`E#AyBJ|$=^?`axwd1taRj?`p~&X>706RJRm$i^O9Y%DI>J&E z9wdNzxK^o&$;69yy`byV`%YwIvoGhidtYDet3cPo*QW5&M+bl*#=~=#?>3I(h9D-OiZ$Vlj}pfLOBW-KRikkNkFd=KO!QcS zlgoBu?1#ceC%MJSNfQT^0FgdjJBW{HUQ2EPycQ(;4)W2_z!JuQBqlSZE-gNIYb5trjz=vfLa+Jc!4q@Evs+HOMFd>H z#zlnrQ6Lg}XDumiX7?L zb(A|U!f$^_LSh$?0P`D&V3xi1b)1RI*w{*?)P{7#Gmkg z|HVJ6fARbG#((&aUM+w2&rZhe?QU4z8hvAJ&_|!cTOPcB?ITjf3t6vPBj1HewIE3G z!hPZ_S0c6|$>XfFy6EHvXFwKBD#YWQaVuy*)t~{UmL^n4ooyQhWPPCQ@>UgijWN4c zuVlC4xeUO%!q*fomRF9GhIBuxdFDlvy+`-Yt%K8(HfYqDe%dl%HU2j5c93M-9ZO zmJ4-91PcPMNYE5hhCJU80a4k6iDw=6)>LmAa}&wLDgkseGRn=b38X^L2ZK9hHmnDuykp&vN)0SYr`Eu*s2KyBrGhyEuXVz}9VXvKu$%b=+|6B)g zeNq3!{)-cq@+dy>8UWTa;5%9HiaeKF8gWG>4B29Lo-C$7trpD>ks!BVOILnzq)(OC zz?qs&UIo%@*?3ZeL6`L-A{YwW_0g=P@`Zb{kx@y0IPodhdSjn7$hOd%=QuxF(oJJf zClMe&_M<-v9-GW9Q`sGlh2-I01!qSoI>&Kgmci1y*!WqnSOqj1^EqFge*;8k215Ci z0eNhL8#|wz=P?2%PbrLrTqX61X3MT~1rlK)*lRR)(dnG24A2Suf`Iil3opidg7X-) z+|;}d%5OvV6Q*n76i)D`Bm)xkdfbbLiwdYVUIJSJR%i9njwd6KS|0TvO|gLXe3r~$ zDj72P7;M=!M$B;qr$mLN)h4eOLCAdgJ1KQbiB>$n($dNjo~2YAWTBaC1bGF)@C$++ z&rr*?B_&x*M`(^bWtNpK}@H~u|CWm^0s2?UAmKay}TZRRp6l|fkA8qKD5aB}f3!^o4L>zZXv z@HX&f#v(Mx%wrmn!J22sGHPXbL-UIu;grm0cJ74_T}a)A^LPiy7@s2ClPSN?U`hw% zh^IA97(oK?j@|dA+&=Q^%xQvM77lT0lAIDGLgYu1JD#2OToIfjqXHzZ zo4{OSeMzB_j|H!t*A!3Cs3zb&ia_#nl=oj`Nv^YCEG%wFvh%YXd5l{@5D3~fTwcFI zG?{J(P-94(?8?qUODW#$ICs>&Zx{3PQYLR>I+wiBKxFY}SKi%~@ju&CWMAI=}Uf4l9$1jtldhD}#OJiKFtl zM;HFc^X4yJhab;T#06Wc?whNS)fs%!x20$u0(i0sXKyXaYO@yP0qwE)108uETh&|VNY!sJx9J)WCa#3_(8A4UN@(YI(c zK)M1~ve~I7PzFF@-RchQWAB70COZ4p8b7Wo63REB*KWt9uZ1UZvf)AnfM}>6a@)PdZh4^K{OeY9^`T4V=Qjj(2kH~Jxu6#FYL3OI zA`5sm_p!>!Q-fUn{1KjeYB4_btd%F9aCvnXUPsvWMv=GO<9Pe~RPKH6rmes6LG`VB z#8=+tBUW68WAAJZ42K2du>r?GoeKc5I=VV7;_FyHfOgYVfKzT&@_=wr|9m1ke;zw^Ccdiftu1ktU80##78@-&|G ze**HNBJv7rT9$Vn8z_y8W@5>5{^+~1STQpeE z)OBE81B=fA*aR{UR<9CB8x?`b&xstICVu8inM~CEvGA=%uJThJQ|Z*TB=XVf8z9~L z1E{6~A-nPd$LJFEw`RkKfds5M|1;ki0AWC^p(qG7C+jndXKGNm)KHv#0f0nn&BeY4r)^`TIlBm;s#>Ss6{oJd=X@`;Q_RxwwqUhBxs=` zholBg{UCsN`-dE*VZ+6RHFXCuVg)KzvyzL47WgPthFKFvV@A=~YAA8MXX(NEq@bKS zxdT!1#R*)BFn~^tVG?F?l>}z|OwER_slBN*bEz;14Wl6J1FBwUVwER>rQ-6G}64rd_sc*fbr zD3qJPnUtdVj(5bMWT1(Na@@kBqu0)v1KYy;9zB#zvxjdepy;NF~e;Y@&RP&WoL z8AdzR9nZ%@rk~=JF93(m&UORf4E|uCP3cloqae-N@`IS})q#-!62bUNWgszYCMzJ| zPCMjR?2kdDQp@`MPF z?{W!MMciiVd&kHDybWV#;tB_?cyIB1CG!DE3vc2M<@JgxzTc5B4Z^DifGC# z;0&XHI`4F5ix?f?GYB{h21~Y9%&%NuT>Soje)z&yzqwA{a&L#@(M+u1;`y1Zu5?g^ z^nLN^6f&I^T)w>O+Z&2ceB=fEv!6S`-IsxT?kMQQ`hvg6-{swbjnIHYaj!vtWI5=B|RBR}Ss7k00u%A704sKP|R%H6VQ*M^`QI_>9Jd$?=#tKwp!-KOmc>qr1|DDYVnhJwzNiK)C5bULl=!%@!WT!7-F;wpAAWEXI6f*aR&`c@%NxL* zcLJ|}z2KIIfQ|d7KDoF8+nS1$;>7_hV373!>D+r0J37R;dx+x~PjK)u@XC`%_|QiM zpLy2n)$1xF6nCB*^@Hzl|FSQi$?ac$2g*I~0@m&`!*&qOi|Z=$W5;+T7!A;4$2de{ z8Ao`nka2+703Rww8@)`o(cOJNYIjy}{c+s*&0oihe{dZ)4;J;+7finChdwBB-w(>- zKmB=(Ws1rAIk)Gk+QNo*v*^eLqG9R`3L{}P^M=fU-_kLm>=pN zyyZ>j-ZowBEk;12K6SI!aDoM3h*JTA1v0O#p7KGPa;+W3`vr3J*f7SL%y=M96 z1k**P!K&nHL`}5DV`ClZ3lwoVJB~?IL>G*~z>N(t1d#J22J+*n;xro2IYLtJ(Zw}4 zpeST8)Ren`zYl9HTGWlDDF-lSjT7}69h}=NdyGQV){T$--O*{3H9A9+BiDg61*!qz zy)1k*h)%3i*#PEGB+KVvYR73{j;@Bn)T9DdLaC6Lf*Upvhp@(pIeugv%fd7~sUxtm zIz$rk`Te1;MI&e6By}>r^Ms#Fwej}^l5ut-M3ieUU~}TSlzVxC{*pl{YoSyxvi@<2 zYi1*=s-sk;=NW6bY&3y2YzXR`n#w&1e**Q$R9~2&EY@Oczz}@Kmd#sN+4h2eJM&COO8r~jk>%o@H_Hq`S8Vs z2AgQ!ADT%;t+C0epja9;D)UyXSIJqoR)1#Ao_UN79hd+A`ZQ+jDGiCfz+awXwj9q0$9#2r~1h8aH!OtWZ z2=fvEIyUKR{3>T;D?fv#bVBB@fv=iup^?>8h;eiw+S~kmYk^vw-B$%_JEJBfF`B=4=cqKm?9#Q)V|jR0QeKAbef`pi82m#9GOgXA4}G>@Z0QU9Nvf z`Y^=)l5DFe0QKnR8z7qN+m@aCi1JiwRHzoH#Zj7GjFTt@Nvx$xFa8HT0#2ziylC1f zLvsCbR78o0g#IO|P)JfFo>!pmV6Id8DXkU}uBkLYgaX>kZk%Hgj73}zB^hqbf`g2_ z0O|6pmH(Z^V}#OE*T?lEf>SPYX+9|pyon05R+M7>g-soP<9GMI>Hq%C`Op5>?=E)! zEb3UbtWPGkx!HA-si27ZY$}-af-@Ipxc`k8Wi~yqfBNH3>#zRi!oTSCz+IO+9G+Bv z<*MroFT)>t!^Hpc_kS4{M+f@IXI?gi$T*lB4;60a;{xvPGTJC^4i)i9Uu1n%ePg4D z7;t#7sGomgPe1$U++W*)tWAK+7YpvcdxCRkim$J$&Q^+Vu639e@oT##PdtAlzyI)v z&po-YgA-`i!#7vpYqRiK@&LNFn8N{-!8uFrgx(5t2~HKNh0`CAIx)odaPrbBf;?r) z#Y9lrVWgFHW}K)Ao{S~*4T4m0FH+){HEIv93hiPFC%|zM2dpP0Yp3*LR;00+Gqh#= zjXJ2~QH`+`V@Y?Y#Q-hw_k~B4r_YfTIEHAD6gDA?vWy6@9NU!2gc6f|fRKCa0U287 zAJ7Qt3K+DFxJI9`Yc?KgVFcqO zTdl}RE6LJG0GGnrtVW+;0I*m9i(_Da53;kT*uN=IR2LCk+;X||HrQQv3U0ec0zBhUEJm)d_IR=8>C)8_N&hx=kD`Q930F^00g6DqwtiTD6(sH#3?q) zt~cu&g5pYFta$Is{ATC?^B67A#v`%I9YC*+Yzrhi=K-jlwQ_tc8z2@78wA90iU2(b zS`DR0^=|qK8S9sH+|S0215^(rX%P82YxBV60m`YHY#=+O^dJeA)-HFT6XHAPE{(Yh4olA>9S5O$kidNl@cpNmMPgJClZyE zGBBVmeHMiELo9))CnVP(>xagUB(im39ShpMEQmEaf4E`Dxi{#}5^_-|2M zXW$MJ07!i3OZJHh3$iB+L?BZe{~3YMx%mjVlhMWU{_}4@SrQ*4pHXdHz;w`z&FAr6 zd3`CR$(gFW<`{R#&vGi5rOj8Tygd#1oPnG84!}|=&{$~39din3#F54};&IGbf~rh1 zHR}b-z(zTX#PuaqZ)PEm2!vW8l}S{sb+f~DUJ>V=B&)yxOR^+q!E-m~NI{OlVG(v1x;y#;Hy`n(`s$vlDfa1a!9ApaIe-$4>=7k_pL97SFZF zd(ZzxwSb&j8%ba&f0oyrY$8P#Op;5G8f{CZoIs$M!H`!IIfcOyNg8DF z#ObA+e}hC!DaoP}nMhn+PF4na68E6_?->wz|L$R2ClyP5aRTGqW2MrUgY8+e?3(HY zt^65-w}8XOG(=KEmv`A%;TVigRZEUh1p94N`NVtHL_U#SV+vGOB<4*o}$|?)I%?E-cWf(Md(=l{4&1AAF2f9AZ46;amrYVJDqNrMF4h8o)|5-|Z_@({7~pDdHs}gFCkZR>E+#^_ zFh+B9=bBAfKNkx?)1D&v3={NBFp_>w0Jv(|(8MH3r1L_?;u1}BbU?$q^ENKk6}RY%C<6Zp{)?Die>dq=?PnA2K! z7w8XMMn3ca+C%rj9(u6leUBL~K7N43Lko+G%Z;^NPoG=P2gs9q*>4}`=9%#4KYQ9g z{o%l`e`2qtA1*FvR94b90ZzYI#2W+|{&mmlF5xOvq!bzxdJ2lXbR(hfM8e#6+@Bm>TmN zM4C;80A`>s4-d=_viU+euDm<9)`JmX&PC> zAppPbTtzR*Y&whP4;k!=N1*lVs(#o0Rc0NGuV{$vO!!#wXhRw!SJd7r+3oVDY|rp* zd@jSvX+2<(Cw({q=rgKrr^O*trGi_Py;7g0r_z7de=RmgC9q-vq`;bjK`K6B{Ho+T zRg^FaM^=qFmFSPEo7x>m4clzQ9#;8^vCTET3PmBUh5GwhbbiIJ#X4YS!ZyXw^QpjL z@=2L409+0-P3&bl6Xx5D_v&|E5g2e^$BHBh{`DDw(1N;5`yH(bZA84tdFB#zmH)Esu2M?-1Q84rcA^T^{DUW ze@{IuF;*W5U8URu1OO}aK*&JXODYk@Ht83{pl31mg@Mij1|r0TgrSyvq$_&nRfQ)TY!laE!=P;^}K}?E) z%#hP96B@&6RSSpizrd?1ol~G@P||c(%BfV9wb&42gGIwPp~VXNxd@SiCR9l_`xeV3 zR3*Hgwa{TD<)h8OnT_-;8ZVLJ?AY2TX>RD>kvzNnGL0?D`dgI?!`P;hTR_QNz(e^d zy*~t;Q9WF2fqG`I#F+PVJ0F%}Kpl5O*`Xk@4iC&#_net*K9+1WtPtte-SVhFicK(oEi$gaLW ziNBP+sh?~8-L^iPbDC4khtRpTK`Wy!gT70EXfuH;$@^wT?Ul^%!+k_Vx9|V)yLTqH zy*ItgH&-w0EHjY1`-c7f=FJ)~{XJ!KTCB_~rNEsb6~*|IPpKdEZ+i?!RjG z=!qUZ9|f*nGJD{P#p91H+lwFF=?~n$+YT;FeRCZ4s~@~$pZx3wANln;KlN1D z(W%?T-ONkpGY)r&$82U`L+#BL02VYcJQXzONC*T-6zwmef373Vrf6WndnK!5!K$ z1B(9)t;V0ZOzu<#r2wTk%rNGWd;+BBNwxr=!F2R7v4}xznAe!>gEojY z5Dv(E5znbokK`=F=mz<8Fws%sH@Jz^@)6Uwl98 zp@%FUeHrrFJI=NJYrB~C4+G|ws}16Kh4t+jN7v`L_r=@zMPda`tU8B*+8d?<%>;YCBb2 z7FD%3#XZtEV*Fjn2fr(5vd_eKJbY2&cK}-!6k}!S1F0ey*jDlZlj=UooA3gQsmWMK zPB4wJkBNC&$wkHbdfs~HJQFtt3OMKGAL9e7DvcByfzQP0V-t;GwF{$SuZpP%WDwCz zl=xrb>?O5PkW&PwcFzJEm>D&4d>fIT$bTB@Fm=6H&Dxac21-{EDkqO1HGr{%{KrDw`2#i-M?&IOy z>U=^S0NePi?n!-Du`(6pkJ#FvoWekcZ>t-ulUkHE#g`3R5P|n@`#h%jlm97U-}9dD z(!DpKRVj*&S^%I5J`x;4%IaHYN0{neLzItIOd2N9%(KH2m;uz>&XgKBbBf{vVB51F zRU|0HRH>&71%XXg^^+xC{&w~H7wo7jzrB2Axb*i>|8#D9xshj{C~MsaEX?R=Wh_La zaibq3fS6nFE^bp6RBBMKeqCBVE3a}#Z~)RUd>LEHGuKi-H|Y1ucIEc{v0Zl;u#u^% zte(3-fJ)d3@yj%|b~qCAxHu`qA#2I_bSRC6%C6atA+X5G`lJqOtq+f26cVf?Og3LC zr*gKs8Wco1bJ@x%pV{B4MAkWGGE(Ryff^t0uV+bB<~6Az)wo^YL}XWEs>IQNLA?(E z>g52^(V*G$wGMLDcE&i%f@^(hA*%|^pNFdL1uEI-wdSnX>kJ!JD7WjM zQK#AX{3d|KOOz2dz#IZ6bQJUfJmg}f0d}Tk0KgcSqbkivtgSRhw(p0`f#9aqlm-Hi z+ZK<2)tkG{IzkRG^vBiz=p1F(i=h!)v>5fPCa_4L3btA+Y!@_5*|4#GFra0JS)zHv zX6|_Oz6no$diCg!{@krkJ#=xhw?47kmP=O7_x7j0zvIm(x1FWO?ry`pNj&_>GGF?- ztM(87)<@#Kzqp#d_1iDzmwnUQBRuW;lefID*0I@yA0Mse^=WVOrrYUilbcmXTbf-w zH}&%elb@XS{Pd^p`FlTbJ3sLobL=gFSG}UO7d^a;hwk6C2OrqUokg>ICp|y>;iG)- z2afI2&vn0klQj1W`-pS7z6A#&g-wc*nMVd4|UqfP^ z43n-BQ;`O5rU|r;T!3QLO|iX>E=9-rH!f42jSK{LX_%Rz8z+}Cmck$crNpg@j&3kS zSMkSZAY7v8ioJ~aAFmIEvs(N0#tyhiN6?2;$m{7TE$zhm-8-!RP=Uw&?C z=MNIm12J2F`ou7K9^LHz>_<=HQy*L7S3jC~|3{J6Z@a(h!LYA=y~SI9$9?|5yI#{5 zkG;w1J@V{#od;L3~uOe7ruE{_0xB*Ztzj3lp0^JLSqa6+< zM%CNi2Xm6wJrqBLO8H@p?XYHJtTieDNM5pH+x8K6GLhV=Rc?ztNSx6c@H0O* z`q)&vpJLgtZE9PwZR)w;#f}#EfHOsmT2HNSC6k`UsZ;@E#U#c(F~w)8s$0dX6&+f| zGX)cmzDHHRAwbFMb5Vo|wy=V7yCoXv3K&?o-Rc}=b8d!L?VHB8gr|#cU)!9G^M3Uc8bcJY4iP`cl|c4R<7v7O;b*+6 zC;F@pw(X)>K%x(9Pl%LqIdnd&a$m@;$EX0Oo}=jJ)qk`_9hJ-q?Hd*JtiMmxc#6~m z2@9@}m#Ak@1Te!8=tD3*ifRsiesr!$RrO0j)YVhgm2g%9(G#rTMj~5Bb}x&GLcq9m z_4jqw*&h_B2Vo`{vkquhl{LrhGM~|75KU0k{{fpSDjkU~FoXiB-w_f)3?Z^SeA%}N zPIju|Qu24)M48ZjKX0uM1Pc)qx1A_)xyx>^Y$I6J1OFe$_D0N|aXHkm>IF)IH| z_zAj1#qK^6>r_*joonJ7i1cqh?Ix`S!T?nocXmM;^ z)o^QFU&usTg#~y4sTL^OTvJkAr=2uh^=5$p49rFa!0Y*w(RnMF-F5#U6@IPzU< zs>qRuGk4YANSKclzxi_??0@`^{PvxG{>kf+D9z5G>I?PNX2b6>cPH-7mOw%A+Z`1XlKU+3!R7)STkcJF8% z^Ln5@Z%S8<>~_0pFY7q|CgW7U-|c^cCbJ`_Q;f%E-w7Rhgv>xdBUZO z3%hl5jt_kF#NPjrQ~T)Wk?S?={2o>NmlJT|Jo14{Q||4-HfgwZW5(xhB<2llX9C)^ zP5d>7o-i5Xi4hxGhuMVD+2yIZ=T0`L000C1Hsv20Np$nffkkaW49eabzA`C1UNXj$9#fl|ArKL+#DtP=&hl|@?cFvNC0aSaiS)H!!!68^$U6R(H%MQ z-+6?247>oWMn)%^+Evx_@75rC956LxjSnm{#I_h>gp(F6jb_UXHA0$4+3}me21_)b z&|@QQg0g+eJi5$6G;l_x0 zw3}Mcb@u2mFr;vGvo@ixy34=ikY@O=7W0@fSrtH}A*Y21DK)SvpuY#)2yjQ4&D`0(d5=Y+lV zQH%fJ?F)Rxw>@f?zVeOm#iKUkzOYR*zw;ZGC)c~rvt=e3{%M{uVM?eKGjqd0lyY5e)$^UrPn5^(N3^7PnpIi+2?XgIe&;n_QhPdqu> z>JIRSe*eMzmT!84FV8>dzPuF3+1GdPq@`2b+$}68*rK)R>eZenv;W#Z_tEL*-JoPwp2_2#TgvqDKv*A8748z zozcS><0-5nmf*rf7(Wk+Jxbb%)!J-%RVQf`*0qm#)@G4l`ZIrh#oNpc8vHH zb-qmE$ck?riiJj7YcW)}M&2t|fU7`q_U95kE(AG?aj9G=#4f0uA-B`7&>+nt6A;5T zMi~p-QwEA=)qv<^Rq*HZ+_gUD9Iu!hRKm%Ma*RImYVq(g7>ZzN+q8cQ z_Ghhe8ck0h!39U~IXYGc8V!MKmCXv4c^!(eO^Z9E>R01}xXVZ}^W`XH`!r5Zg>P|GC z)iB3oiBMG1e$(gkp87V98H3}^OHW1XG*gRX|R6pDDT}p z_SMOptJTU+Pc|{HX4}26iQ7L&vG_LiBk!55#N z@zir`yLlUVyk^4ORDl)|sH)(Ed3=cKg??tyVZzcqfoM!x%^kTrF~)4us5r$uqs?-Q zdrj728xV)$oajlNJed>ImFqSVSYY9x*q(!9tsCa%Xkd3xESrig+xRjTK4P+LJc`rM zGy-~awrX0J@E!o46azWBaHx)i?X;1ko9G9<0SyxiVa^fGUV4<~m?vP7%@UcI=qj7o z24q6J;4gJF-G@IssQKGX=8@Z&YP;}rv+>_R2`tMowG8^{S8R{ zzj7Jn5kZ{1^;Ax5u4>J7 zd1n6V>lN%|jePDl?5XS4=N0^L5BbDniQn=TN7dGuBeC@gJdHlr_ zzxSD={>9(u_JLpN_RAmb`H|1HIP|oyd41Y%{iX|e_3wBk{H0%-?pLknQQ+oH$L-q= zTL*)|#)u}MH<5S@CPj-9c{)pfHP3Q2UcYj60@{vfKdfvI)5mroJB%C#u#WEI` z&wI;TtEb=lOVfA$#ZNE(`LE@z|M@RG@RFB2cJAiWF9cTW#L@#jT=7q+N^O|4S_mm# z!GaFsUQUY z_*Q*TrOsvb42`jRhoc$KAELqxLsdJYjGc4e$qHahh!MXrK1XiP{1wgGO#-9CPIHJ6e>aB`unGKBn#rXRK=v+GY+Py#^hg%vUMuXfZ z3lgaK%Q%uo>tk?DlOky4W`hx+x8UcC888^OFy$Yv_%cx~4ve3NA{1$V^-fkg4%p@= zdcQP7b8;C1z%-I}Zg!xFVkpLd{tut0^rUPs3aW(W(veCOi6{{A-IM0sYIYEc-O1?xE!_xQS^?C z9w3nw$(#(-HzBzL)cCDP_U5x{o{CBwHGhak4;XD1MgbW}fUhg54Kpz%v_IPXE(tw4 z59lIpt9d2fm@;VGyoMoQ2pMH6*YWaVi~5ERH8MygtN)Y9sz(M7o(yEsf)WH7dI|yv z08c=$zx}fnO{xp23<=ce?`4EcwB~>+(p90&5LHI&CopJ$9#N14Ro?r!G!Vztl|cmx zxEcwcDy&2uJ76`JlL>b(*H)~8a=K-?_54Mpr(-IiK>m!tg_2Ti(fnagAxzOyP9&8P z6x#+u9%BFxqfH=lD>!KSy^K*YOdSOFbZyTpE9#`k70rsR1=@dEjGAOoNg?zOqt9RW zn+$*;M|rq5u2;#SFpEe9Ed)$>F9N`XhCp*j=#yx@g^gB%A@IVF#^kk@awGKo6JmJkpnBP}Mz;8+_fbs6jLMeY`e*>%=jx(-92$AHn_ zHO`0HleBkRe-i*mJu^T6Qf?UpVD?lx1u!N3XMz+r&bjs4|8aJ={eUKrA;3&$Ffx&Y z;lZ2N(Zc-vA>#HuEWiJs-B`W&p`HA)*X_)^3oEsJKiu&QU_RKxbn)V@?d~@`@aTQm zJHL;Zso~Jm`|9X!n@>0Bn-x~4Gj88LiT#5ef61$^A_DVI{^+NspZJ%zac(d0>R0aK z>J`s}!-ZYGxCpbv=RSMv|Mq<=eC*SKZpi&T*trE@thmoR3rvqbIN{+37U7e*x#gmn zEf$W$J@3(@tyY1LJ$Zx=KAAW;0G3+y=;(byo8%{3V<6eU%02?IT#%sAb;iLkv2c1KT9Y=jWwpW05u8jQ$ zt)&4k+`@cxySG^L{PooPiT&1*kr92pX>?toe1T3Q=IF}@??v|H790iI={( zA+lq$LY|z$=8jnGnLqZ>9{Sqi3s0@_JHB=Yul)nx;xS)FUq7|M$?3v2bogm3)0oiV z?o-Be()O<{`q7gg%0KfbKG%Nq11FpB{m&kF>+4>5_@Sq67mCvWn~`al6~7P=RLd_Z;Wqp&!&F5XN!9)8(XN<;iEEWdKv4`8ILP=Vx*0`lfDbBp$my6R zdIt+Gicc7y3JEhvqrgXe#8Z+gNV)O}8MR>5G?gEW`<4bta}vaWLIz00(VRv_DQ7pB zg}9kk428ChFQZ~3{lBVSD^aV|oUtDFNgM$_XR10a16hELIp4dBkx^#=I$w_RpV|Sl zO0!5OBa*}TaXg?&#Id1N<P_Gro`6dxmGx=R%skNwkAm?|%sO|h1Aug=Df{9VOP(k)1iXDm&p z%ASA;ZfZ$ZiI%Y}pTre^@%?SYW00M2FI@zJRfCL@z~shex2i6gl8dej&(_Wu2O7y@ zbQL-Qz_JheOhMk&gH77EdQuFc_#4uh9=SK<+)3|&)jfoAf?+s%BU)77!4ZKbDns?K z*j5Ck7Q>V*+xA0C;gqV`jmT`#S2MSiDw*z{N&0P4zd$2AnMfGWqoV}aGL^i`<~J9p zQczIO(X5GNurzC=p+>u_0NUGE@ebulp4E$2%W$Zh>N1nq~2c@^ak=Ci-&2!L^zbN zv2b6X?=s$rK~1i+q(lV4{_vvCRog*|q7F4_MoS3_3e2kDQ4TPLk}{a?qHH&qG%cbi z;Yeh3bf+Oh4nz$7iG8)ijWTm|r1*HQ)pt~GE=XzwJemU-lgMZ%}4LvYR zNi~Nd2+X5L2*EOAIU27>wWT6l{`Z`K?1m=h2aU508&Um(4Gdi7Mnj1%AfxmP49Ms; zo(d*_uUJFWX5jnNYwP<(o+VI_+kV6ZM$3wfAJ3O!^|WF5hQLb(T*_wr{?e%sGa>>p z2`JE+3TbrEXD4~u*4V6GrbNaz5hL;D{##uojFEh%J5e*ArEcZ|ky0aLkYp8P6R@K; zfpFu*WpRnSK*b3Fd}i?&&;@W)NyX#*Y9}E;eYyXK5+6kUiwIj2dE`3wJk#%i6obP;*5BY)e0?3j0V;P+qk zyl~hO3q$jk%VyRlp3CDk{QSPc*Xlo@I#27fdqZP)E3El#>QLA#$mAFIz zQ+0@B;e&Z2FhH7gQ0%d9vUK8n47ZsO=p3uqnKjzn4VGzpyU4>s%loe;ZXW|TZ}oWZ z=YXGkvg6u6KeAUpa+F{4x`sEteaEl8Vi!9P?dJa5cH`jmyj^?Ck-hD!*7)YnAU^cL zwf$eeu*vWKp;i8^AN{m_-CI75ulwB>@YpxJE&b6qCa&C{?ba8w-#yL9lZqRiO!~}B zxOS?x%JHTy}Y#sms002ouK~!=VSni;o zu3(@3Z05aNr}m!rM#oQHAl2EqOS%q$~=q=Svw(aC(ga_qhA zmG~R~@O(e~{r`UXpTFmsU;eNEpZERYx4-`I2VOXJ%{f$@xA zS*`cdVS;?Bf$_Old?V_QlC0)>zQ#kGL4bJnV7r}F-wuf6b%8xRxM=R^5z@=z^YPJH z4Q?*64VOPwfr0sesXq=&JBk}ml#M@PZL4$8^))R z=~<#9jKAj;#YX;_q9~02S}>;S(z7xp-aw#cy2t3r4^e>_e=xkZaemwz5SmoxsSPAW zESi`j5txz+uIQ%qVSMez@g`)HFm`8MqD#)8jrc0g6dl>#s#skt)Icg`Wbus}K#JdC z2oIz+Qk@i^8zz`^z)}SsgHu3W<4q78YZ@v{H05t((95(|zGf1%i&T8B_$?}tO;YZ1 zMm7R%*(0fX%K)+RqdH$!y;!<`)SO~`<#jhxX-^gUa?4z{Of)6xC3ct@%Fh~*A&!X7 ziYvZ%Fq=$$l5Z3Ij6hCgt{O0uWK;GdwSFv`np$G{tkruLUh$#|n69_q2F*xJ$Q1q0 z1$`9C1Q`|{Qv-5_8Bw-E3<|v{^rv_k2}0wktR_`$u1c+ghj}PnLiCpMbd^*DmxPM) z7>HCt>y-)fqW09KR3g=@OWlS@U||YOvT9(bye+^vMS{7u3O}U(SCzDSkf`oc$%_M+ zS#e9$ry)a^CkVxt8mt3DTfq$5>OAyw37d@PS5h_RJt}c!b0Xf1*l^CETEXVu7yVr}qb7|~Q=JM8Fv*S_1KHdnZ6t!Mxwdf8?*i4P4 zQtC=N2>_}(bH7L{B8-({megoPM@YCwGwD;&v+;aq@1puA*Fn$AkF533^hA{c%*65t zjPth@(1~I2>U@qMsdBM;os+EC}ub^)t-P?Oo!kMhb2{Bc`LpIEIjt8P9 zKIr}`Q8)SBGPV`TGeGNS_OAn}kwP#e=Md38b*@EG{u2g|juP|fAY+6rTeKD9d($YG zTFyBL6tvO)W8?g~yPiwHoSvnJ!!d8yp#*q_jl(!g6>XA^nYw>m&#GILW)4z+0Z!{k~5H{|XYb<4|GZWncQ}Vw@Ybv6#V4Q&35Oqq-nZV9LHU7kw<_}<&#!@7zV3Fx=jZ7BI z*3eROy_(BBR~x2^I-u+KN^)F<5W^s;uq%egtec~;l?HP<#rVun6Dn0wl4~<{RCTyd z$b^OWoa7k7%hdXrt|wuxIS-kljE)+H(UEA4wSg{?zlh{Sgqg8ync^yl1|XRPM{j{P z#N%b&4Di+vF{6YI(Gz`Q4i_-R+&N-b?__vO4go$HGQzT1QtygAWo@33n^l@O;KBj& z+9CWU0B+yQ`MFzYzxXM$pZjFb%m3mSPds{@U-kyr8{W2P_r3OD-g|H#dyien^G|ep z?8{H^`ZwImCqEqi{tx&3*B{RKiTB-ZPki6M?qBm&KQq1iJ6>k-x-U;Vf6Z~aLceiq zZl|Z7nXm~K*(@i7cW-8MMn|}NMkii_c@0b*U-iu|wO{zvkNe$Q5xbY&Cy#CozQ1Gs zz%c2KnFvf~qTBh>@6T#{cbT(o#uSYh+}G z{C_47WF@I1-%|X7LJ9#`@Bj&@F9sp9$-mQYccmLW=|H>zF%tl04q1tTVw*GmxwK(O zyYKREjB+jdh`%wwclz3%Hex+g6`tyd1T0icDaM$|XbhtR+oD)mQGw!LQ*x~NnMF&Y zckc4 z3!!RJki@Z*Eb0ixL%$oUGV^llqN`#CGi2v{oiz3_+Xz$GD?S!n?@)$}h>TMe6$ZLIDSP@`p#DHN?xBqkmsxeTc-sl-wDAV<Iput+GMik8 zfz)M$l%5i$g~)28e!Jjmv@IACb?Nvl=5;>wyEGh(2^-fN9YMw=>?XU70AJ50(kyi+5+nP(OHx8(fKuHGOqpi zVZnJm0G?$Z=UWC`tN>VUK`kCjvZbc2vrT~}rEM_I7cV5te4H;pLWgZjG@`0l5#o^O}G=FJ{^li9Sp z%)K46X-eDQLwoq~%X#(T`(n9Rsw>DMBQxezGwbHoa`(bc&wK0kgMa(|_Ah?!w7>N= zE#LC`Ltif4mx~t9-q_%0-+K=q{*BoKh=U!(G_ikOsCildyG!8lN2YxI;hnIlO-RFH zVZANfC-(Sdch87*Og8!B4_W*1e{~E0=2tg(`GeLYvd!#9sqJrYx*P*>!tMw$R(%fm z&V;;l$#7xEVw%Ew8W0(g@Y4-^vjWyY^fj=Wi7zi4vAYAm?>zkSA@bsR%e_TnvoSjj z>qjSHx9-7C*6__5IVZ4S3<@)ZIl?+TQm#fvlRSUA?bgsF{0Fai3NUjEOR^nWgJ)-Z zDyjShqOlbb(Bz_~(SiV?Sr^DNXYRjx>y4|Ea#+zE0pu3 z_FTFHCKnYE$W9GeQqp-<%>c}4Ju_2;vNphjAlBc_GI~ak7-T(>VMq_RJ_k02w6s`n z()EmC%+oReo58};=?3m(iDomJ)y)QRZv{I!Lfl=m`{({$#H(Kfd)JpXyz(pdu>ZvQ z$i4)2x^12fzy0aEc>2kc_~5UY{nCf${Or>f7ni;Lu6H?p%eTGAuDturfeZH~PR;wx zJDDe|@SMHR8vt;hgJhv@W;t8B&jz!+ylb{d`@4Va$MgLkTiatVo^Wn&#_4R)5VqVw z<_2xCM4TQQ4kP_r|JFD5y!`c<&%Qt7=!PTVn7gH;XSxxA^F+=WeeFHwM7O>;IM;SB zH`wY%{@`EwS^PKu;56U-#Qu-`mw)=9-}Bsa8$^<3GRE(PDDtQ(JbhLq6n7|&?24(? zR~(AzEpyJDr2wNg~d8=oC#83SBT*+vCPv@qWf9ChQK!fdf$}y=r zKLK5{GF4n7`eurIg>I^9AE=m&NpTv8SV7gQ*-$Vdk_<$;B|_T0+o*b4f}n)rcq@>h zZ3|EV9$-i_AVNL|ri;LssT|0_AScP9 z;)ox>b&HM)O`$fvN*K3A)QaPz$gc!8WP<+80^LYIFIXVM zV2a=PE=qKh4vIPxN<&E%7GwN(D2&mFlS$Ilors`#n*tN6AG6OiFf{j;eD%aO?L zq`!@sTP85ZRcrvf5y%3RD`^eAf@7y)-=ZR@1VrBt6&;g|k92)gj%s^FGpP8m;_#%P z4C8JE404*K(`2on46-N4v^A|yGX94%A9EjZY1QAV)ieR+x{T8Xo5vNuIS(`0D`y&v z#6r#lBtneRoXRxV#5Jqpx+P%W^S$4rLQ0Z${H_vaetzMNd}rwSw?9XTa>#&{{;r!uF(^2qJqvm7DHu_%a4Y^H&xMwWSj zKn?LDHKifKhd7x2KhlZ@Xhdg|s3eU^Y|M;Qc#?(KTA_kA_D!Zh55RYB;055G$Pp<) zL8d4iEHgth+4uLc! zXnf`+Z3|Yk$+W*`dYR#4L#_hrv9yS{;DsdS}+h z>xveqgYP>T?UQ)|sGcgVu|Z|U9KZpAopM{rVdZ1J>+}o!F^;<{ki)PA;R+mb&2cMR zIE=q2Ym+H^sy-`IW~MKlT7f9_%(ebp9n#j(A_uF7wg#Ad!iD`A&%a==|AC*p^}#p4d>OBL zti^H%eYu!?xiCLC@O0rZ|>pj6$wvZx$AcS6~y=d&<%X(Q{7+uuvzrPrjxY`jKmFQG@qE6;Kqzx z8+={^$0x`aPT<$}4fkDwUAlm{u%9?M@N^5CH^@zgZD!c&6gZyIH!HMNAWm1zaL?_- z9=c}s;APm=3mND4fH{GaQ{A#K|MiL|QWWA;2luXllGC>9}Qn^#7*kEu^BD><-Za!yrbdvKn<&FVI znnh&J)ReVN$@GveqJlXt{RuED?N zOD*2`l{<0qO^>==*$I!O^;>uR^!Z!3{=v0<=)))T2R<17uYWacZ_4+C}xt~GXJjbrO=$4U&^t6bU88gr@ z$DBQSTC4##vvz1Zm)f+<>-|Um%Fo0f{ogkE6|dX-XW#j!9{T1NZf&rM2|bcMEUBJ< zQEE)Sv_=S0#U54PVSJ6o1Yhyv9IDM$l4^!7|5<%1K(Qia(<@0&$1IS!CeoO@#t6~} zuv)3Yk>bZuL<_@4pI^n4W>gOi9cVs34H$u4SKJ%O?h>=s0X2>-tLaRPe}QT(ROW%9 zy(KnofeCUL$O7r1=8$TARDxVxZ1vt*IfgL-BMXu(3N?M8VnI^wP4OqEG}SmkhPTWQ z>aL6PhA|Qw6RIGzg}y76Wc-y?B&jH;;!H5U%Z|a^+}7=RO`D5WrSFUpVknVqP1Cz# z2oM&nDKp`dCJPwXhEy!M=#;=*#V2VhT5jKjRlHiCVo2!U;bS6E6*+mll%yN;FG&3! zdb28tReV*G6cQL>#x*{;)RwB{v$R!|s-U$t_P<&+s%j78`K^G4psW6#BZ?RwYft%p z?2oTv<Bk2EJlU`UkHp4M4pwbhYqxmOC^`cA;AGP z01+iC1W4}^-~vgEhZkFjuIc-A-*niL#yfzb^;hLTgZ;rRp*3OCAsiI*(X%R!Q9D%N(L5L>lUPZ+z`j(Zbf$KSq zd!1}vQzRRrP;q|>VAwTkG2#ygw^`vt9ZyL|2_YbW} z(X?QYCV>qV+Hk4i2QM^H!veQx+?ozlg7Vcc0KG~!Q354fIzO$$_Mgwt_?VPo(AGl+ zmbqHd{&Qd)?DaDYQ50AISOHiTgAUJ6Vsj_YAB}mdKvlGU(&Dt#P7ue0BCC6bYpKqd zt%|&DK?|7Hw31}dL7>Z^*Z?*tIx53%+tDW_f@vV_J-iJ-Vf>G=e|(Gl#$W(I&AU!G zl~n@dR(uZS_`!;L(d8VYT2i0STvT*Dv+WtJQH041f`O9WSp8c~ziUOH(BIe0<5t*q z(I)jbHRg%?PlN61nREqWF$N%Xse`5VN-}#zlf8eUw`NKu7dbTT9T0Z>1A+9`d8G8qZZVN|qPd7*J zr)Y}_ySoeg%s>10@sED&dVBnlMZD>C2Y#^EGTia8PaNe>{<~wma12~I4;LN22GYO_ zEe~LC&+H9P?B*j6?PX@iYBj;9*`}%G!raW=(t$;cF@& zRnXO0K=B+!iBT=?GjRP5@We}y?|OB!kA0!%uRRHW`W9jn!0rS*cnN;(65`UK+2I~5 z<~@<~23XH9sCad;+iJyC^+>B^m{|AsTrbo#&*S~XwJB+@V!PeV3T4=Ycen-TMeC3uUM0Xq$+h_ zW=+FdADY6|_n!{SO;1-0ma;nAf(qN4tBqMu1_p63fSfy91_;2j8wil=4cN@VLF`Z? zFyp}q&6Zu{%`=69j`04Uy=y=J!N9-z zg&y+^|D9g~e9O0=!%P07cZWUjip0HR>-X-!j_v_{wyFxl64o;}SR3~Da`*Bc?tSn{ z{2zbyLw@7VjF-N2k@sJlaH|@e+-}e*y*?;_V{agRct=)INcJYIM?DszK z`+NfC8Q63~%&bt>?4qiOrrP-|fH^8&tU^uoKeN!Z>5cw9O=F=|cuDZ!R~xx+$Qvb}K7n?LHhO2mNB-Zpxy~L~(9fUM#0B3TY`eL(j5EEHB z3^=Vor93@fj+h(hy-9xnm4aaVI5g6#k0VmE>kBc;R(C>G*g89;J|ltHa(-0Uauw=; zl<%p+U@1T~UuxBF0fhReB91fJmfy#AAx%1RezvlNFfYfSitJ zl|^cQ%9t|_gB1P&#kaLSiVXm^GsK9`wgFbXFXJ;kUobuk#Ua&BT%T)|>>`C`3-~fJ zcg=uMLCMDY@$Z}R4YG7nY-Ok&5^9%$;yY7*;xd#ahRn)70HV+^^~hEXXiy@7nqQ4k>riPxw#F|WC}kpLu&QAwbJ z;-cy!VpPL{5W?5bB%mqdBBp>YT^N8~$+40(C0X^(Wr~QH)@NV<6p*v8S+Az*Y66einnO96-ScAY{%kys_xrrDl)nt~XJXDoND7n938iMp^w+Ht77L@~?N) zvXloH^rw2Jve22J$f2xDi`-J&%7KGDLuu@v;q(D1IjLG(inbiZSB~J!zA_iVXr*um zqUPQU-Ij4i8A&9hb@yM zMPPLwYMtmr%K#P(GODGDMC-KGULm#HMg5UQqo_~ydjT*Gz=^UQR-g2nlh>lv1KX&v zYz^wF*!D9D#PCeg<|U*j{|X?7c#5ehn9PMLizOzZ?`{p@9o|i%ek)Dma+(3MBs>|! zMA7D@S#Z|L*_i}9L5g5-Eyzi>vAzTqc&50Py8hB=sP*^Z2z2iBxBPrMrD{2V<(8i2 z3=%x_?-o_Um*eC!30E7SN+iZ8L`bNROps9L3Pqtz_Z6XjzP4RImh|X=D}!_i8(ODb zI@|>gcOBpJ!?!;6*=PM#f8=ZT))y|$*j@N^`O+TlySDG=ubhj6{axETI56McLBu+D zv9{%5%TN5uXYI#+^yz;2^1>f~bO-0pITnum*S~Pbf8qTzdH@&BG1>1OrPKom>st^Q z$8rI@`LzpNzPvN4aqfoJRQ-U%3^`3Ox5Rx{CfvTg!vFZUZ=+4fONZQgwbMij?*U+F zNEfzi4cK(x*T0DTUGHr8J>PiMo_X%HA04ILxHELjetVw zNx?x8-E^92=in4d$4oqilcLjhCZ07FbcD;JsQ=c4G1<7@F)6lJTp7Ygo2d{~ft}i| zGqyxQSVFUJP{T$tI!elBxJc;knjz;|zg{lTUfgN30pE&K-yum;ub2vQwxo z!Dy5@vEwz*UT$E!4!ry!;CFoGlyCor$qrt088|q=<|Gg|H@N-lNBHC~9pR_mw}}t_ zM&fi1eEFM}{!QO<4X^ly*8vxzi|tA&D*ZwVE01)^bdV1zU?3Xh;Mej-ukcqr`T<4SZt6T=n>s| z8l{BH`rIS?sb>kz&ZIq=k!x$yF7_Wd*?i;&e+l3G=dLea|FY%Z{LVlB@Sl9)={0Vj zPE#|?-Kr0ndr$?gNEX0)nv6|i4&OT2(BzL4nia&i3CQ!(FabQ1s6-%I8w}a9zpg?= zs7PUBK71unDqeXbAg#aaBc4_qg{Fj?{)}~~O7e3gLwq(K%PzZKEZu;Q*4EVbL;k-i zwORiTXo^9i+6t=bT!kT1ESI6nTGjKaDT#7ECSO4ascZda8(IOp04gR5<*T9vF%26v z9Oye!myNV{*P6sgkn4h%NFo0>5j_F~O2)JH)wm`G6uY!4<^=*+CPjNoNf>3%RK15n zRi-{_+r|)_tG@p+++b9}>!m9O)*3_c(>R_KiIXR1D`K@jc*1()d%K_@#ViF{R6LQD ztk%!n>2G};1w3~Mz!3vzPF@*x& z6sJ^C$@Ct^*3l}cr@>o+eJai<|M3Ex9QwRam}#hF-k=y>o7Cgwp7R|Tkg zfD|1~cgxCX8Q-0vMihOl4W^MPK#hNE5p3iQi0;PkaFo&2cbk@@rd_1Ujb1DkE&*kC zl(_o#Z;`omh^EBXOjP?~0o0k%c9nrI6xa+fir6`T-m0HVsQ#G*x)=ehpV7No0iH_W zE2^(`V!1MuR6|G(hJz?z#ub2szQbB_nupt9l9b|bN}aZVKZDSBq*xkSpL&0-bL};X zO#}fU1?bDJ7PZW@t^v{h^yk~2JlguY+YW(3`e(Ikg5pzbl0V$1Fx6lGCr8hoTjJ6; zec7US$Kv4!_w4GGT|0N_Fn0GAZU5XpcJ`MUX?gwtc69w7{?Xt4sNGv7UjE|4JUmG3 zFOl#2@Ui{dUs&aw@bmk;!t2f0nz0t1fKS9kCx<`rk_BG$_(B2vgsC+w9q4Ag85()! z7R})gJ+y=O{?aY{gMV>^`z|7Om)q@xuDBQG#^oiW#DRM!$WK25`%k`k%D2AxGCuvq z4R$8O?q0)wbBlTI_crVH!p#|<`QjR%{7lbJKLxve3|!a)9=#7ZSO7ch+QQB*u)mAE za0uIJB>Qv#r)yxff*r4byLXYRgzYU54_<;ld_VB$gN8@%2hLw^*%(yVdd|FctJ~Ah z0XJ?KZr@96Hpn@Ng$*}6!+aX|HiUaY7azuJX@mS`#Gb+#qb(dZi4r7DU{kDw1hAve zas#Ka=@PBs>B5++WgJLisM7Tz?SI2(=*c)Df&zoBF|Gp$%IAi< z0v$}+H=WP1=>!Wl9mpBjY=F%SY^W*Vk;Ev1pKWs>F|&mvE2K3<&ZycJu;6p7PLQ{c zVEcx6+5PaZ|0=_meDxmAzw#RVYD=sl`?D*%_1PnQ^8Kgz^S`|DU;QX>=Opp1??nFg zZ-2n<`|3AFUVJd^wp+h_+p#*y#Kzj*9?ecq_U;DX2QKJ4hZyz}9Y+Gl_1Nqpu* z_wc~0_wmTf9*a-?@{{=$|Mg#Prw4x|+OvPn7W3yVB7sc;h?sl0hx*_HIro)Ou&c46 zzu6?3+q7sIt=Z1SSS=RE{{Fx9fyM9rE4TX_U%mY6f9cO${V%@wY{&7@0@IEUDmodm z>|5tJ?Lfzb(n^U0`$CL+F)Ea@tuac^^?Q^rC`~SwwR9nhSx^afDu#g0T_vcNh%Vod zBa~4bByb|POw*`d!iUnE;=g0GEEFh^H8H2xe^15Mh8nw<))AF?L(sT2vV7B& z(Bz1JNi%odKla*$RT7TT=U=GG~b>+BOzJ z#e+8D@NP^#YY!NcZJi6Zq~Z*dsEFD=y1|;70n-5ujxO&>aI=ZZo{BpanOOxytOA=? zTn=4T8QcOJl5yu~cueU{IYx1H8w?7yRCQeeF^#PXpEVfVtp2~+SH)nia|IiPt%?;j z5`zW>TmFHUaaY@~0|Wu|8#$`yI>cqi^|oc$Yx+|q*&{G?{w~+=tRzLL<@<=$q30MP z;}yf1$q7|*uHVB}UkP@m2%~C}Tdkj#^31bT?gX`mN_~51MkyjhC7aA8DmyVG9K#2e z!vddyg~L*YG8Ws!25=bcyTALpMnV9n*Sp8)4dp+F#5ZyzxK*LI0BG`v7;=t!Vh#n1 zVd~e<(R*GaFp7UvUN@r?5z63I7>Onk%%arAt8LRmRkY(WYu@j~cVq;la7)?2+R4g}gowZ43%i3y#|8 zS&V?XN{O;rmS;p?s!G~<*&v6}OKDSoPGl-2ttn7OpNYZh&?Z12LRS1nBhx)4o>nUA zb@pN$tZKQ4+IMU##gQ5(Ged?e7}1%|mpi-Xh|C*R7!Wi+|WapJXKMy*sTDHPQ$ru0>=UQX1u zcB)kZ?|BBW5d)wxq1YPlGoVS5E~erhgOPf9fnj9o#6ZBO`dzU%(-IR*_oo{09RUF94ShBvs?^ zn32AK?KR-sK5%g#IKNL}!)f9g+*`qJ+yQRhVqbV9;&2JSbRM|>DuIQEA23|L<~YCC z(bHmeC;jF<;JF*X3%7vVcYx!S@y>R+N}Azn4`5Yaw(%_a4L}jguuy#Jj1zNcktS89 z&3UJ%1Z+W<2aTsF{ID1`I`4g&&~gS)da0m5VS-n{>iL?gBSlCm#H_aNOmVVeDFk|! zY0)#BDYhBPy%!GX+Yl%8S@r%b5nv4QNcQ3PB&m+^v|?A0@(_X9ozp+lfW?Bj$7TgP zS(C=!yZ*TYn*jQnmHjmn|IC1G^!x+&&e8RWGuj1%Nq`N)8hn=StGXR=yaEmmkUJAB zX5@|A7IBj8Rrdp5`&Ev&|L$`*_u4DjmJ@I?=jj*j;m&7{{WBjw#n1kH=KDU<&0ziO z-__bTe8+>h@UGW)EU&aUnh{59wABi+NFcmhqD4;KmuP-?4!PKc-QD1spZmY^#^=6( zlj9|xe)44gt$*&fE&P>#4|w*kU^zbrq-AbqPDqWIBXWwaSfH=4K3Sp13YT8;Xw1ha zdGFcN=F!pi0b4G*@3q)nK7;rDZy&Ya^H)#oD_>_n@E8BgBj54-^^SW-6K3mV@$LQSg4#u!eIISK-)zCyAT`2D4nKjKBbedv-R(Q%p=B-bn^C4P*3mg(r$kM*Cr%IVdk-@Vf=O0;--j z5p;>}wzGey&#gihb22671G#TXaJPB`%_y(a6thMNPr2uzA4iOJ>ROr zSe5vCKL<)bg3JTP{M0w%b8g!L2(FOuy8YIaxE})&lMtn=FeitBB&s`c^k4y7Y(pU9 z1HpZ7QGX+l!PQC-+%t|2bjEK6R6DbM?|a@On!l3wvx!df044gU+7c?{0j);1N*!6m zjG-eCb74HBdsm=IN8C$vDLSGz@acG5)@^AnLq<`y^yHj7gz;SEMJP z$81aG4!}GxL%@TT2Wv3v7?T39t=`I_!ay(%*3qq@jYv~WfKg#imgCCNBg6{Q{qj1` zwLR8zam_VsbU-(vV=} zl(Id;(1sd~#T@YH0vT-BsjYA!ZHt*nz%K>T%DGF-)bxDN@7CDE(E5u+Ko*ZxR_~Uzd;oM|*?ym63Pp$G3p9||V&E>iS6Gu`v1qG1+78rORM+zrwy#gM7 z2>p$(-0}M#I<(`{#CnstnB1%Z6C86y99)>Z^~nGI?>}!h?;tNf66?mUDROc4MWwx8^f83?`<*B#R;qH z-Xts?5+pQmG8Fx3?+MS?R`j#cq>8-9vxEv*E0~mfYpeyR>nQt7QxpN8JKc90tS$Kc zJz2?j1Hit8+}%lJ5;Q_kOQ8q66L87(3_m&nPEV1?E981(wwlvo1|kOA+c$}v*Q%ii zAC`6iPSk}VA^Gla`%|z!bte;4&rbJz6#*ZZS?uX+AAJR zeD#+Z-u^od;@VrTnjb7+w`Xi_-s!hLxAKqua`*SWca^{T5!l`?;y?VY&EN66AIwYd zczyQ0`?4MNmdD45T&t+*i8(FNBc{oxE3X3lV#c%Yv!{RIr|`aidJ|vqAHO^)P@e}|1&*#Pa_VDgM_S>!5PTu^~GnvOn=2Ogz z3+Hk=Z_PK)`uqOQhvVD-@-e>ZExSMT7ys;|-}>p#bg^QU#H)xE=*Vz%0Vr9CWiV#x z3h*N)#)bn93Ph(8W_FNeDE1mdH@5zDD}lQ+%z!WujWbpH#S~C=nbmeC`4qon%uy}3 zW;~#Z!qC$P+cW@-_E8;jrVaFd1y~KAmcfFXMA4}22= z8;EYD_tMj8fWSb!2};Q-IRLZ_%rZW;39tla zi9S@auJ15Z_M-$rxpS%wzzfZgYUdbfFi;@CCm?6eGIezJLRr=Aw>=^}TB`6D#X31a zcn)d*TM`k|q9QTWg?RA$I24s5agS>hM~=M7KyYIO23oUp8~TJryEXNZnfjS~Qy{M2 z>Aen-)=MJB7Dm-lC8_nn()%Hr>jiX_765c;W32tCxF_F*9*Wh)>glN@I}8$6Q=p~_ zDi6E9-&3s`woUK~xm5+XN5X@}Z4CQbi3w8C6)C6IH-mI+)XDVUvm^priJ4@8ol^~YbPNA2n@ol78P|jMEZ|ut` zLy|ql{+j?GP!>L&;eYYom;}h5M z!i^c1E>E_*)AIPJ+x6>nuGV~0Z=z}^uV(`wDtWOfffSAbCaQ~Fk-zaC&bk%w8CNwlghy^K3mWr-%s)A@-@df<>-RfX|+8>_xA>j90&O7eD)fV}>Ct zE?S#tQk$VoqS4PYax){>Yv9IRwnCoYhhIL2ym$!gED;ya1Lt<=IyM`_?W6RYcY)_` z0-t+|tc7WUpFadHp9ij8!F2IFu-t_`^Z?lf0CfXaGjOs3j*jRCR;RG_8o8IZe zsy5TTSkOI8HONUCxN;%Z9mo!wKqmPdY#ZuCZ^=t#40k#g9#FN}&3w^$8TAC+y5&%@;t!VeX5^crxR_RbeqJ%(mWBd;=50QxC zkl>=NfQ7?NItbcpD~G00CWg+R3(ROGAQw5}waQ5#f%Fl+a4w^ zT@`>;JPYn^6;4cry)$(YRr(oMTUEn_PT45(7T-#M4ghK&g&vhGOC;b^h&;@Ln5>-e zJ%TJrrdl?@uIe|HUqvw=`1h{7G`DoM$Zalbb;q=iD&#WUO@awV#zf$3zQ&xV7y)kO zO!$5&W)3N!iDKUpJE$Bt5J@L!zK!3z&WqLf1lT~eryLc0phU8Yo|8ezIVibEK$b}~ zhv4C>gq*aE9E<{@ef)3i4Px?2dP!9u!Q+v@PPTGhy1>70yOc63#j=cnb3Blgw4PtDvO6mhfEVACvGwZo<>Th*2@$@4b&$pVdKfJkWJVdz|qe!gI3da8Ne6(Sj8Cayw zIr(E26U5`;@2FJP6H<>S(ponb-h|%fnTj(Fb`PMMU+0i9lQT~k_bi(bcj%tdcv|Xy zdjSo(-6vt!#kQcs4ZRf?FP!&!%v+Ta+0R~FT*y0%9@bFm=&U$MDQ$`lD4j00MV+sd zjmz-~TT^IDhr4UUJ&6oL^X4!|^(LpVLovW<2xk zNty@tcPBK1zi?-Tqmz!KQ?q$aEGN{cViaMiL~PUKV{Q0A2be$}>;li-O8nTrIkMNj z^d#Q!@_oB@|AFu9G%S}5?uK9c@SXhmUpcYe#kTif)#`+C5J@p;v|R-08{*b2;P4Rk zx;I|V&4zTAwrI_qXVEtqW=4;fNLYm1)D}y_X0`6orncu3PS-$dh@2HG@Y;ALdYf4D za08;lLj1_h3iix(@AaaGApx93>iF_ z{M$s!Rh9UI1+Z8GZ35sjOXa$?x6{Py>CN35;4PaiCM@@Xwg^ni$i;!1FB3jB_zn^l zmNSqyI{J*5PhrRRfTJVoG~Brd9N&fAJpoQOz~)rUf#h>7m%!dWLCCg)=xf-?DeQQI zxOWVku8^BGbHI5`mkkq5K2`(NW%&OHw7yg0GG8>TEgYigsbCN`s|5n}R10=vt;3~R4> zJn`YDfN%WWzhK|{SHF;N`u)Gt?D@>2r=Cu`cOBlY!Y{tWe%p8S{{Q*-hw$J2)X5)s z%j-`6r&qmV@qrt+z3^rw*oF+p+$9bh4c)rvxqxM(t*nZv8HUg^17rsL_1}~bq9v?T ze}(O?u4q4aaMM_M)|ic6@m(c7@}->2YHB}aTs(&!$Rb!rmWbPH&y>(S55IzSm6Oh=~uz70JTtThLrAsA_=u1lr~x2 zqd@5&DE|_hfG11JwqU^p2C_6Nz8&Y!MsBA_hW8Hz7^r-1s>4_TQ$l``$`1j1&wJj3 zqG)7iGSzzkklMc&Kd5Gk21^b4aP~9<5lntaA!m>$TQX3x6rZfd;YB4A>Wk0nLzzS9 zQeEI0t5V6C5KJh5H`0RG0RkbC9RD{^HvrX(KW8cC7vds1eGqA6AHAbSp;WazB;XP~ z`A%I)s}k6n`7=jg0@T8wN>?Ze?JoL%jt$i}VDL9n@2iBK2aeC{FwB@?p?;IbeS@Bt zRPR*4FH@983a=`S{Wl*SjClg7@h)m%DE)=;KdRz)t$#PEI9Gc_sPQr?=>%yzHlwIs z1|p(lW6Qvf-YcCyRMlJd%qad+{qh;x{w^P=pUE-Gfeu4_hQUy7Fsq;0?jB7(8MaggINU>1d)Cwe{0pnTcx^drnmhJ%0_Mk)6ey6fZqfuui zf#=sG%*TlZsUrCHIZ1FBD_W!lzPl-n%(I9-d-16#pCh8BPzp^~^MWmEf4Tq@#~8=x zY#(8ups_2(K9F!=W*3b;)TTj)GwJ*oFvc(n>C*dKEtQ=0R)?UNLR|td)QZ5i-%J2h z>hm}bQ*8-NL8HV2y~4Is-#xeujy?cA_Q_QrJ~J5e+Mn$itAcF$mZoMsP-7AYRn1s= zC=CP`lLqEP-@t-XQCd*=F=A#w6~%Po`I@Z4fey>W`CY@cYnSl<`tHwvY;VV2^)2m_s)t`L=&)rzZ(a8+UZY>)+Q8%%AJkz>0vvkgC#Abtd=hr-9 zKmK<^6Z{i(KP^x0H0VY>V1B)9rO=S3{p{>@yW`%5qXgjdg32YO{qZM*ZjYv!r zu)jnc?!hh{!mgf2K75s<1TP)J5B8Dk4eZ`A@WO2-ns<&6N2l>J=R<|~`zLR6;C}!jaPg*jezboNkbtgiXe<4ncuBVedEc|mBm6VJ>VNUie=&dPLpc8K zKl`GWKlp$@cXXE*ZH|;SR$|?!5np982CM$~9*Leb9Nk=iFyrWeDY;Z3Au1+e{9CN6 zYUAq=2#|&zUEuvzmAz(3CK@a1NuSaMCUYVe%R$w88e@9y zdOF#KifyY9N8`oMV2sZ3gbhB#10BGuxWF0>P)z{fB!i@Q3lc^DXB(;VDi9s9ijR82 zH3reVfHNiP)}&LEXNqOph_K=#cWAUYzZZ(5SkKXff?8(-O6)MIeO6wC`^=wP^&IFu zxAC|seo`J}2~Um+8tZ3`?DC20@5aJ+31JT{0ppEwZ==w~=TMw$7;){$OOi1c6Xqxi zi)g>7YLh%jO~LIrBchN(VVFE>OSS-1GQi`y6C3-#C${K9AJO5-nW_>%`(!Udv3 zkUGtmbCq%2YAjXJ!32%IbfqOJKmzT%hITMXB#ra!9{b1Cy1U zI?zJ&a2OjOb?6(aLLVcUHY2Pti25>Al5&7+eR%#9?O6dXhGsJbV_d*$(Z34_fs#s1 zNf>4C8qNzPr#dGP13*^+Cn+SHyHL*8m52@;0CaLy*-zPR0&6+uj)TP&w%aFy^tO@R*eg%v=^b&IHEmunxg6{dBiwnc8yZ})K~vRD#I{$aIO zHd+n{SS6~Bp^#?&T?uN+s*74!Qyi*4u~qPtTjy+w5;`d6#G|IWtiTWSYw#e@($m?V zP=SE+-Zjm$t2u0C2r|InCb{@sAPSjQ3gkMrNxp&ojuOtvsOd0$`%Jm59+Z7Ys`%om zQaIO=pr}i-JTZruMQRIj^_(@3UWw-L&ilLC1a_vxpZ%6gU-IX^@8<2l`_FGK|MNe1 z-@NednP!m|n@xrr+Pn%Jd)mFbf%ObK+-1PAIa&nNPDOmhCbf1dLQh>8GXhb~ zfD22+)Zm*LdG9XlgVzJm!gAv{eV*@ahH3 zTb!W%E{aWWarC$j-{QHFH}SNaZx^9mpje$vgw6rwQzGF#J(k z9Itvmx##QSM87ll7rq#FbRBl*HtfzF_Uo@IJ~M>v!ghCHhx@RLmncoKvxF@c$jO1z zQ^aQNI9Ugdk73W;03k9_7Q1HbmZTk%`I`mVq6>n`K)rRU)H zU$)0Cblm^S4c_?Hd-;<;c02y*dttxypM253WtS zgH{Ep9HtTj+DIEZ0|nZTb%S1^glb;bs3s?H zQ7~HTjJ|psXwc}Q2V6i(6;#;<%1>!kN-w`JJV7%lD@fz>RIh%zm>;%H?koAOp8R5o z)bj}mL-<8VgHhxxk7o-=|Dz0SZqU!gOHrRF|fu2P<(}>lp zAW7>tfGG+K>NCw$n-d@hwfHI`ZK;BvDLz6K_gpy{#u>=^PPI~oZ`*%apXr0(S#9kF z>@Z+RM380gkX}G4{)T{otox*vLMT3Vs}_K5<*}l<8uP&i?i4M_qH3_h8LH0LA+J9- z{b4HM-M;8H*-h~8jaFO?h)I*qYMETf`yrZqhfSEB>S~$ z@!_IusW*cM2QmnuQ=%$f*JaJEK|md7CCje&2nFuxgeuhDpET?EY956M-)>A;!#CGegcPF+0G# zD#a-zl*WU|BOO|i=!<4#3H42d__keqS|ddfU^_vU@MXZK94#SG%TW0cDt?vQti)aK zr_2W^fP`nDm4Va!+&&YXy2yKSqJo%QcLzxWV;a{J6od3a$z{mvb0aHYYvY+q1HfeK zOz1J^$TR7UwneoIp)EVr%tvOL8Pcv{uvXW6t3>Do0k+|a09xJ;tLl8Z7KRlkR8ZMf zwJ?l|O%u3CU^m6!C`wzk*;JArvR0)Z!wlLqmV-{68EMhfh}w6e`2rzQYZ?Jq_p>KI@~zKAf9P6|)0Izs4cxuAo>JfT%nLJ)yXD0Lv)w(% z`g1+aG41VeKKtp;5X7U5|cIewCskxg&P(?vj%t1 z2xM!`Iuf7x+zJN`wp>u;P@ou#3o^|Kw0S0t{WH%X&+nMO^XneP?HAUVP7@El7&iBw z{j}rm(P`efIok_2*SLNo^117Fxd5yMmJ8V4eaF^z$Xv(HL<$ok~$10GY#m}fVK}D zUI4DKtsuR@7Y*4Ou)70TBG)s87@vC<_QEaT<`L|Lqrk0Oz|k=fiCi{nAuJZK$zaC- zPEUXfmw-p^GhDjZa%bPMyX$u4(h|PlVF&=xTlAhS5q|Dqft$B(;)752ys*azOJP;T zDW-PVoE&z%24aJF``fPibhw{)j&IrdDKbP?GJ|2Z%o(;i1$=i0R~}Bg^mO=Vo?GMc z0epAYa?ZrPd%z2K(|+ceY#;n5k#GOd^Z1%~-p*IOZIK6;c712r^F?po@jv+1hwLkV z_Ex;_r&spF|7w%}=9hj6-~KHh#4CT->(H*f6!XDF$NDsV$1QuP)-#(~Gcz~+hk(P< zEXmiJ4bihLb_@&izPGSjw-VD~+U{QD!}r79`lda+@e{}Rpa0>po!k2di~s1adG zOL_0fXR(a7FkfQv&};EO{J&q={S*KF`ruFgkDq(;fBm!fJ=QSY-sJ9N*}G+?XCfy< zD;*Z~{r68kUQP|E}UD*^!KyM!#9*SBgKvQiZG>g-t-Bb;c|^vo51rYE8+mG5%(i8b}F5 z5ICqJ(N;GB9*PdM=Ob_8db8-Icv?k(9M$r9`1JY%7V5-09#g1vh)l+JuppI(CF8d! zHYgZZgc8P@P0!j#t%;!&_*tmp8VyFL^1KmSkLo*6bct#=9I{YqT^z;Hde18AB*Zch zcqg_?eSk7SEr)|_*DYng1gybFRvf3ZffPWaHdHfY_A_YfHhxMKY*K4Wyo1qrGb;RM z#p$}^Ta_~Ar&jTm>ocMJ+CVubH%z9gex=(~rZ1zhJ;S9U&VqmvJQPTf1DmL-WmIsU zb|yLJLx+M(WNKXn6m0Jq=B(t6DCwB3uJ5TSl7$e3j9`HYrM@Y360r$luop;8;-^`6 zgl!oLaHZ8%jSeN~kq9L*Awy)SM_0vANo{RRp6NNxGs!l8k4D5Lz6g*i>qQfjp(`?i zWzvXNRkh%HOZ8jv@7WKvO@79VSXEO|fI#h`)*8A@oW&}mAREhb(MO`zlhj`T1L-Yz zumBBMZY$Tktu*IycnOIumHz)WlEsHl-NQFsJWwtVu;wN z@FFY8N;$67corKMxWK3CcP}H;Wn2qfp!i0Rc>$vO1+Dsh-t&vAnc~k6&Ef8U~bpmOstvo9Vtbj0-jJt_} zA#g^4iz86Ow#!fs!&A|U=x8A%(q!N)0BB@jBIP&qeF;^k#kMFN3!%V+(K5K!IS}9q z3}_1Ye!Mx`3OiX0IzNB_AyOTONfiqsT$3ddXaYWp0Z`-bM$eUAFlVR-JO-FY=0WG( zO_2Vkb?#O`A~2j3S4|lc$mup9t)m1Tg>jVLA%nlVL6zkg-;qHA2<%8RA`4W|UGzFD zd~-B0WFVUYOIRmxTK3Dz{SJj7>VJ??62%!(Whcki1!9aciV%3yNoBop>jZCo+4Q6D z{fK@4U;ClE-}XI!;xKye^V83t0`SGAhgr{!4zNcI3v9J3NA;^kb669YJxZ@V4RA#l(?*0i+9?wt!n_(G69kDN(^3_*XQ6@VD4VTU& zK$x|JZ2_~+YVwU+u-Cu6VgK?zo_Q`K5q|F^)2&%sT3p)SwQCPKUNt4M2To5madc~i z^>O%ox`{75v+^JQSBV#nfGg(_n+VEKRPlnH}zB?(HKl9we@whhMu0yLJ(I zVF~Om&Gz;)Z9<~Muipah9V3s9kgHSp$(qvy?wt@nYz;%6Wpc*cE}5T3mkyVl$V7oa zTP|hn0#*cx2u&FXw>GiKEi&!)Y0tia^_ecP2Rl}J5?9_m=w?pxFkF+US>DM;RY_|L zU}q1xFPWOd9n$QVhCEsUI}>c7;!p6If=WA1?|0N*`mIag5JjGE1s5s_|_nM{WD z%#7J^=~A-@#A*Y#MPg@(ymArP-^*BSU^kCo|K>x;Pk#Q?zVstAzUm#Dc=(C^+&SFX z;;P}5Uwz&le$h$1>Q_$lr+#{4-}5(C{T)C1OZjzw;PdU;Z~MyZZQo;_!edS#+?|6O zEV_GRKoUXCd}5*&9p=b6(wAnwhl~3bU$~XHcieI79&mU#6dwu@9{_gX?^56ZbM_>N=>oK23 zGq*K?(<&CQrWpSO6n@EBePE+c$I5J@gMB4#87jW*F`Z` z>+jP^J0=AxVXbd}7GmC_;z6KN$&rZ5Az1l89UB@``eh3y`pl!{!_?=kTE3Vo60uWp z!7Md4kv`wbd1Pq^G3m`(7bR6;iA<^6LT+fddi?{PC_xJOu(LW~{M=MA%9NxMgmF2D zYW*Ezj8MWfLSZF>Q2ecUDb6H>Ma8B(S8T`I*SgAsCor^sC?sC*tN6*FqL)epW-5%? z_%-G$1OY-oO$m0VsOscDkBD_7{w3hY%bgf=Lak0LeSJEUeG&UmlclnXLMozA8=(rW z{C%$$TT-pDZNXOIOL05(i?t74fu8A{ZhsCBX(3^&SJxDe09)$3auF+SC19IBLNS?g z!2$M!*uHSyuNI?7M)nmw_iYgWbY$S^= zXYU{C`I9kZLn1YoD5cdm)q$s~xq4&kjwDo>2~5dLTwaWKsG=lQU1OVbVD!6iQB9+| zidutu5glHlQ@lC#8ifWFq87URDPsdw>xnvvJQW657kH7|jZ|V)Vt4#G16n49`n}xV zW2kCcTVUQ1nuaihPn6`hq>=Ag*H)L&s;S{3H{>Y>JsztXR7ut@jcpRG6hl= zI?othieohHKelU`N(?w2W+J%Ih@cglS{bOEkB!KdhgwLa;tmI==o|8gQaryeq{R*tm}8HO<~P$DY% z5@lzbq0~DPXiI?(XPE&yz5*xoAJ71s`92|(xK5XgW;YO5pb!C8x{DdI1&4YFxU*sv z)b}g#J_D50874)n0g(vT`VA8WwJj8QU^49W?pvQ-Vn2qI2xRJf$^q!`3|5nRyG)9$ zmIa&D=N2uhkF(a#2uqswS(!bZH54!?HfdQsR*-X{9krBRfwR&B**gY7T;Bmy)KeL> z{}{j@tOSDu99c)TxRk(8aWPPdwLpz*jwV)3wHm}YPdx9{7KI8_1oV{MfY!R`l2NBj zfPh-l6{zyExdNg>t%tyA(s9aX^X{ekARXLO1hZD~eD&_=bH^Y5-FtuVzyAKyFaJOP z#qAe=?c4S{a%#)v!dL4R)-%jCrtxGQch{cB#iz}~qX z^y_O(Z8A5a)7H~P15DV$rpb*D8OYw*nmSWFeLvUt^d;$#K8cMtYFfKN1F3B&#_u)CMo-$9%|2j5%5E}XMGJV?8I z0e1gYY69#mXlhdhq|;MjgPjWWJ&~IYeBO|Ozfip9p#Dyd8^!oy1#H%gqa!TmP5Qh6PG%Bp zZXE+B#}rV!a~E-R0zWxrMgQ(8Cnl^;VCz7htXW66bRIZ=z!nohX_ylTlH)`erHNk6 zzysG7{@{xa^NUYK&OJQSEz)7hp;PXeZA#?q8P+}5E#1u?yMM=~=>*3o@SPpnAGub@ z=1L(pD!Kb9eM^nVkKJ+0EM~EzBa()3P}tv-8?5uU*L(ztsIRzY-aN zynQ?D;y$o*&g|Od#Qxqgf8t-Ra`)0d!I%HJKbTm((odiM6aq`E7xyo}@;{#Nm!AGa z{Dr@lFZx zEI((JB-d1+C@Q_9gRDnF)(t}^s~A|tT9elc+2_Esqs(zTq2sL$pB_j4L2ov>XqdjMlO6WDuRq> zQD{lI%p$y8%_g>wRKdDK5&# z=zRt&iB<=rs{0}y^=8I4&97%$h*pk>YHYdOMRvn+l@iGDH%goQBM~| zAW0#DgE?UezIB*~0%}qA4KzfG-UI9*=><0%Deomb0?45Zha}WB!01`e+SMjO_0P^o zu4v$p;UBkK$(sNQ2A^eERo#b;HKsu+StWjcQLD!A&%cW-@@6HV{ zC8WIYCIO9_)6NR5_TH01dIBBDDbn4st#KjOx-iJq-+f_nO5lj%?R9HIW8FDkA400r9b#DPCs_-aDDMjuUPgMZiia~ zPB%Tx;nQUBjpcJM!1i`#fB9p}JioWH&pZ`*d}6t`2)}q9xHBP7Pq?g-swg~sI;~o(4|RGBSZqO8d?dI6Sa8x1WBn2OREO?kqFU@4~KJh8-Rt<~1COwHFTa z1#-6m(+(5LCZR?8iVRP{792HLSUKZzWw}Y#M1$LTpF`p(?`qvy8IB(L|r>x-LJGPu7adZqj-FQY1^bVib02-C|uU&>caux6i zd2j$6?g8)rFmPuD?CcUho@X&G&9fnV$cz{;HRQ~0!nk;w1ovC-O$pV z(D%YE<_%kYTT9CFbYM0E=5!CFwag1Uz`+4<^DgX@PZ?hL={Z0BbkBD@-R)&>+OwSp zcG1o)^1fFu+t)p`n=gCCDSq;wp5V{_cQ4>OKKc{(TmH=3vc2pz=!xQC z`_#>iP0e$j>0fELmHaCJuxwBA`ak(k2NIfQgcyZPu8t895tXv?kIKYd!BL9AkyU|5SuaOZvCx~u*c*Tt@DTUJ z>gtIZs~7}Gjm~DH3M|o5(b+>`9eiXOyn(di;kXQNU+GW1!q!m zYtwU>7t5I}RuP9#>|hC3RXEJTDT?)J+d`f0r?rZ2u+2qGcOJ?g6Jk`15DPwlo0MKt zqfUgY>JNf|)zUS_8=5Jq44qXYb@BgC)}My$mSt6e=$Lcu{eIo)&xyXxjL1GA$xJ{R zi&jwt>=iq#dc0RlE?B6DU~lPFl=41c-MY6dwG@kss0d0^f&$V@n?M$s3E4Lhkr@#u zPJh1cefOI4{upDf_oFJFhfFfQ?%ivzHP@J9jyYywQWfht&YHdsfMe2jVUnaAzYAbO z6)?_8@2qsHKNX-nlQ)zWRW71oqVS7)N(Hl8`~)k)lE)kB#!d8c0F+}ma3mgNT?+ig984^Mjag;nrXqjvVH(jAQtAkDHDg&;n*={tbDB=S8C$@}M`3InHla&%} zWDzOF26zG6+$PFdiK>Dw*anbxM!f*Br{INATc*t3YECyCC*8cw5%TFt+|U^N3paFw%VJu4~5*>!VwB6N>(bE0tDoX zdUq-zPF=Kay4aR+c_;Y1MYnMeb|l*P-@V8l@PaB*uHGW_9OXz)N7iCK^}e&COL9f< zpdSA6g-{~tdjHTU9PSZtMpO|$YS(dH3ycrjw64~-&XfUak*SJ%2V6aB$^B68kGC_= zKOe9HqXDKTQdA~`$@4m9?J6l(<36vCt|(s0gQQb`SR#XoZ>eTNL{G8IR+WuVV9y+K zK+}FRnLUp9CAp<%wPAqj22*7L3oIr+qZB-;ONGZQwxAFq0v3$SbICwcb%gS}81WCe z4eB<213_BX_$bSTK&tLw0GTgQgSukGCU!q2cT`}glS{E5@k zTrTWq+nZXux9&D|UK)G5E$^Ky_TnoYt5xJ1U%iV*uP*k1k8bjn+lJPF3;UTn6WYls zdf&h|iCh-?AE>pIg#jr+Be;cfViCiQRvA%UIaCLb=VLRkyWHj{0yuX=F5U9Vg^WiZ z-)+m<65hfSZJKC1DK;)L1J;_mPif9wm1Z%oChT3=$)EqBn|8Rs_GeyIV?>^BkFYCD z&NJ-BZP>0yKK%FvET<8zxldCg;BUyxZiPl1paWH#Y-$Y9Q=5QjvAg4zQ%3XjQb|;S z(h}vp8OClL%zERk0ap)z4JhqjdYX9q+$=oqC#Q)Q4uR8C#3s@Wu${^JWY$)5_`yE< zYWC(H@(VDVf|YnTpv}mg2{t#R&%|=;4cBI#knS3(i{#boKue3DB7ow=v|MizN5_e! z!`2(XJ$>oGdJ`F%Ekz}tS(`20;ld~xVYY05Ws|sdn0~NA?98x>`(X#Whzl2B=g%Sb z_TUEx6Xspdo!QOjwAE_L%MTe|dF3#Fy72=^wVJG{D zJNFm+@n122*L&CbU%k8Ib3gCYuD*UR{9um#YpZJY zAOEY*#ih^wEbj-;_5i&3ArRE7v9{5Ym!WL#8az%nG2IV;!#w;z7X-#>?6ef{e%{OHR!cW9)bxr>$LlL&3P-z%{q{$V|Z@wFM4kP?I|adp_h z7n&l2aTOCMpbMXtCly9NaA6tVY&AiE_hTvdm=g>CSEV_(Eq?Uc(&y(z0qZexiBivH zm|E)MOyLJ?d)42`Dnbp63Sn*^G8aSgnHn*_*C>~iu2c92F!e?+{QSahWv#QB>qhuyRcJt5||98=vS~iM?|BDj*eZL1TMF3O^NI z1E}DDa$N9!6}FOB04k@`?^3!JRyhr}__-H85#B3BgJ})*EHpXaejUP}++UTaX=f_n zcB5%w#fo7bU8IZJKbRl$nV7!-H5QX=?c;r>a?Wsm7E``9Rn>XOa8eKL&fX;Akpa}J z+68k~?kgV|iK;e$*gDQ+R~6IC%pfTrQu2mkbx^-Bk!=DxxkVao)?rpc-6qtWcvN{N zZOeF6a*kshdDW^d70I~O5f5tGzL8Kg>qN=u82Pjk><5;x}1#HXl zlzi8!oI%M)ok7zC0!g0|BtR;OE?{mpah!|ZN)9Ja{T==Mnfmegh^+QcbxG?JiBJF? zOS`67Z7bi~zAHuu{yaiRL5w4{u!+Q^o;M|jhV4Oh1JFk0zIxHd=5zy6@@NB-wE!Dx zJ1?6WTSqRZjLx)24E%cJc>h(=vXWWJcNeYCe`f_b-;-T6Wh39RmCkbip+Lz+)w4nP^_-i`LL7+hF3>~ z{zP%TI-g?Yt;$hG*;^&4wq+W|`{%eL1AFax+2kM`w13h@at?@ia|YrF#yh?eAD6di zNuHWo2LTr!(U$VCstyOBnOs$A@KIF(a$9|{QZ~pau|Sha~Pk9vW*(W`A8tilp zGv~YBo#!|@>iOP}to`uF?Jcic;f=3vc;(g_FTLECyT|57$GO}}v_(s|QAK)L&|UL) zl0^bcC6I&K_`pN!nXL*0i^C^pR9Y zW=@qEIYdM(-f~J~DL(<*J2wM6OZ@!Lo!G&i=j72kxjY1utn?~e@c#EU0f)!H!4B-o zqq~Ui*}R3jCnonyGh_Qxn7a(6Jq$=&wTA9={cCQ^CiCK)(Hg7+%Ve04Kx^z;Yb9P$ zK+PF>cpvu21Hf7AXOGCsmuA29$_DTM z5P%8p9@!Jo8XQZ;l4xu8$sJaPDT|w@O|!L91p*xHc65aP_=D!3`|2I+&5Q5t0S6amw4KT3 zof$s0NOzl?^`qRKtQ&j+)~5?DK04u%M^5te=Mt^;XoeOWHaD{E)#RK-$PEhiuxt`O zO}4W;XT~D=EfTpn%;CZRFFdn#i$KF>o!B{;{prUiyz7IT>`6sIYH*Jem^B43YxG*c z^;b^%vv0oU^U9+yWEn-ky9a|*c86K!ylQrIw4A{XDy)GWtJ$+ngj85BupNz|oG+T6 zoFbpU2mj8W3Vh)Cll+`d+t`~vZ4c)k+X*|^Y1f`U$p7|hdVBqA9N+ctPV(#io9FTW z_>=z;Z~e-fz|~L5esT@DoVIp)2LLTbY~naN!<>DSVLtih#tpQm9>Jgb>PPJ_{q+~( z#g~vzJ#Kz{KbD=#m>zhr<;`1Z4_!^HuOEi3UrFpgVVHj%mJ8zkG1j@$FMjf~^Eds~ zSbpzcc+vjKKRx<^fBJQMZ@ql&!mr)Ded>Mk=yFSE5lxsmX%t&Tz*Ye`0U=CP<7ol7 zZ;6v@qzL8+fbKgwZ;yMK z-3-P;p0KW!8dLZ(D$a5b>)$D*HcrqPZJpj!bR;$~CGUwU7HJ$EY^-5cvLp<{$5Rup zF>HDzyh#JXA}~z(NtFy>(}+65f!^q|!z5GHap7C4s&)5MLZQ7T3~s_gHhwF%6Oxo4 z0jhGVS6_wHv&=Je$CC)E=iTOJNLJ0Oc&dTW7_HW!B)0Ik9@y%f6dqFY93qv5pA%G2 z1SNRGPl%P$K_)Rj(1r`)#OB*v#rgBZ^qubu+w~h&f7Ev3`)PIk>HT)?*WpQ~w#se$ zXRW!7?2sf_Q~toeUz0B&IiVydWZIQ?arKGM(3;N286P`uXA}>N9}^77W&^A;nO9O{ zl;?29HU>y$GOfc@0ZR+P1;e%yuZT}Hx|Q3O^JVCbh9wQX4PrqPHT$}|QH4-%KLAlc zuD@y%q;d+5>MCY6io;efjaAi+rDc6s6ANP6WMqvf(bnG)VPKQyux3^JLrEA}wQ5J$ z(tKJFl@+{^kQp9Z5FH+sP>L`bzo$OpRzkuJ)KN0pgr47&ESVA&FiJBCRRn+`L35Wl z+t*c(D5g*1-jP5uK@F9Jwt<09AksyJ%ovHEK06E?{KJH~hmwyhxRfKf$<1u55J7IA zza9bG-nrqjmC5qQq@<)&3zdpxj=p~FM3(f%WC=s$))=x1UsdT&sA{W2TBH0ZUDA86 zAT8p_L<~LpRquae(?s%IT%+uOVgjqKWOK;s;OBQ($8DW;I9c$Kc?>q0t zM?SLg%NG$nc}w^Te$M4I#4?~;a^&_BhU25OM;?K__F1)rGkkSAq8QxVcIJ*mW+t*P z>CrRS8@K&^!|I^n7k_S@AATNo`I0OuEz@9AdPXi*F+2cZ)za_XM;;!+KKZvE;Mp&D zwI9BC4?PmGcxF%QY0(o?m|;n4ZEBfQ0*UnIj%muLUbSP$LjdOHnce_dC~=`>sneiv z9LThc)>@l(Cu{2@cNONCrcB=$mMJ|KM*!X2%@cjobJ|qMzdS-NM;q)fRBt&*gvov$y)?vrg(9JQ0LV9GPsgTwcj=G@C zWN>%*xxLJJ2XXU$`p2qJWAD{JE$I~OPy3%(pP3EhE_`EM&+f$Ebe%E)O z`rrGX?&R-!$B+8&`zs%@)muM5`|h(5lf#bgq2)$?=x&jVS@Sf^nVSvr4&u#!>`U99 z`1NnIfBkQdaP_j|;A;4tdl{E6z#e#Lr*956?f8|Gi2K*gul$beJ3nE$vdGg-tdCB8 z>0yt5)*JB8{?gI%$N%;{`?LS>`p^Egue|uGhabSryN8Y@fV)Xb=b^EvEEMrRabbnJ z^DKdAROqq2Z0l9!g)L0VQDHsP1r}Ajo|vqUK6~3%q}i@Uj>n`*EHl9np`6H}qOBx! z5ymKtnIkANW@Er$J`2qY10$o;{b2xLK745)tez@F6kJLDZiLCRCUq|<8SpA7VidJP z28czxr>gC}iguDk!<>qPy2t^Hk=A-fu9t8V#I9;Y2Fk>Gs2B^g7tR{61MFDXDoZhL zyHWuZelp#MHr~@v%@q!U{{5N!g@qF1;dddU)$Bqv~A zGY&B-sod+q zS?PFcBkC|k0%ZV}m008e(&KchXNqj7`qPn;^K2zc1^nxM)IU@@#F@`br~DcPF%FNI zNhT|2Bw4+}3;#wPhKQ}HAJ>R$>-su-J-}pZ$Pqfxff6hFCIDD~au_RCwt`!WkkKB_ z1T(FdWK-K@sgiT8F~%<%o4rZ3z+{EbRBR|93H;bMmHMWV4ZR0F4W<0G&I$N3)~?pW z#@;lTb#`{hRHcj&Ii8PvCfN}-bf*Rg#Up?B(n8X@^l z4OYym!aAR$mwZl@2zj>GB_*}&qW#!z@~S>xS={z7)Lglu`Q|I zgIJ7`K*CdTj+gxL(FULQDLeoCo$t*LzvsEr?>}DW{_7sKT&-j=6%BC9(Y(B+?+fi^jC?i{ecN`KFoV&JzpZ$05vBM+ajgJ|cv#LD_t7gI)(i=r0(F5K9 z9G<}5@JxfBJBN7rKIWChWbT&9X+e--Ivm!_GK?Ka&C)Y-wacc*S8k=PW?*MR8trK4 zdui}Sj-LV@wgAMYTOOXKUwNpta~IF$dfnS(vMjZp8yq++du!3m4I7k)LC-cto~|dm z`rwqSy(4@1fVC7!d4dmy?@GP!V`{FOS>P43)g0Q_}PO#GMD`4)jdirf=~2~UtN3qjZ0!cD zA%NCATQkdaOOJ?vsqJ5*xE+%(X6d=Wuw>fPkM8Blk6U3fbGU`22!49EF3h9O?ZTe_ z_zC*y1{W^Od2$?X-ZC;cbe2KUkg#Ts(Vl&qooJb-#K7v7rr3fiy<@Ema?co3K^el@Tb_ z3sfd_*ZaF`I995$<}UU}BYT((+C2xC@O zP?O8*I~`0EM?ojcz_Bnw8;bwJSwuJTWUC5yRpxc~59F=l32}{bEn%YpR?&zh40H<> za&rL>DuPO3ZpwS=p-V+t7pHO|uN(lwX3eS?TK_4T8yRw8no#>-vN&Q^cwAc}m0yaC z(v}-v8;Q1^A#Gr4?MRUoRU}pGZx8EYRj?NG~t2*6-zrz`Z~CNYMdK^YkU5a+SCwh45=oHMJ`zi{|CxZwY&{N>=R;J zeWQe51EzC9`o#4OdM#k|mW%Wmy+*3y)+q*%(b440NMjMn-O9j1KrS_UEdlj`F&MDY z=pvlxz%{Dx`dj6e+Uw|+#3#joH_D15OHHA#TN!$kWJsh^7+GW~Q_z@%*LpJ|6dTL^ z!QS;`MYEjeH92B3O7c^mGay-$q~=-VNf|?`Dm(hqy!4qavQF};aDVgtjR-hmy-#g?Zt@2XbDfuf99KCakH$PqjuD(&FA1i1U5kfFSfaShTgXsp#_gWWtYd)TjAI+J>ha-FEz;HcJC~iSt zHw!fNWR8SCWf~L$MROZfdGeyXZ0O+MVHD%)QsgB90R#f1Y5e^ZxmNEdGxYh#x1j6p zYX!h2Jx5J@NP~Hib23^SDj5BeioczNCcP&p0XBjGRNnC zlCAsVtFXS>U3tfedqf&6GFpq5Z*;8J3m$v4`9l{yu3T#V;5D;H9<=<#OA*)a^f);N zjyIS#C&0;~YlPu@(-(%VZkRmKQ&S<`VAI4_)1(^IJ<%Ka408b9SbSRTBA$5_+Q}jC z@{P3r^HjpC^Px zJqBL;bi?ZWf%j8`BbMyll27cGmOEF^qs^;CPxHwaWS}$fHXK~EWBVwUyPKR_P>9o+ zC&ZL)U31dGt9^3B@d@zEL$G#v$2NB-tbBuPGrOqFmWU8iNW(J8%$@zutwqmy)%@yC z*?Snk_7h?n>z3Kl(bF(lM_=utovewWaL~K;w7FRaV?w$a9d+2@Jt>;aaF#*<-AR$ly;m#h(m3MCwuyX;pbkX{)J88f69OCv5 zZ065=ev@DLIlHzx-z;X}{Noq;Z~p@uJn`g-f7kb&`ZxTg>+!YE{RrOpH9HpmK&J05 z-cGE;tWS$iON-T%Es&Uejl6Xu?7?U8r@!Ho^RIo?FSn0>bcwfp`s}eRd2$?fc+{5L z&%y3|>^d&K>YSf$kSp)mcXr#x%wpY^lUv<(_pai1e$}V!yz~7(9pC=bhfjaUzx~KR z{NrDK?Q8CzOp^o4W?9hT)(lujWTY;fCYN_5&FDo!ix5?NXofI%V5sFX$nIx!RLY2j zxR2G+!nwp#-GDM(Cf;CAc@&YHydy_CSpC_-Brpq<2?|AW>Xo`v5T0zwFQ}B1eHVTU zQ1ws+GmiaGTZ5^`H}Mg-RyBZroDv=fA` zpAJZ|+YyTrWXZZ0CGysj>#M(u!cU_J07ap-Rh&ifC&5zkw(82cp9zujnRf=;cF0ya{RD^UE0g+BPl!nSeQ~0hb zs#Nqbe@P{=#6QA+@)oG{-z+hyZK8_2i*T-i>QeVM@Ih4Gs^qw5NS;SroNAL{u|>H` zt0GT%eo69Q3HwBUyJ1F1`5nsEVXVIt0fmv1DF*Ss4DSoy6rQd3v(>M-lBIuH`5i%Ws>xE(i)n!*KvfY5LvJK$Nb0+|U_ivu)UCx%q_irZV3OrO1bx0xe zNhbPAW5)Z2M!`e^thFkaFpbaI~iVlTo*dm{=b^3NDh5 z0k_yvZ1;;%2MeA1vm{K@XBy|*r4$IQkIC{cF&O9)v=!NC0ypVm_z?(Q01c{Tggggy zE(xkiWw5P8xGAwVpm%11+wp+V+Vf2Xh7;=mKQv8Z);Z!-k+QaxhnYK0TeU<-KBtN=%JfPMm;u~iB+BGs?1=k zz);DMd!bis(WU1=F11S=YE%&f8rMj~QMXq=Hh=KT_i*jIekOkH2YxZGzV+2DAGkD~ z9Bz7>TjF%XC~c8gr`t<+fa7(KyI0e8TjGt+O#QV_&v@iYj}N>M{_-oZqvOn@6|CPS zW}GG#GaAPv+op>n%JMC>PR&c$s!9TnFG&BKP-!S05mkj(qv1+rRtaCBEl} zuKQ~qzTV#c=~Mou&%A;MU-JMiKd}dIyLoc^2LAm&`GEcEd($powV3C$9>gtXgu-Au zsx@%kn_DhvI9WX3_@+w8`?KapnXX70!dmaE-;+uV31Z{3GI z`yer5wJ}b*{@jf2?-El@4Y@>SF0iW)>;wDzG3~8wnw;k;yJb+f2B)=aI83etyv|p< z=I1ZxwQDI7FG%mAUWMAM-dYZm?lE7 z(<1<@Ieea)N7@t-9cC?q7IN8a;~kzJwhFV}5H0O=len-y<-xA?Oif^SwUjgOEIgb5 zaPb20!RLYZzV{B^{;3Zj!_Yf2dm@&eb4$B)arV{R^2UudZe2gYmCIAyxxcZc%Vx%O zM=ZPwJjp@Gv7SA9N@ z=~F((@W8_@zWcjR@C|?KCHot%d`Ex#*M3>sTz*aZ(N1fphw0{#wm~L+=8>z!dYyUe zc0TmkpJjjZzdww>_cz`*eei=Dd+PC)=U}+>^o2Zm<+|Pe_4nDOFF3HN9V2Z@kEKt| zr^RNQTH@aIdwKckYxwhD{}$Z(oA1nj`D4dl{idgnfADReaq$OUd8J#MT3RIGUf~B7 z7Yf#@2WNP!loZi~zeByi5g7M(Dtj&bmgOfj?pGxjR=zj-J!Z(H=YXOJW4;+ZsxpWA zF#%ycx}P#-D12SNKSyyWI#e;OWV^6E_W*jizbm;i-cQD{GFW=G>iNLmri4~gm#IF; z90fP`s+^*bGx6^kEK|ufs#UG>3!VT_F2o{AsXL*sTYX+l9^gI6Vv9KgeHXdzS|5&= z$>Aw5@LiaaM;`?(?g%|-sV`Jqqx_7L`7FVb6<8J?mW;60hgeV`!*jd-CBrc$ucPQP zF0U<)kkukGDZ_8d$*NdD@`2=xtLRm&5pE(!M*6R{N2GFYZ z2+a)$j$0r5M|lf9sPxWseoW`3_MNFMBMM(O?JEHa*LvmHpDKoe0o*G8%X%K=%;3EO zl%a+v*t@)pVs33zWNo}egfh{j8)Y{&rA=O%8cI76TZ4jr2Iv*N#7L$&<}#{CAhTm^ zJ5vQTQX8&BMGk6ClEG8p5`)denRb5ydhsntnS$}|1+`{!x$pYDR#jr&QA6g${m$pB zV_eRVi3%cO#rRchN1icYaMFCSS2= ztAat}XH1ecJs)c&WGc(3gLB;Vd-O?18PC16V1GuwavyDTLXLQ9h&EwbE!-L#ZiQx% zY0ZpP@tlOCy@BnJTsmvU;64cn!2lfWxjp+t*sC75c6em*()FdP0rE1$WJJ zo-iFAMWi7QF7J5eu20iyX{)wEH>7u>?E!|;kbUsnk^Eu=giY%hGu~_v58>z$ryAe*eZIv zfJ;|)a@n}U)7q5Y!^1tM2B1$e<0if3^X$I2m&@I|Nr$eTU9-uMHapEb!+Kx?&y|IT zHPzvA;`V7VWqQo}vp;mvW3vulo#%vEgV}_bdh)0@vq(#y4LLQ#;c=KZ^J#7oeLdO6 zkyFIHF}c91(O zwD-O5IN$Q-Q(Nscc!TY)fZg4dSt9QrZrZQD>n=X_!f9T+Xvm&6HyEiUbT}sKKu*Kg zOW3GbM-JUuIGs7!1_PP^r^VhX+kDC5bWw%{N9uN(XA@AxkJif{VVDL?6Rd&~zj?j5t8I@Sm@ptb3<_BL)i}sBNt9`DjDTft-|3+Q64C6Ji+g zr7uaz78+_iH*@2{SNzk=QTj;YiSp#3Ai{vvWg8Htyv$fwX)fflUJ6f?!>!G-LG@DPm*AUZonjewDIj6^KS5mV}|DKzWa{N?aS*)c{!>cJlU zA{?_9vjm`$8w+%SX0Z}X{tc2RYrdvc$lzkK`eaC7RB${~odtsvbJ`p@*9CJ+ExsJyE0KTB+#mi}eqmm@e0oAB7`e0kjxbM3o zr_iOOjUh4uwLWDi7ffWMg0@4KP3nAb?~P0)#1VlFkfiSj6^8o^3OPcro>?+So{!~oK|lW==E;W z#cFq5js|2WJFAu)j;GZAG?EKTQc>WFkMNSpGdb-6j#3|nf%V8bKS*ifCE=Q4yB9(- z#^7_+`$3p~gb6n*6>O=p))}*PA*LR``tQMRE&@fN>{d`HfSfo#n%FY{qvt~kJi?M_y`sk6+4o^`pM*tTw(Z?u+tN zYth&1a0Kl7osK*2%)EYc<8OFowx=Fj;gN?dA9-l)_wRSyxDok@>#$pQ(+*G3Vgp#C zSs8%n3=?LS)*71b-$=t`F@#jqlQ?^!#p%KT+iW5>hMcFg%ja{te9_PYd2|H7br<%_ z?^%Zd(I)t%OR#ghfHjUH%)-~;t81KOm^M?~(PrT8OOaRiv0QobO6$GP)4YPu)^jmO zGjq#~KFb@!W=8|2j9AibveueM-vzv(`+aYF|-Nh znW4fE(z3ZD=N)9MVeQ;5?A(R$duy0=hqu`y0guec%$9sVwt^uY-ljAp+6>I+eE;em znnjvPq%egy1H!Uf(hSiInG2T5V_NNEy8bc1Cv?nngH347GL{T;bD!ph9>6TJ3(Y+; zGb1o1a8c&Go!e>}?PUb@$&Nc)tx9i;h7;q!$S%OMPrF%)rFN!^n7KEC!V zuX=Ll|NZChp8k>l{&e@xeB;e`f7d^F8NZ|LvY=fsXNvxiEb%;G70!^rPh?Obwn4|5PnqN!{6UJu=u#5=%po$+<}}D*f^`R z!3i=*VR!i+rIZ7M=of~B;&*mc#$x~|-q*sXRGDpAA$4-WAh&+u<1+hp{cI)A5NX0& z1A|0w-4Jb|+$dG+HML!&yndz*TO6gV9IA-Im?bUG%8`s}+bTLJ&13Sawq&(Acoe>{ zq3j3%qsO1jJ2Abh%`+s!SJGYi3qx*TQC=j?8O#=hMjDdj*V-sag$o}U@8sG8RPH%2 z1+q7_Fmx$6m`l|ADZw(a0(75qfBDpj=R{6r!9Zb1bE*ST_}6Txp^1Z(pV1MPZ2Bl{ z8u5QOfr^fTnS(s=j_9u9iP|Qjwu>QWeZ2~G3E`>*+jMOwpfZCzGaB#B)hd zk%A3W#gPH594AN5RJ}73_)f`FdZ0`Mp~goDj6-rKI1gh8$)?=% zP5Z;FZA}o>qQPHMl~Vq@(YDZ)Kp9Gj#otrBhH0Za4*@R~gGI>kQZ%BNlv)BT$?8E6 zsi)PYCFMy3CDLmAGMkvFOnS~TS)>j`MtM@iAk?~Yh6!K@9;DJ)SA0nRvu*59a#O#5 zIIcsA8z#yrxdShA?k~!;I;GQEvuq@cOh4lQ5M83S)a7XKkO?1hT+k(z0~91t?ZlE&#ITyB3Iow7!O7BDgs%QU zb69RwQrXMZ1FTZO1WFu;QS<7@n?&pG&py?D;*o2+=l|`0S^vaK_wzIFe>msIug(3^ zen&Hlg`A#yYZe)ik#V%Zf91Wf7jJChbx(%B>9srU$tQP^n{^&OhJ5@+#LZhBx9=iv z+yQRg4!d^>>`t&vC-s!XXK530J9xEl+YyU|6n-WNrSyapS41E;3ou#QG-bPV0l09U z;YE@V;;b+;WRsbgOBlkQd#8xUlSQs+HXI#>J#-Ci_rY_CWs~0Aym@njh`Y!(F~gG& zMy7>34|SSP)+WnOeEi6K0;Y+0WNN_FMyLvy>_seX2Hf53LIuoNE?4RGkj!OLV3RV?0&)(8Z9sp^5 zvNn0f{*Kwvk`~$8w0EBO$^>(7$>O?Y*z9KEXfkH%k}cYfVo5B0V=gJ$$~`tPvmWS^p*5g^?H_FhK*5+b zh(P4AYd(pmHQ?LR_5<`ek3k9{{@`;}j^>Q|o0yuSmS+<{vd z+%npfSarkkiEmC$?BL0#@MVAP>3qv)|8oAozxZ|g@n1xI;uDTH9R8PPJ4%|MEXRdEhU9%X9zw|Md;8`906Sc!)MPvX2f}OjSxT{S7o(?XGxinlZm{ZNngrQkot!MCytYM|#vVl)UJQN^vN%9Lblqxfe`AHSQRE4e9{|FGHHMb=CxeKm*3nbrwwv;S!gnm2wypRQfmKpiZOt_at?AAWPmYeW$`7!`&&C752~$!=MzZYzDg4g0FO@URbM?KA z`IRHs)2{U&v+PkMfpE6oHPt8O-$UV4*W`tatsfJ|M&aLNnxQkuJJ<^A8gru<`Ee?jtNgHy)?8~M2Ri+ih+lo+ zGc#fN%3GB~h44SDVM_QwA4UbA{*b^McuI*pRK1C_fSQR|^+&+8p`heXMhCrKN>(*T zUj9+5O3RRm<}WqNTd4A1;_`ZQ|kt~ke2LTvW`#> zc$&%lFu}f-GCrvd<*btDmf_>~PCR61d-au+^Xc0N2uTYy%8`|*5xyGAx1 z+6r9a-%9Qi3S4QFlo_@J7a3(KPfR^YQR`x$r6l)9*Gbn0*ZTg(_g6jJHBt|m{OOVv z>e0*3U;%WYC`cRGdQQxip-aiCMrEVow(0!U`!yJxY8 zA_W=9tr2LDycC#HOesYGlW%^$o|U8B7hA6fdtk_q)w)>VNq2_dfeWFKpiW?vHH#`MW-fw>)?Oc>Dq1?9Iy% z?=0cj(0w%qhUHW8&Y;(+u9G-k07iJvm*VhfT;dgRdsf!^0kN zIz_H7<}^>uj2+lLyt$5x*~BhcR?`waG>*9e(~JkN?)LXBht`@~Oc}kWHHC5ySnu>Q zb~D@GP29ShSki1-2}8pNbZV^`BGWCh+tjA1$CAyOFU$Fh&2GGKl(%ldb|>yV&Vs4Jskeh_<&cMT$4R;P7d_wco4)A4 zb|2fv=FUaD>fjV#wSUL{&36HR>+j!;KmP0Ag)jWZ&p}-LTxs*PxC3T zn6+h-r?1?!c5tCT^~Imx{^X~<37_|q@5I6Wl$#gc(Q|W*q-G-Qv?J0in*p25=pMdW zVY96B@bm(H?;m)&zx&6)|&6oYqPv8EmFZ|4d|MIaHRPhtOfU_^TNAmtpd1g%x z$S|*=?i^lf8#8z_^r}HX_ct#$sR@a1gfMj-X-pd$&^ph-wqyaoRf%=D6Q5V2IaIXv= zEZR`an#lZWdEkB7FnYWlqgS8ru$xQ>h?6*zw%$Jqi-PzrWY7l{5wdc!%D+3CI%#z0!FyD*2gN+uzO9NU)OkCz`Px zlSQD)X{7E<6G2h=qly_ObHKvab^ZX7JuQgqvXSLauDb_k-cBSc3?EGCycgdP(0VgqRb3t28%D7kl$Xku=l&8w;{lsK6!XA;h2bvOB95)B@GRNg!| zK-nS*wguw|v&oc&+8S7q;(VqQxOZ*HRAtDtSwleC1&9rSMzXS%~Qn!;!I&waQX8kSVMlAo3SF;70Po%LLr(iP3v+GKb}Y?x|;qvB9ec*AR#n;HU{DhgRM4 zI)WpS;bCCQl}Lu<_b0HeG=k6B;6N-0AB3HHt9ZaX9g!Vr9TBSFt9O`t4Z7@doY_GX zK>;B{L5#_ujb~@#%f9BVfnZdAEV9V5-Vfk1E(={UZl)HEKy;vmBN}A9$bCp9LP{}1 zMw*3RUaV1jHGQ0YXg8fH(vk&Cs&@h;6ROT%NtL)c750e0%Gi)hwekECJLvr+*H;F1 zz;+!?Qi(GEarO4|yZkq-uPG@tgU%-tLs~x9`G(|)Cc?$o+R_w%>iokbgW|^ME!f=c zIzP#_qn48->Z(9z(rQ{zHgkewL0BIu0={D#q)w4&bs0m|`2sGCMJ&sjHZdzN!HX}! z_0{2ae);JKR&W2ni}5AD@V@mw zy?q!DJaoz9!AlvQkrwc^Ax{>=-YT&_P1r0QAABL&i!Vq1?0b-Jeof+a&&=`olWltK zqca}AZ}I%cdb@mSj?5k}z5-mo;r-tIZ0j|A(=*nQ79B&3WZdxXX3da24O6D&jO}Pvc`BJN5ko8n$`MZ0bbH3216t zX_oMg^cl@O2?$KwHhZ z+JVorWAbicfw{P~3B{rs!m%?WeTJ<(vY91alU8Al31;0gJS`_n3u|F%wq$E=W)0q0 z;vo1AZ&U8>0%#O2APvo6W@(w>p2$8~M)zzjY6j1} zjeV;O*^R6VrX9O@)$EjjDd#CGgrLa-W{BdDxwnV>_$wY*Y-MwcG;_CZ>A;VQcG??9=3sMg81%qTjva%kjFm2cMc=|GQtCo9iDioZdr5 zX2aA2p5bAMa8J*$mcZgzTKAmebhET+_u}+tzWNFK(Dmo=P2c+Be|p<%p15}P(tPsr z9TrWpiI`1CLq{)CzY1kmWSbZiUIILKh%uoCx_@iTwMVDwk?348KS$-7ceNwU5zZo@ zM+oD#ZS~Q&GIEY5?81L4xJhbEOu)McpbUw3i*Rr^6$Y8HvIwO(IXO+?GOExnRX}R~ znTTlsp`^~!RL>(0wjzj2jVkqCLf%lx8@_`+MGf>|U|mYY3p&nD@XBJPk{2Npd*a72 ziOlQ_Cd-j@37GQ^%q=D=(!#_0wI`Ha8T-u36q+9Aro_Dy!z&GCQq0Bm`uwae!7>J^Umg{-7)ao(7eXbT!hG<; zPbD)lb`I;ZA4RRu1=<(~ntJOB-?$10roW%%-DagqQISRYl^ky2Ek=sf5mGs2PAYT?4P>1)Wv#9~_8Xqx_LT#>F5{rZz zacLL{J!LQm+qQIi;qMGg5Mb8+odT4=0IF11vL8x3HExZ`SB_222p=L1Q1vFkWY=PK z^de6HRZqJ%-RPXBL|eT=7OJq;T4lmEdO1qG3XlVopQMtas)SX(Qgc5mAtYlXgTboY zfxYZ}`Edqt7I@BaaM^z!Tb9x&zp9rn;Kk2XQjRVJ4wHn&uoZxd6p@($EAaLE>w3?@ z{<(p3bWp!Tfl$39#lRI4XnH3MDwNu%S~~_41ppgJd&fgtlLxrXa`eu$?He1!%aYLi zPvgiS6!9~{7+J%ljsPBmtz|-1nnp2*Mrp4h#bBAfpPM3vlbVvCFklfQ2UA~VRoGc= z9liO48N4{mwrYj0i^hO%eUK7Vb5t+57-E(hv28lx@3cC2DrFSv?@&*U!jFdNG11Zf zK^CdTe@C^p62+_wphy^2p@l`c-=ie@7;8TaFf%H1)BX?1-AQuw)a6?5M$BX}*&!o> zL}C(AR#@8xH#CUM8;2FD_NMj^q$JV1(#5%iNEWCq-X(_|&ktR) zs-Tz5OMyJV-=9OV)VG8|LQ*KTB9!4MpH9C&VU#rR{4F#y%Brw{M1m-c5kDAYmA?lt z<^Xf6OZgqxK)v%rF(KGdiMK8dR*LFunbat(%zJG2O?2Aas3M9`drGx&u~Az@2FeG5 z@7S&6iV*maYDU%l%-CMcsiZuE=f}@}e!i2ezn9#C%@T5R;Mq=k3)oV=3L*}e4j~a( zqD~s5NC|}wUT7OIzOp?dumsn9CKrXn#pk`r;!|GLzV~%c&JX^|2af;HhhK<)c@S2p`3U;k-#YtS-n_Ecy(#nf zUdR0-vsb-3o14B@N)K>H({rzu+s%`vVqDtd?g(j1FuXOOTfH?BGifR+TEzY zZ(XDj?|KC`7+@}!QzPr!Z9y~se7M3{IE~aEy_WHwcb~Q&{+mCDxBr%BaQTy7gX!v{ zf!Jg&&GY1_=X&G0oFdnObaM-~Sf;^z{~-FU=l%L85*N?GCL%!dMoZczUf;bis9S3Z zMB2#`_RO<;9kEPqomj6m`JI{f1?lEt)~2~YQ-jNy+qwZ3-jUP1+mLRQS-YE0RMTW8 zx|7*Qw7@j8`D}NEw0Q-~RYYrT@<3)YGY!9Nnb{YZuPoDy-Q`F$z`G;REO&PE+zxVu zjNP4Vy+<~4i!h7yq}#D40&Xp_x5{)wM$f>s155^|JEmJ>I~*pbh02s1Jd~E{Xbpx; zON8UX#XZ|?_pNz^fwMB*GrMN{P9RSa0bJO%oI9rVanHSjy==&|<`zqjrFV;kGjZlA z;XB?h?asD$F#G!cQT)`8ztn!^U9miT)!Xh0Sg$kK`DVHCWYIGb*)cUrzN1O1(w&&V z7}neD7@ea~e?Q2D%av;Id>q3r-cxo>6Ym%D(c;7s2{c-fv~0+wtHQPbn~q#2_?*@! z$7FM2X9scRviY5RhX438$mQij`}{xH^V;h#`|8SGTxmUiSFZi3$1T6>->>~&f9=oM z@A(U#SoVL*pKN*g*~pt8M2jP&A)>i$HjzH4C$_q z!nanO${7PS>WI~2BAcZdnYa*X5isysp!X}R=Qn^yx=o#lN?sR=8>z*aGfWPP*p z1Y%ob0#fP&{nL>{omGlHRN+idQ|ef%WDMn4?*S|Z{>PaBS3s!07Gy&ePPX`o$uyON zwDPXRHG~gCch)vBgw^NUR{v88SyYY`w#_d*FdkVx%g8N0F1!jWGDK;#Mu3}*kBXXd z)I*+SK2lFTrm-+G)(*mpB6dXDhb3$=sSsk@R-xwuLIn#4tURfJQvN0*p4LFbQA#b6 zYOWK$Fcb-2gW8xmDsE_@4_8H4=zZ1abK?A3Z5!*3lXSgN60w&3poZb znbehoyg`Xoq-YH;Vjbp6C;~}#WC2+zZDCdl1s;trjfsG1ZV12LGv$s5pa-H6Wa`{kcA>d{I7e5WwR1jm-#dJjrZEg5Pr_ znMis9n56U;<-pJ1kwK=F84VMalGpO-7MN^6t=?|t@CyJsdNz12B18Csi#eimJ*#70 z!9_je(BWjD4sJvx#x#CbpwODt&&0TR0E9G$>a!^Zw^gO`|FoHlXz^kx(J291`2M*~ zQav>xa%t-)z=H$IjLXDN1k4~$QYV4Ce2_Y9K`4_)R(B`R6on44MGB~Cml+}7#{!h; zVofesl)9UdfN?1nnCw-iwoq2oi?QZj;iU>4M#pdlFcCZI=Sl51KVyU!Fv^#Lmvopa z&X9)kZ0}$4Q<~0CsV0=CYG0EXw`k%}bg{C(2VIJYs`>|5`r+A2neK%WdKxoI+=_8; zEmE0uC}^t9*%no-YcdFfvsO?0N4@Jr&;T4Z(G1hjvD8^mi&8hBi7CwtEa_;eb`xh3 z%XLV!U{Ah_c~{Om-h&zA3*VmtrRR7qRNFuX*9p>-R1hw+)RbQVM5OBbEP!r?X3Ow7 zU>l$IpHn}Bh(XZi1}Ia(W($-4>U}pL7NEuhArpP7vsM>-l59AmxTxtBDNtt?l0h$e zR-Q+gv3FGeT}lPhdx@$5h-pt59q|GtaNu|He3qP#F)4zK2Q|&u{;yovS_ZL6X{^EsI z=2I8Zo_fGG)6|g}4T08Hj+Lc9@<2muqTM-+{KZ?BU;^r+B`$TIcsT#&O(Nx zHAso)TW-r*A{Vw6M8cbIJ$Rw0lnZ=!FY&sk;G0w6hyKI;{5RkJ&UWR(JMqbHoA5cm z^(r3zl*h2TvgbIz0&^&G|$0}E-cCS)_4cg))r-@7v7+Bq1O zpe4mjD6NS|ZcN3)J1iryj*jztaJzCLVHa$gcL79a6MsNxILw=aO$negrjHKv3D;uD z_4L?P;9#|66aF&`j=@@Z)w*@ePBZJHlLdPXp1FbNfnn!7*kWVI^k_YWz8s#>9Es@Z zW|qBA=@Vr`=k^!t3Cs?U2=XbxxY{hyJZ)LS4%hJ2Ubf?&`1miskgxeIul04DSX(Eu zFLvRI``%vj)%k`5a(!>zu7Bjd{p^q4!q5E7$@Jn4U|wNvEpU1SM2K@zVx!jT$;uzJ zqtxYQQeYzho0yR6oiIs(LWW@?A5>1}h$!ecv&~@T$vxHA17gBjJq64Q1 zOeqh83Fr$U#?-3|J)ls zZ;>2WbX!X95T2kKGIQGH0l4N1NLyd9L^4 zuB2HKG2_^iA|fE^(Qu#TZ`Sy+vuc3abaGKwvQSB8ZQRUCh+SqCj&ycJd4!0s(Y=HS z!{jFBx(=E?mjQ%>>~pG_@hNk|fGHQy-m*}Mq1q_4wh0CgD^-YIZg8#2U<625lmCO7 z9=oYq%s}b9h^_JNM39g*X68FaA=Xt!xQFg%s{J*#pzN&Gr^o3P(+J-+$G(&^9)Ywr z`thpZOh#UDxDwG(YN_|eSJNRPWn>e4oQ9O}L<*kJ^A|f?q??kiN`lGwb4|^7kyB>H zJ%!denLvqO8ZQEy^mPx;{nbq}%v~&izGam4)(~FnV~A|B#r6?n%pFU1H0$g&15NIr zN=G!E-(>f(E5LIBJHjSj$VJ%5ry@txuUH~F$H=(WxE8Lt_G$>-f)x_x>#nLq()+~f zeAQXsn*8wO+tz=?z_Zmu?<>ZPLQ{MS*IIZEvrO0569NK7aE5H@qa5mJ)YnvL2-DK( z^8wCsbTDf1yvI1VX}mL#BxcL?j%GapSYq)4TB+xgBtnLyh%LESBn}c9?+GN>xXRvcr8fb8&!OB z06rme1KV8z^QB8L>_|_!09Lk~x$r!|;?K_NZit=K96D_dQ>k_Y?9*5M@d+yW?Ub7{H}27Zu#8*`mPSLZ%xr*fKz~llaC1LBJ+|Ao7wjFZGLX4=%iZ&r z?GJwWtK;Y1^O%>2I zj@2!bJI?kb^D|}AQS zgE;58>sr69BPG}DY^#DTypzh;r)6+rYM2UrT1DX!Zz9#h5R(l<>2kKOv4w1Rq}r|n z2#sBI*Lb-4d6~3P(aI#5hlYhPuY#A2V?v_CNE4LtqQSRGaxeTfiD-aYU#r5b-(PgS z4mJx?j#5p)Y`hoZJC392$@l55i>J}cU@{>;6@F9iM~HD?oMy@P zPSR*eSR?*1;Wo2Gv@@ztVHJ`T+!r)amIA~0ysa>z1&NZhGr5e9LMBsX`42e8{$(z{ z#jV7QhKVU(RqoXuEZshtjLyon1L!tdS_U}m1o5d4cXp0s!TDk?F+Q-87z?`13wwto zDU||rv1w(|&R-#OL5+{IZCRcwf(nk6oOFyzd(9VR4{}ogPcxl{6?vWzmx?qe7S}rRZ- zN!LXdW{hO6@52Bp+rB4ofr{+|#vl?zQ8{#OVTlObFD@gW)bBDSiwV#K&4DF(*)Y)N zXti*yaVNfzluo8}=A|fNwY$tYQ!O>d|KG>^TjbWtXC;TmWGj&R`%DIXC~HLU6mOxN zpDwUG`$$u(p15On_5!`t1U$JxCF+2%=bU7b>s?4|guz(qiYTK!7r7G|kkVN3h_PbI zWK|?Y2vtS}0A-#cX0~aX0^g^=c};Z?376_)NAQ%os`~~gmT)+^FH{3ND)9wSZ8;9A z0Fnz)?_#Vaw=6FSvF%7@7p`k^kewvddJz}pb0Vpq_dqm)v?$i6KmZc0Cu&lJr9eoY z0gs&|Cy?;2%74YgB%#zB-_wu_mfE44;;IxZr4|!O5-1gcrVfPMz`XW%j(CVnlBZFb z9b_hWra!j!y-0^863vry%e3#?CP`{5VK|D!$!Xxi4sQRh&$K^q_t^b|FT@}EnGg9t z_~0!(a&6!9k&C%p+snLsk-O$NC`EqYinnW5!tUP(Uc7<)H$T|%pMC=Nme-~I=1+}y z)f*?f_5|$mLxJ1ZEiPQlynWX_7ufM}#H~B9!~4L!BiP-$$k|!cFnMBXT%r~K8Z1zi zs0$g$=H$x^O#V&b$R~c?6W%5suUWWx-2p5}pI}!n1CKn!n05OW;{6|n|NO5UW15cr z(!nS4*{5KSJvrgrMaRzGD(7bTvp;^%ch4aY_F=0geCoi;k(-3i6OS~F#najZ933Gq zT}19&J@7b5OwGE(4YsuOiFdlW3L$1hl2Ed4KxVYbkZ2yq_su87Y6d2Udt+kgQoUvy zg-NU?_~8j~;Q}(Sf}@$WS)e54Kt+IQX_VfXC(xY#zIZ4%J9jyDcXj1X1Sym9k4`L^ zeSs|wGxyjzN6Ijdf|?;`X_ek1K$wL^G`3Y48dGB<5dyP`{ctwV*xN;}L~>vUur)84 z?DD9s9A`;;@(I{SpF{kkzw>K&`l*#Iz2TLYkK^T+x_#nB*xe&oOvt@`;E@M`ojqP7 zOV@x8gH54`m#`VY;;>vG4ckva6|HR(%-~M6X{M&s=@9p&Ce1eG+tC7)j zSvT_r>q~m3g_~Iv(c$PB-kQVUdFPemyz(HdU1`3#dlE}no`3q$_80$eH}EI^)+_iQ zzx~F)e9P<4J$m_k>$eXBP~mKz5({}D5w%PLm(KgioE82lWfYr%tO+@~Gnn)Vy1M~3 zArVTBg+-Y&sY@N1*JZt)h|5N zs-S||xUWs|U4K{PbZWv5VS=!gRdJ1&otG=rF{~B_H?E1vv!@eZ((_6CGuR4UJ?`e) z;z~y<_+emj)<)DqXHZ+A)-r9}->L5qzBOxy|M6(xOhQ-D; zwK4Md6uwdx6r7UO-PDrDDt;AjSfm$jcjhcyIwr3qgKT_O;~!Lh0~HUn+zI&7CH2Rd zc3R?%O#)5(7ut&k`a}%V#=`f;Yhe@_A^cZk$4$jO6&s;TvHT7a$-0_1coTsoxqOOv zk`98GrtnD>6%s1^66i6Q!SsHU_lF86LeuP3(&d}>U?!& zz)&Hluv2Ou7txV}6l0Dn=5^GLm84aEZz4amkqn86{|^B#dyialn`+n!7&Oya?+geg z!U<&K4FDywY=nw|;fl3bGWpU&38SeOTn}O>sc?!(QnKaApw+AL8j^SmCz=6rfDg%K zt0I;fD`(jUQ^^C&-&2IZ=zWa}wveoSn}8%}^wu(mOx=(&VOR)E$HqzZ<%0*hWIS5H z)Jx4$H&_lye%*LL5iMQJ5#+vFbyDc2WVx*5HqnbVPvQP7;RE1Chgl?sfr+UTVs&~zF)1xaqq zKcOfhZS+h0Beq4!s;KWsr&@*M^=R@z*_7+__CIcrTU zVWl~;;(&T3n}C=OLxSr>B8y-sD?kINajDhbWa^tAKWsU;%_2cC2*T9+$q{RbrF2$G zrsk}C@bf!bE^2836KhjT6+|-0Ji;JA<^+2YBvoJ}>B_6cWq@cBU{?I5^KR3oBC(R= z60dB)RP2p0rNBddht6z*gnMGsAyP-J22ur7?9vLtkmw5wxxKR+u(y=Y4KLo1D(3JM zIQ5R5+2Ye)Yya{s&-iyd_i}&J&wn8QxA#1cx2AbMej)AgE4f@bkMxOB-<25-4q7~W zVe#Wb;Lcs-e||^U5B;L~vyU$Lf=>rN{WB(9d3ds`uQiV&o6O@= zv!kQ5JJ(4D93BCu0W6){ApzS2Fsp=-y0+$t*Mn?uh_eKQbSJVP!B;hg)vRnBXKXsq zkI5%Jd=38CgUAymQFiY>@ZRTvU;W^My$N{cv9)1>9VT$)0odLw!0F&127~P|d;tx% zGUBk=fn@`{`WbV(xQkrh11zUt%Sl*+C7PKxgHt%`^f;v6#toTaHZ@X_$H(anKF@si zd4@>)5%OHgE4-0Tn_I$d2gZwvHRV&}ay6&#?Ix@v;^fc`J8aG{Dx6|Av$V!!BQi2fDo@mqnD3x z=|Gf(Bl-qjNoY5)6(E5|PcYkQz*CRIpMSpNy}y3UPOJvs+X1dT2t2%kOa{2emWBN6 zWE2c740k3j7`*{)0j$9^{x7HEJPR5DnKQ3ll8^lTf?ZgEoP<|{BCNCuUt36Gl^D$0 ztBQa)V;~MGZ(V9x;sS%&4D32`y#bC-Ve5`qc46oCfw{qt7v!~z%$I)fmlOAo?&6RB z-VGl6w2K`V&RM&#%7;vM4gws3ru(!@WZ;Pwp~9BSFnN2&@q$c@$^f9mv+mcRXAY7*G9iOD!d6wb z3$_sx#dwe{#y5?~vj`OvSmYZ?aqUTw3Zdc(_bKxO3NurfBxvkbZGM(4E*AC}_=(t{ zFfGrjuwMFTVeV39)`#xOm23)4pdvnHL9z+)aD7ZFy+~pV^-2in+gLB?_gCR?>vxta z<2q^*lF}mB#Mjblx6J@n%H#}H$t#~=ZqSBL5#P>m z?hlhuT@fAp{Z!xbcXaUH+7@j2?#cj>V=L9VA}mq(1m#1NT0T`MV`4s)B8|otFvF5b z0zG1Uew4!3Q_rWzMOD&M1qtDprj`#83RZu+j)sejNHEYsegS%Z<_CQ!ebr-zA+mN- zsw^z|$mLj{GMLoW3FRRw)bm2dXw_I?G*PL7Bf~u=n8CWs-02MSqFz*kZRdCf6W&B( z3aJHBIuHTZE%@gmMOG17W33FR_JMM^9EmULpfGueddccVHHB7@Td+!(1|XCaWMSe3 zRe&ns8Gi!pIb|EoR$K?g?}OW6F19B%SFc zm*L@vG|BaA_pndLqhX`N;-Tictf0-6a`8@P3x9vGB4+C+*xKr;ES zer9vPmtX>J#-1nZ^1@hWy5JEL6G^>97ll>%bsct z00pN=3nf~m4k#g!&Vm^~kJquPzOGa}wBd13y@0S}Qdcf+A{55d2RFEJuOXGy6j7HY z#|x1*MLd|^i2|zp0k~Ej)=Dbab-{O_H~7?Hy={ZP)`is%$)y&>CwR4Sp~#IUq9~0$ zk7~;!si63fdWT+@W|OkWQgI36BIMz%(iygyTKy3{9?2QCKjik}Ly{0}17t}urt`sN z=N<|JTJ@!Aky9!wTRN)|I(TH=O-XeV*`g0D(blGgvMtj|J8(F ziU=x|0WZp7j1xt~GA?znb%gRc5<1aSzjJF+v_&aWO1Y{ZZt`U))tMugKDwlkNdqU- zJ5FG|2G*Oz>^+};XnNPPkH*_xzJr5zd?3H+V=v`@{jTS5aOs@IW0x~7odJ$v=?r`|Ixoke%pWO_SV-0KI5&1H@?;K>XUnU?X_W8@7c+nZg+1O zPH$%}*VcCbPR9Lv@cYNW;TkwOft_p+y~8&h**kJc9@{F^DJgRRn0$Dnn&i4>Mq}|w zZxiZN^NJY;xO0B|Sjtiskuh-pK0GQXuQ z2AsPHJpRB0SWCOu%=Qj=Pi)e1VTK=5cc$+iHfmy~cy>W->Rak_|b(Y{`SC^f*`UZIh96I=W}fSnVNw2Ii@1r^L_+ z_-O~GL}G?{%bX{-@NOsfPjd(7FgNz-q+5EXqlZ~TW_Y&TAX?bcd$-Jni&M^5E?Io| z*Ykt_#~oaLfZdEn3>X&t)Gk|&?o>kr7%ui#$b*M@jZRI)IOcpk5>3_%GzOoLXt2#% zs$+&E&kgu-1BjV;-(6gxxV}l^y2L1u(VNVNjv^y9C6rJwCw6TOqPs2=6aT*Q?L^N> zsu=NuWw@SJ#Z~fv=@edOBy653BHVP?;UUl$Q@kMtgh%jeC^5; zUj5mD`O?GT-uk7dCjZ>uYPP?>w(tF(lZfTJ@tJ?|4_lspHP9n0ZyDCzkW>234r?Qf zZOn;$LQ`cnJ73Vb%jaxo{~&I>_)0#0=VBgQI2VVvZu-gnW3*`xzvBZ{x$z( z{iXlu$8Wst^FHm`FTH$ygYvVQ+BTU|P#fzPaF}}iE&5jG9#wba{aqvISXhyP1Hf~r z*`%!a6D5p%7)JTB6tpyi4aN6~cY%p8kYd1+^89ARqTRMVKS-zP=*nsR~B zIxCeyOJclefG5?+Q_y^E)Nd8=zyl4Kh6uaCI`wjc6w&uEdE>_AbRkpw0xQLkx2H<> z!}p14LFGb9)RcUlo%rL`GTem&ld)P)ghLtLbwHWd#)Bhltr0VmORfBRxR5pEN8@%mRme+Re|J75kd+Mz|Q)+!nzLSIT&Y&n21;~ z-JuW5yjj)Jp=2)URH-erzuZc_!u*2+4pY;`XxxtK>o#AIopO{`MsLyJts@o(Y96TK z%cz)}AvKpBIJ;ncv8G;%-@q_AFx>BJQ&XcunK-trA4Cq6#d`IEa^qHPJTtyS8z@Rh z!Q501Gc+G;4V1c?k7Qo;c@iEi*|!A8m;_k>+)OWC?Gp{iY}z1_c_hDoL5=b-6f?9) zTvNUZQ2JF4;$c)Ide?e6dwNj$`VI+|W;--ZMkC`GjoVFu-aie%iDL<;xujJh_$yOb2I6o*b_PPb}u}3EK-D zweB_uOomMPVN|tQmw)Jc618`^=ykbtOH5KZka9D9P5)?b)MY{4o%+g5>MEkR5=-wXeZOkck86L*k{Vv5xPX+11k(kTXw}{D}kG%rD5qbLJG08 zgcjun##r9~7y_HL;Z@OeNd-!F*y;5q`M<0)7}MMlJ;thK>hD?8o}szata#ju7%qYl z`dyYN(;bq(MnXiAM&e*H>zgp^r6sfk%xzAhsS0or-{4wHBn%VJUZnwEs$^vtmGP~ zS{2@}P+S->+=c6H%V9Sqi1V!W*+j%f$ITLLLf8^^5A=^Ef4Q6r<1kN-l^`@6>8pq*eeD!kEU-i4LxIgd!R!iXE5%f>{uTI)Dh5yhGZ^Gv9 zw$J>!KaALW!Y!AuxQm1v$&HL2;mClsX1+ww2FnCyBHFyN-SY>2dc5HMzx2U;-P@kE zorCkaKD=*7cTfB3+U54SzwPn--9Pui{w?2e<4526+Jgu7FYc~y-(~eNgkQLWjr}f} zqZZSXYFnS6%CDr&Rfy?TXi5>T#IijT-gs8R^zsxOO!(AWLm594GRSB-xe=FY0hs{fk`(vF@inY$~$sn2R{D2fXwcK|7jPL;0iD|t}`fijbPE19@3 zhwy2LP|qyFU2Gm#h3n%`>jV$O@KWO9P@!q+6>EGi+agV3OZa2tTJBJr1F^@LK!$Cb zHww2{wSka{WI`%JB#cBz8ktIya@Y0w<-t=7-q8N2Y9DP9F+=?0@;!ox0$>{XrCVSz z=9$bdQ?X;KC@^^`Kt-%U_((l5+CjBf5|s=1$N|&TL!bQoybF}yrhKtdxR2{OClYQ!-hECT)PcFhM}Akr@tC?ks~AR^~zL#?Zdl}*LuEurQrLaL=g zZPQa`a&*ALZ!#{q`tLEoIu7M7%dbcPE0Ztvl{N$xtJ_Qfx8yho zg40ZH0QLVzY;P)4k2ob8uIjc{-Av=A*xyszI6#zBQh6rJiSfF!D)of3VMS61BoBp? zZTn3;hf*LQgNigvSrs|$V^0Q6_1sTZzUuXRVweSvEY|88Q6*2GrILs!39uu~@l^N4g+6drBt+CGSz${8w?D@P+87TrK@$e#{L+}>Y%BTzh8#Z{9n*cA={ic{gHjuzTtBK$ zIEUYa>3t?t_UG8)EloCDBnl9R6w+*PNBix@D zW;>jrOy!1pme}L3vZ0kxP&%5NmP3;#wyF&7FE6TUERZ5gvA0%)1S=sJ?_B7$ZeD0> z>DkPI;HZO9Ml(q`scz{gX{5o>oRyG--iK{tF)CIyt#Lq}4BFG?@D?232^%DAR*6k( znE)V1FeLZjl8Gw7lt$+>9iI(D2QC=*ri;riek9F4p z(f+Um`6lMwoyArM4F~&%-HWijgTU^2&$iQTK5cmZhw`NtU=KYCtR{+BQ|13= zL|>NXsaQ0bA$Pjb^Y4fUKU*_Xi3YPt8j;lIPc+SFC2vb$o;@+69e&U<(HrxFG)v=T z5jKBK;&eAjo^ak>@bFdS^Y1*e*Wx&E?Qvjp9JXv+&R~XVm1!$W-_6!vF)TOw=Kb$) zFZ}p>@!|Iz#!-h|yh!-s4cSxaK_YVkmVlj7D2Qn>WM;M%V47H)0Vyp}Q@J8Cy(`4e zEZ+H&z((WW;bvXxHYZ-T;Hp%&E(@OqOgjDvVxweUM6YHQ_ENn3B+k7n_d$|;+9aL* zyTYr&dq!jKl1&`H{=ISo;QpH=3*t_OHz>ZJQ zWSwofq@8wKvWJjLsdOAHk&ecN~ z{A<7Z^5!T1?9FrkpMU2sRD1O> z^M&4H?alDl|`eJ*h=? zD}S#9TJI!Fd4T~z%PWW%3@iRJ(qtYg{Gr5S9B>w3HEL4(kFSaEp^89E9aQ);Vfjpj zUT&bXgh0a7Utc~~#7m)Et|khE_KRU#R56$^O~)`x1b+sAihE7?8pBHgBM%aQLb8C2 zV4EY6n%0Ty9_~_5kR>IiPL#h_DT}Qz99R*6_Dv-|9J^BMXY|=cIob>8(viC=;}Cn; z3u&qMNDL4{>`o;^!2!bcPwBVN;pPN>s$d8DSQtzNA``h77s^zP&c82ulLdkkjsmOo6FI35g>_123sqJm`s+)hfxVsg)FISNHZB` zG5CZIGE`1V!x#x^&OV;ryCy$4$pi5NC1{}@kOOjD2PeH)OEJkc*1D;`x&mkNb6crA zpq^|CSgIGM#&yW}g~3(EZB}JVUME?}jJ9O;7mdTC;LP_%9ebfjKrwqo9CD{%TXa1j`aqY`5?4E_`KfPM_#>Mr8b$Wzb}#{sw@)~ zAKn9rlGX9=1yUW9%1VSE!YB>zFuvkul&IC?mkSe@0@Zt8aWq_GRgA;{GHVpBfP>l- z+IU^4i;T4q_M8IgNF~qrD??vliBBr|DuPQ;Ioe9N2{v=5Rs-~oH(PuQ3@(L@} zWjo||)g~enqQRIA$w7>mL*gv~nIM_SCB}@p`1E@R@exD8g5>)mS#DdR%?T1X7h9iS zZCb2^^7oe)jCp2S!_pmhjyrB2Ce9z&E5Gg2cE0}J(em}rzl`7V-WTHUU%!dhA8xR7 zVHY^qWAeYZq1*pz2YG2~cI}CdlYpI`05|Uezwmze&;DBG{`X}(d2rv~`bOmI-ah-& zpEbwslRLiq__^FYI!WBv;O>V`^5iaXcnriEi7;E1wDpEcgX=FN*Xu#TPII1b*<`?K7j4>w?d}>5E+lp@PTp2iI?{JuGvnkFflChn2bYoNX)})- z`8@iXm2?Ld+?n%?JhzL);R}Xq>6mtFLAU{s3=nK;;6a#H3G5`Bz4s!I-;Y;*?B_hz z@c9z5&0$JdF(<{40o~6eO=9-2PkX!Niy!W||5N`A7oL64Y}z+WJ7kPE3*vNbwybk` z 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 z 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

R7E*0F=! zCkQ{~(qys(+kT(}erto%Q%CQ)_A@=vdKox2rL@th4*@xUe>0CklPn7uKPFg1u=T(- znt*VtyisHzPg`bs14Q$-UbX^E&MVX$hS#DrHvD5e9@iZ2r#N1W``p0SZ^o@REp)sQ zPY*P^_e*f>{M@ehqy>!3yt$-~p6m4RXTkiFXwfUBFWzm(1S5wm_K{m|ifqvFGo7;i zj=hCOQUx*Kxb0!cZH>>@LDkW5v=iHP&=F^eZI^zUl~Lp@oB?v4%86Z>JUGmKap;7| ztEBhYVAr-`Le6bJ!N&s2&$wT`BA-76fCm0mHQVc4CpAO0t(^(x^qFm)*)sTndr@8F z;M|qpnV6x&AP8g8!M?dV&;zfxZ6W+?s~ZGIuBF~@bhZZat}QWFIT4rEqgyFv{D>nu zWI2`di`gbwcg911r(WzEx&;3{Hjm*P~`vvXMz4}%+FM!^%L39(V3%;jW|~h z90)c(cx|5Tj|XUn-yQ5H$&*y!p2uef#y?|D;C4pjyRe^BGkc}2&-}<$UTF{PW6qRO zBZowZ@LT2;4wHjBlC;I2kc#wfzv0Rf>)8m<9G_psmW{mDv&Uxo^zx^nU9jr4Q|F@; z(?zVq8Maqmsj9J#7{3V<7Hp5|pH3C!d8l}pI}<^pto*DuTpRlaFT3eBZ0Q5HRPFtb zK2;cxgR8E#%fMR8&%lj~#FUPf6VBW~ziHTT_SXODv>6Wmk2&5}eCu%)SPg!1T{}6^ zaliY6o#^vyP_FCezeihik3+wtL;=mY@d6Lq5OiLIyg#{uTw%6AmM-UKsV zWiv_lAe0p^rA4#gJkn4|+U1g% z9=K{q3$&&5&p`kW5{iB}kW&#ON&P9Al!*Q&{tsme5xg>u5j#ZW&OZ}xi_&80mPgr{ z1b~=etD{xAXQPS|4KxPRE)_#^4iTsZ1d_RkAxLzPz`fs%-nd(q2)K4$tzh?Y1fQM! zedvMNta(Y#=_RTP{i&np#IJ}VL}gJVGIe!N+SL&esk$Zl$zr9SFD1KK)kH80cl?1w zB#Tv-SSnyoY2=t?{MynHXIC*IIAQV_eE@!a~%XXESGk8iL@~cSlfjw_a_<08Fwv85R~G3wZbV@83+* z(Oo4*39vQPr~HfwJUZd{MaZ_#CzQD8%`Np3EX66@9hB_-$kftZO!e6G8$}DHLTpLI_={9@Tk$FL}-#qVquo96>3?cz%vV`R`CH z?WABE!PF>)>}!Kuf1<>!ubxalkbQ{!JUY?;1>Z?!yBu(cBjB@iFs>jx-i~l&Vt4w^ z_K4NvsnFfJ!*JTpx=CQzgmrIw#gze{+%0(a&8nG42k)X;KGR%BDH$#)<+u(6mWlV2 zd+A$xNNZM}x2_|ZQ_kk91ai7ZFQn2{OFtcgYc^uSw$%RqJGB_#4U@^-67dJ$GiBN) z%H_X__UwJp4v>KI*zMFT=2^avjIDwkluAFZA;3PiTSEqaz7QyM#biTNiW$FO46}zn z5#TXDaB%Z)bbcmu-k@+kl@@M+DM6M&iGH|)PjJaWoFcGw17gWsCd1Mh0y^bDd(3Xt z+Ge$#>Sz8-{ZREVwdK;*=h+hPe~4g(n5CQ)Ihiym*x{>^wnRHlW7h^2?9h-^T|0(7 zed3Jto^@KPtO`C4=KA~oD$F2LDdH5yFvf-neRrwC}FC#_(ZzrWl3 zrS(Ytf;3j7e$g-ajCyQuPT5iLCX~yAPC0=WMw0h;K*fldma&4b8j|B|0}w^KDt71{ z>8;s7bG03b^S9!y4-@u#Q3aIJ<54l#6FI~tD!Mg1Xx*TO^|khyCXR~WAx!?a{;>(> z;|zKqIV~~a)eP68_>c1`)**8@@cb>C9&Jlx4HMoId>(CkOJlF6hITV_W6WbZPRlk_ z$9}imvT`wFh0h8p%QmW~lE_IyHw?<^_#iKL zJ$bVDU)|)t1Z*1nra0(hj2*C8;}v*^l^I#`Hax?wjl>ogws!BhXIm3A^1P9DBGER} z6<2zW^#0U+mJ7Yeml7<`)!{4s!vPz=m$Q2!%LEbm6`$6aD>#UIR=-jyrQA%Qa&3`PhmL~?Sm#pj#IJ7F@~dlNuG1ibS>!l@GxmKX7wUSpJKR*2|{ zGS6&DY}yh!V~n|{u91IxKpv;0;r&P7% z*U`JR_Yi1|FGk9ljr#H^&}GpoVhfnjB$ zd8ZUjfc=qD9&;qsU!GlSR0kj}iRX((`%E*uqmB({%@`=I$D%*(Dw+Ax=uZiX@ShiF zoNW0zof~WrdtiGBS5zVeY!BjDa)LThSOb3a5?8irhgwx1GLyBL^4pXh{rs$UL^0FT zp3va$y+OMdV6`E#9`(U+4e!NAJ8P246daV5owMMtV?gVa5C-NRIZFM87)Wulm%NST zV^dLMVJ)JrrBc5MGoH24< z((}5)r}{W3soKwv{MIlyTy}1ZkIp2z@7Seyr~Yhzl(1!OmcKN5gTlgbZd{H;Mh z_&wzR6-s<;-1{8M=Ln|^$9-qnNIz!rNDMuq3MUR?9IqID4>ughyx8Mz`F(l2gB_K0 z2e(yekbzgs`k3601BY27H`pJ+4^r~(qX5S>Yiq5)Cj}n+-;z}CadlE;h992H#5=Ly z1Oyly_CnAyhd|8e@bhujWrL9k+u=7-?Qp5yNWP!F|AHfAo`RjizP&?rfy@t1I0VU) zaWF42ntq*lS^Jm33_-MJ&-&$Ey*y1rxijZGa~vQ81B`z>D-ynQC9uKaB7WQ?b@_kLxL zK#zOw=*U&62^_ADDpjWbdk<9~ZU-i4SNX0|{rUZy!)yXl>a$#7iCKxZEUI)g8#vy0 z=1_s6Ca7T9Gd@OcnB{<(@O33oLJ*-GG=4bSxK!q-Ni$iYiV5)HB-&tXFc^E8^AF}v zt^elRd9@Y1d|fdlGl2;Y(z|xD&Je`$ndTS6aSD719|`}q8x(&h$;WeH1X~>WGZ`Ux z+VQ`@cVP$Mh9lWll~m!cBvjq~m=ws-R~VOnPH!TQp=s;KMV)Y4&A;A}0}--)4;JxU zp2ty_KY&kjW(SxG&UrBWmHU4`vnH-HwmRuqcD?cyh&I+^Tjj=zRJ{88KT$GABEBRd z3Y+M`Z06BIFndYWa!=rikagb0LX08LWYoJS9f2V8dtxO5IAu^v30(e@a>FVcjDl#{ zIMKf+0Bsz3`|*DJg+ypF(92)ze=e@KN}9)?(_}G3sf;tF^x)SXoO=BG{|sWQBI;D@ z9OkTTsE*6n~5lNYd0~16AA0qn-w|E>qixDkxe!XiV5@PT`yPS*m z+_ivQ`}ZZ$ALl6fxRuHGoF3KA={ch7zHuq_1{E3N9;ZrrDpLb6!o_Ft^K#TK$1K%4 zN5f~NtjS>9noOM6Y$VcTKJQ=h@GD1h^M=EH>2PL`jh+c7FN?qVNY31maX;g%WuF*P zX@1tNr#FtPY_*UEMNKx7-c@?s9B6ExU&Tm$fU%ywgO>i|3;UDWM2|)?*?;ra=(n>}1|mM9*yG+Sp(RCc~TR zDaD*TooWP|(9;>Jq{SBBt%W7d-abEa=-0@Zfj{)tX}A~B1CLS7zH<*Is$JFRS0pM` zwE*pa%*Bi|S~CBPb-el$+Qe{rSkr)u!Lk8gbkA7KEocG+U5kx=l+pAzOXBnGFBjna z7wdD5pHg-20S+N$yGA^z+UWBBZ+C)7WOsfEq9&Ua1JCcHp9dP985*r|5bxoBN@TCV z+N$l1Z*b9VD%hW%jqInI>1nA*-S~dAk@pNGO(4sC%bc4mFU$KyMrdr5DKt|`*|j=o z`&1=@+xb2Wah1-`__wV*bu&hXcTM1Hb$iMiIl-hj9|iF}In#1rJ+>-sULT%g8?u}v z_(VXb{CVl??qnPi(0ua!%(z(nAX`=5;ryudp2wN9#Sa{g97>g{TDLk4ve~jN;cisr zpcvS1+_~AT^cdH%qocBJI5W1A1t$CVzlj!?C;Q*usU@54kB3UdJ{qnGCifEh6MiIS zAmDf@XUJilBeLQUS}HRpLcLaLHPfQMw3eTwF`6{;3{icKd1Dn#Y?H=FxwDJ7WA^9-+0nCk8P|xULP_Sontd&+08o)7t5ESaS7tvg{(71Uw*=AxZw;Cds^w=H-zRzKln*Ac?L?ml`gF{ zknqeDcx;~1NQ?#@aaS&Zv*MGdTB?)>cNZ^(5#3&T!6FJaeftKek7Px&Y ziL2BtmIp(^FJBHf{H}s4_(+qA-j*i#tt*#VWvrSzE6IgOV4>(|A8s`7=6BxqATTnO zvAb14B|XQL!})jkRcD3{pFiOX=+_SP>>aV4zkstI{(gC}0~+G@xy-s)YB!d5h=X1A zPnTVSHfz(GiW3Fo;}h{`iu}j7Gw08|j)H%PStJgImYRX?r-zw1R}UPNFerJ%*EYy6 z|M4rOxfL`q-Rp5^WpF=Jy`>mS+nf<9TNMuXbeo8qAtRW&JJ5T3w^!!|`Nb zKioVZTlqnk>!@vL64EUOPUXx^;rto=yj02z3JWadWc7VF2Azx%!q0M_--6wIzQ6DE ztN<4z{goq8PseosX$e)8UNe58DCG+*4!c=(M<944oEL*oN|v%GJNr5XYzv2Sls%?e zBiAj;%}U#jvB-*ycgy|jvw!G;V0VbyR0xi8NC12E&LDWnD^RFn8tRlWYvK zR3puwfuU-HJcTmGq4KZ{pLtfGRN0~WWp2VLRXzLjmH^|SB|$D9e=d|v-Qj4KQ8J?E z5~h;N3|qPclSsC!LtMcS<9z7t&lKn4t_+gT-p`qK6h2^)`%zJyA)WRBG*vPu^u-31 z_lhRSquRoNl4I$OiyF|g_-S-S}+Wg&a zWh!a233l4fmXEZDI7mw15fWRaZWFys;Ef)YMo%5J9tY-r0o+T9T0?2BEo=t#_;I

}78n~xH-iM@^i9ZOxs2CsB#*L^EF{u_0ApS;So07GpXhB9 z3jKWk?z9cQNxBpI=@~4`Phm*a=`i(&zmpIvflnNc4X%+TaBvq#4|ZT|ew8lBb-1GI z3VuQ~s?>ceb}~g*8kb>9R08om`M+g+OtvTIve`qOwJ%8m3G!zwn+@^_{D^aELV46x zmElJ-y=2kxjdw{=D(^C+av=XhS>P$=R-DDGd)9Ja=#M2*5@5CkaoisB+F;(AyuWb{qnV$ zx^r@d;P+z`iJq>J<#(S1JZ#{Qp_}1J{?&YkNc<c!or=382k!_O{hq zIZ;y;zT&Em&o?J)rlFO-7YknOO7*kBr85uMMJpN{(&Fb5TYoX3q!0fKS2}51At2>y z_+e0LuS`wF;Xu!2{&7y}J+5L>t;nn{zhYj&_#RAkMwN-~lgc9f!}~HAaIJ!{xK3u6xaI4|~$ z)Gk{;wAife!0y?Rr~YNqET`p{9(K*pPU*Id>IU#{qHnY_$V&7|$3ED8fbcNR1b4xn zj~xi-S4(53?`}8ad~HKU)xQnir$wRV%6QMnvV1wHSsOH0J=ez&Hf&;dj|To|vvyXB zDfW^i&NQ>Ua$m1@RWbHAc4TpD175Y9z-P=%m5RprJ#X-S-DeZiGZ(m?uGlgqT<2Y= z_rP<`DVfZ{I$?zoBQ%{z+(0mt>5@gHTP3{>9`f?~WDx<4qqA$HJh`#t9>S)ofV281 z3rW=aq*Ptf&*XGNzq;UPW6wMF2eeeIsT2L*ILB#AV4tmz?Do~W&5!4wA&XH2CSsR- z{wzULRz97QhnaA8XD|qTh1+|+J<#L|wv-i&9;m|ipM3tup*a3K(#We5xwkmnM}T4g zzZ?+@q>r=gettyzX}u@lCJS~Vs$C`u0G5q|-|-~d-o&}dRPVmmkd3EV`z7~yoBc2d ztMXcY{}?ZZx)mAKRB;3hmk`z-5JnENui9A_P2-yPvc~9?<~>Vf9=Ru~eBr?L@oKJL zN$2o6dH2>v9y=8sjq_sp+zl5`7zOeH$Yr&l-y6e$9t@6|Bk9i~PvN2&xM&8cB6bH* z{c2`f?fJM3RKa1ye1CZsJ6{Ig(u-qIUgPT*;YYq5vf@_T!(Av;?t zch*ojb4e9L`TiZ0wR~Y4t>5+db3*eV*3Q%fyMkXf2%eKt@!srEM*klSUKK>I^;fMw zHlozysCE-DD&drJRxvy`SkfM<#}Lh~x(>}ex{e2!;97Xr*!aG(m)DP9WMbUIo8G~R zdB`5BZU^R~A16dj64~zJpY51R89bHjexskK9=$zeq#DPftiS${4LF%-*s(OZdaw~> zdb+n<(ZlY_<4}g6V21NM#UQEl=KYZ;_xDNjf=_9uIF@$@k>!Bv_`jHa%YOnnW1Tv$ z?&qfoux4>?u;0FGa5#2;Y@bgayM4~pO+b?W#sEfsrEA}@fBCsD)S9__-;XP?(r0OW zD^}n&0eWk4i0N7peO*_^F1elmDnwad!jm-rLs|h1Ufu*`@9d1k+xdL0i$Of znzV)+|KFUR^@Bli4xC#5j=uQbdYMSA%Jzq%jj(mj<2AoC=qLZ-eCCzTyouz=4r30% zA^N+GrwEP^uqUvMyQo{B)Ekj9_E{-&B{Gm#kTDX%#3 zKti!?0mrVAsV5+zQu@?^S-2G(FlDqY2bQNKhH#}N$oOAt=RG9aQ`~*B1> zl6bQ1zM=t2*1t#Z zVaRDGxbBJx+poOe5HN?o3)|4G_bsVM^J{qI+NT*f@W9&>L`nt1iF~M(#A+tD2VYZJ zk%;Ydd z$_8)J`1PP4S3VZL;MO|N2B#A+%y4LPpC8YZ;4k(O|1|QMuxMI=jAf7K7fq6py}VDa z9q}`*mlmAKP=`ue40?)yIyUBN^ze2aDueMWcq_ku$#;LW{y_Ls!yhupTvfQFM;U&8 z`G1mg@N3EU$63A`tV)HNHgP>F{UKlVfByIXDfLWBZ4bQ-nfmHsdv>DjbIt;&#^lv& z{{{ogopEqW8@q3M9uBtnMlzz4(RVlpvc``3B6^$W z*Rer4v%l|o6oaxHXM;8aI`{cX^mshVj_VA9iecX95+ym#ZV^?g){J+vi@wnl0h&Ku z0)cZbQEFK6e3aG@=LYi3+A_1lbXA|PfX}(-7Vqrj{9*v-lCp6&b9;m)#2d0dk91y_ ziPNaO^7Y*PKs&Co=ATDET6i2r` zW-!({n%>C~O526YoqqC;R3V?1H?@e&KX&d5`62L7`}~jej;j;merC4A_~&*0+?UJ~ zB;xM(^ZlFXyYDcW=)IrCH<59GOzG_N-krtVe+xPA&_XAv=4Ll4_Zp z^Ji}(iS}!RPzUS-^7k9AmFFKeUYt}uB=ETR5593H)Lwx9M^(uGo>yJ@BukPkx^n}5 zudF})jGP0{zRu2l|Km7=Vr2a|rNsQ+I+Nc|zQ|?ZkNW-FmKIm*EFi;G}?#?>4>@19>FPq9B0 z`7`&weX-RmKRQ!`{HNr#bpOx5=MI6m_+_EQ^LamKt+bq|%JwG}9FH=DFiyo!9-^E3 z`rs#cKg`NdgHQau1F6pd!s+Ng88`5&=4|zWTU{sDFX^Y!YyCt2H4a9F{|QHZYCJ@> z;_x9<2Yt(+JHCIApA1pF_#rBBWc>@f>DY%?>GO6#;1I|t-E9oH9`mcnj{}@ONmmU1 zRPVWqW5P>Uim;zJf!DqUXRW^ne(;31<^I4|mE7tUin2obsOQvC&Eh}j??-t!|KP?= z2Kjls(dMju%8N&S2$n5>=_|l{{+BRo$ojQSD_g$Zo`PD!A z-zyu@$A6x`60H%6^jkcdc3=L+40+ExojxJd5nyilJufXIv|-k@kFB4E?@ti0u$yb2 z4#~0D-#r0coM^1&wK&Be{EK~x{MN-s2U2TWt=I5PrZa=SMY3aZUXSh3b3cDXYe|iI?(^mT zzcU5C)tUl77g`E@%KLBdlK0b?AH-k7z9s4Lm0tz_bANnKGYH*3ul>0pqEywJs1~h0 z!!Svc8&EO0Yx4idGM$i zwVXNhfR^<4as1CXLNl^+^p1yW0WGuV3%Qy*^uc7(&+qf`z=mSzSjtjv`5>8qH_s>a z$xs)_*ZB7*1np2NDoR5#T@Ns>xt&$hNNl!?qc7w#x^tW zHzUo-x>|q!TP~fOftVh?-_M^RQSn6b=RQZ@TkhAtk1P`Wz`pN&R2{uzFq;e&JGJuP z+>gf3XPqo&R!Ci0iG_Y1J0wnWfOoJ%=iZNdqhq*_Bk&mCn!{GX`RI@3b87sqtZN+P%b;Ok*3b9&F$zW&v}_G>C%YkWKo z_?||-7k_-<(O)O7=Dr`p_HVm^E$8bfJ(W3D`9Njq*!~amWJcTO75f8_cbX55mD8uoV8|aw+7QzX~~j&9)IHe!cX`6x!1KnU>!r>QaPBx$NrkLikDzUa67@hg1?-xJxCZ7 zSeE_>Wbpg%;s;L28~ZiL56_9b>0H?<@VySf5BOOvexHy0>Yww^?4y@=jr=@m_o;k7 zY88IYXUsmAxZfD;D_=m6wW;JF!n^Di{lY(B7L9%ATKr09&s(wY{V#6eF25D|hxd-{ z?wNbP>mQtGgs4Um_aP4zb2~@xxY_xQaoR_Z~2qM56_;j z13UitOOWYM0U3d$Zo}VC^1=L-^IQ4q|G57Iej{bR$LZ^znV+B;%Wut9f{*d<4rDy{ zlXa5Dmvj9;9osMD=Y=nkZiFvg{j^>8x^9(LzwYOQf4h47qu&$xJ@{Yx==YF($A3Kr zmA#+getEz62lK%1&ei7$SFAh0GQs7S4_p2J=jWxY;0=FV|2g(+<-_jxFitWwcw*-O0(Cg3 zFpe0X3#tW}50-iKO6MWF#rOTqlJI!_UX=v6LOiXw$K@N4`~f&OaXHRn=aNd}KC1c{ zEG}kQSwNBf=ea(`K|P}kD|1$!X}tOV(dXy){07JRP>XNSbt(9mm>M`;yT0cuxn#Z{ zKK~UzN8qOS`~|V7P0S^5p*>%{+BpovVHwNw`;^EmS-M6-(%!$49mfb}$fB-YwhYmp zQG2IK%GKYQ_JQjh=dYEoRiu}QJb>xHR}zND&!4ED&pCTShxhaO zHOl7b;*nf>^yc}~hiFEhiT(QX?+?*C^TtxuyTmW$Ng3+nD6th)fBxU%+%w>+Vu0WA zK(=kofTSdF1F)rxIn@Q}Qw|f%vx)x=In*Eb`#B%ga6kIIe*ox{#pv<#6%sytKfhZw z_k78Q?0Pu?*zc$xx%{f``&I4_`Ml)gM#%+!Y=l?e-?yRh4sRQz8~)KggZ_@!GNSjp zsDP~brXO&MIUV{(f6Z@4l`Iv+=bVuq?NsvlkM}Ru z9P&1n6Q+*ULH-|IJv~iNc!&w#|K|Pt_guDEnwNgtxnf}b;v_6=pWtRI(U1y$J_<9J zQiZTp3Au`kuUpYj^8Mb@1mkb(mesvO#zA1V-(zLwWSCOz_naEbmr{W++CD=!>}a>U z9BJ!pXO!%fAcpha=gap@=_5ap|BIjZe86u=bEuJVierk90nt|2f~q z#4`+FOc6RHyp6~6C(1y%KcWvi)8tQ^olRh7xEnvek0jMI1K8{whre9#_x)$HCG&pd zgZCWz6@9*iEeUOUbQqBJJ>TU2Qf8h$cD?1#hX)kpm0N|v^GAZs*JkI9q!*%s`=>R1 zc5v>z(M6so#<0d2m=C_Lokc#r_gB%|;CE~JQ>A^UEEBIX08h4$zv8_wxaXP9>x_7K z%G&uH;ESxCmV1k(p(=0wz+Yv+GxqQCXWIVwepB@_*w<;}Z#}g#)mvUAdD{1I9_$~_=TZo& z2ZLg@^EiAjwfNp;CpGZlBP-Ri0|#Ed`d19Pgmn6B`r<=9{{74j$bi|{$J!Q8DKlUC z^L$17&E84DnW#Y8&)3n&=S%gx3k0!$wTh1|;(Rl+OrQJ9fKc1lRHu%ro`3OsTKyY& zeGPY(^KIK#>&mnCrJjf(Rc#;pk-=gsKS!VTD}JurZ^5s5zLLTZ@_e^JKnjv;%l-0a zkb`JULr$}1FCT8xm#M{9VUryxa)UYi$b*5*-<7H6*1`Nm4o#1LAFz!LXbnI}324oI zrG0LLTAf$jbN^0CUuq!o=?8?I0)GCKrZ>^f=L#IrF#kOV4-#<;Ikt1usyUm{bq`O# z)unx-KM%>6@A>3yTGG4VSJL)iZ_kKk$yx4YOIy@Rfnn#AbN>1JGkdOkK1bI$&i8!t z?%Z{iq`y0CY|k$dGnbp}gxOeE$bv!C^3keWGB$}Empl~b62N3tV+e(F)JF=)uA?3F}=NmW+>#$?*2qAeY_!Ob9S14#79cR-9e0= zvHT5yL1d5G74@)6t_nGbYl{=k{bWaPX>`l>?|96w-;m!=zj5^MbJN<=J6<^h980x5 zWm$Gplb`p#mz|tfSuN+|FEVX|OnR^L?KqE&u7|hWJ|&rcg@EfUK1oH7B3XE~<)kw7!f-&c$xyo;qg2(^$;2Vw zjgEH+iy)}TM`^Z*V4Z)Z!147R5387j{I?wzp<6BF?>;0%(8J!I{nLxFmcRFs_tx5v zL0M<)JT)@1^I$mtUVyke;Vr+t4xZt?-t{fdcpWf7b^x7x-T+geA z@9w(fKlrrwGmyr(!XNz#2Tn<$uVD6}gRPFSfUhenFS@A>I(~=H)f}%VB~x)d$#c(V z&f@2apCTV`D9&;Q6@EJBu>2$^e|Y|(wI+f4`N(f7Lnz@dK0lf2EuEycX|s->XS^g3 z+n`z7w0Jc~Jr@I(Ykl;;7jt+&U3@<0z4jH`JU-2}5(B&tc z4`3MWS^YsjfQ~{K&7_NS-|_di}6> zcF_*cW%i2O2p?6}$L?3x%J3cR6@2=9hXg-5>N>YCzV1nhl5D>=0W7QrAg3AMe}~go zFUQctzUFRcox@lNfnVm8aAew4O3V%+z+`?>oGb5oUOnM@a}o0LuNVEx;JG-qb`od) zvLs@8?&ZJm(-Lo;Kz2Bs);>r6Z}4C8;J%k$eyzSKvL^7CcS{T^a&HU$$Gg|!)5edn z|KS(Q&Jq;knI8rJ>YwCJ9iH!tFPw#gdcm)Is%zggTiU#KhiXCeL@n1GyY@P6K_9|7_r(_n_0nQ^ z@pFG)zW+197rwhibxfY++Hbb!lxIrt{O#HV&+VmxfYXnEK9{2d;2HGKscHzo%5g$-2a%dYH*o?JIi2SDlCk_a ziOBn$O7Msyry3*g_o{a7U}QZ8BSyRG0;%NELD^^@*U?Fe95Kv|pXI?8*c>dAb+{abJFdk?UVKt{)+QbS(WF{ zH1ZGTXL$e8eKyOV<$IfN^}%V@DEa%JS|IA&e_@z?zPIn(R@Zy7^ZQ}mg>$FuJd-5N z+w~y-o;*A*NmWsj#}J^&vx{h~-~S{)Ap`b75eia%IR?YZ%JMtI>YBf<;E!h?9ezLZ zRo?ceYY4=OvEndd;QcFwL8bTZ5JXaeEA-p>Zm#@q)L%sJ8+?k<_3z*JAYQfLWl8aKKDPVbvL<2>AIAaTY5Ll zx$^DxW4=H8Y7ndbeohCB=v$Q}m&3+BNTqqR*;?rT*?^Ib_2ZH_iWrhDIP&>Ke|dlN zVsB{K)m-Y#CbFz73U|3*+;V%kf8)QXekrO?7|ivIvU>8onQ2{1bUo|L=X;KKvn1;x zMZdM@Q%=QQKZaglP7BUU6E3~iqyfBdyy znL`j`#eGnGaO1lZCg-h6A|m)F^!@T{KCi<6NROcZ#kp=p&{LSA()-#O8SZCv*#1y) zP_6@-LtOQ3<5M#4?eBlNfBd70{&r-1S4@`9pMkJSJU8Djoa$5ce3Gb&e+B=Z;5T@B z{^RF*KV9wco72~in}c_fV3l}2J^%9a;M4kdsVMj)Y9I5rNkAm`Klm-Be||ssj`jW6 z7eAYarG8S`HLJhbs&kI4?nIqj9 ztN|Wr*Y$+C%0}50$Q!FtdX&UNWrE>kGP|Vh4KG)~Wb!KaXn6MjrUKPuDMttC=bm*T zad~8TgsbQzrTU;Ccbc-%8=^n902WTN9mRNOA7Nddr2xIQ_b&s)HnQWAqXagWIAstU zwq!D(aP}1aUxW}_JS#Nfdvd#(*2|GO`m_I{* z@oh_(GHX>KW)5%h{!i2f@R)q%KuXTM2`q354IYFvZc9l9wxAy)E$Q^rW$+Q_Ytl6m zjwPRqdG!yTGrkJ`KF0dfS~KpopO0Mg{Hny@EGs$R@i`r}GJGcY=AoZo`Efo;;L&c& zh{Qt*r_y7a&sqGMJgbrs$;Vs&j(a)%^PA<0{KP1T9(>Mrh~_sVxjuU0O6Q)hIU(mWSN?0tty7YOeYa5NRHc>l&-;0^4BR35-?jWF_Wk06 z@I!0)L;BCN+E-O+o#x&#wqR8;e@35~O#An8Kf>_>o2`G0lq@@~XLR*nTAe^Z1Am*) z(WeKN;y-CyNc;&0`w-g^`9zbzr0)pk{@@=vCHK@0_;Ker8GpL=H|!9M?W}wA%lG%s z`A2^}SW+IguFdYFlRM+8(x?jWtV6Hy*`V%$FlNJ(=T3y*+~7pyCp?JI9Mfi$2f;pI z-}5WT*8=ziUp+$f@P2;&`c$3}bgyW$$Fk*Ks%B0X>hdrrWp0&5-Cp(dST8=w_8|lC zKKV|c*huxv#RN9jEDu^qiH4d#tPI)NFzwg<`_JL?5%gJwNYL!_d_rA5a@8uOVVXEG z_F-9(vN{+ls*>-$Cfs=9XUsv@(%KsyF=c+{-v^KKd*L&2dd2z0ZU?_&-%jLL8Hodb zxGu8sk6TDv5;N>(uzz6bUFW=F7ngwdVggOi#c%B2@^>}gAAGf5Y-Peosx$w}Uv81X z$Jp2Xa_pm7fdgp{2uXVH{4UfV`#dY#^ACQTKb(ATj(lpLr1^cno1??ceX%lhGS6V& zN!sekdS-T8O8mPuHcFgn-@ot=*M5|cpDVAa0`T`wMnzesM#|tuw^G_u(x6wV%y4Ak z+Nb9KpgW!yQ|f0;(dtb_7(gO(J)%!>#D<>7IM!qn*M3}QdEif_ASF% z(qW@G}2xct^Ob*ky+{d0HGlN2AXguV;5c+JMYcM6wL%KXyv` zbXen5chJ^TO?1pxnCDMWVzbj4?J5`{`a7xE zIEgX8U3aZu<^B6W2#WLZe`Xq^HrG)pe_j%y@vP%SKfE6ztds)B7(7Mazl2iPDtXt@ zv+sxCB^r-$ca-e7uW5Y$rwAj~+vfP>E_ zr1B{DYvV*Ob7c(Q1Q57?ue|BRKJ==PuN!KaL=Y>q&H8i3Q^rc|!C^dqsd#=$=eF(` z;*F-sSJw+}twGntH&SR9pJn^v>Z`fW zmz~oxX1q1``62!B!|wEAS+}co2N6ouKg+LeTn+Zr_G#qxwWFd9<1D`UY@TLn`V-8+ zsa6s2$9_I*(j7Pea=TrvqXg(w*iU`#_l^Ci=w~upLSGzo{NVEvUOO+--}}KKJ(3rp zo}{syg&4X2lixQ!9(l$N_nqfU#)@ow0;ZAgC-&72cL{rQf~VXE!d9sg7+px&?J`yN zh3fErwf4Q9@#l|&J_j4vmFe=A0#A7mUQJzo(w46Yz9{#Dlh)CN{2cq3_x1hNsW^2Z z?UZ4Yoyu09IF3&xU=TxKqd1BDut@uI+1n3SzVS4uPN^dc~I~i(I(bj}idT71FYmF>adJaYco z-r(3@*RVr8$+oAh-y)E9x^@WU@~xiLUn%y3^GzxS`+T~0_*$nTqTHGpLzlplrquoD z@ck0M8~qz8b(Z6SG{wr2mH++x((*vnC#}@c@6uG4=L|?`7HRk)g*@Q9mXn(kMtkdF;1K#@?s8Pr%njIJeo+ay$X2|;Kg))zH_zT*{%-s`^SkJ0)fB5I2^x0Z z_i-Rmf!Ss{>K{K`sefQksSQh@o9t4mRkEqZgt2Y$%pEj1Y`&K92D@Ox-%`6 zUe%8NaernODA~upMSj*loC05vze*L>ZGE^s7&$-W7npFBLy`cc=cy0=!7t`+pJ5#C z>i5LINO_Yn-9E4rxAcWya zBeA`S=!eOrV+i?93vJ~h?9;7*vU6(^`<_GQqc%eu;Zu2MV#yhX9fX(RV#A<>5|b(o z8z;}S|C|Vq#)AeEnHKrRqURd=f^yce5qr4&Vp`{WN*R6rioWm-x99hLX$PSFgrN3v zYlNYa`u(I#@>ygYVuP%785HOL9)xf+GqxnTWk0_@j8UJe2+rqG^Y5JB-oKUe;eJhc z``)h-Dk=?$vVU4=hn@4%p1-(D%g2q3dM=^&Vx1{=^Y$7l1xSTMjglPtk~fRPyXF0} z8mL}=ll#m0uY4ynsXWuH{4|PGn$1R}9CC8L$s#C8bYwx&uK9wL27EI4^C?L#$#YmC zLuV*Oee!;q)$a_)Ibx6rdLn+F_xC0_qNL?4?HLERG{H3M)Lq|cImxWZme1+BmEfRE zMsn8)J!M{la#u}+6C|7oRWg3${3DYidesP+IkJuP^k^twO-9l86X`CcJtaG>x73$e z2LApyHKQLx{%U6WSSK^f<4uG=4lmE&1Qinb-O385y>EHuup$oTSIb@qZpkZtI+lGt z_{n7F49eT+H{?QX_`BvN!(AfZZ!E9n!-m8k*?A{Crt}bda(V1e zvalCljK!X*PqJ-2li{p=*S^1V1Ie-#QPnst}^~HJU2u$@0V%rm`Cnc;j8PbxjY*g4S4r^cJ?>r-IwMWjt zco19}@&5B_`5V3X6FcAx;m0QA{$l?i7c=tQnA$<6%0N>QFr1gnc5PAuM&K(xTK*M; zzo{+eI#jz{6xqzPa7D&fbj6=pxH<`BaVO!55wF()m51L6FED1`zxy=Le=eqkKl-lH zP5^!_I2gYkasN>)!JlOOjn8nRUj&y`QZ|__J`XHxKKARLpE4_;7M}>DMk|8e-E}KRiGuEJs$@fTf#r#$>FDq55fitPB!ISl5Ahh zPkb9+e%HWOzTf|$8V4uxRQ!`czFVm_U73r1Ig0gBj~giE+$Z?kx)>S!vQ6k4e3@RG zMPy;FpXQ2*Ln}l!>GTA@k?%?6aBPkBM;WB7_z#wk*#GFy@=N(MN7p~H{ULU7Vy(f4 zIP7!z-wt2SJAZWjY?XTB@dYz8)5PFavQ92PMn2<{)v?V=z%?t{GdCkPTj<1_L9-wK zBsghb$7dSf*DYvT{xI18$XBw5RnjlGL2%bA&>(j+UV|`m5bmH5%M?N)=cJ?^i#ofr z8B7W-^T3)y^p2efm#`!%X2>fhvK!N1c?z;r^HRz=7RWjbmq*+wYN;AlS($arICE1v zI^#iPa~`Q*oMtIfumOol779V(xy8>8MsN*&ZOt>E-_qmfJ@j)PwBs31+#M$2#4Sg} zRpp;Ijlc;4xLoL)BWZuvXbp170{xyMs{)|4R;eq-7p-+apEEhI1Hbv$MSPjEd56fM z;7JLAkxQ?{H(I*3mgX zWk1jn5iagi08;p!otI>WiIGluqC9I?EGHRk5Pf9~@$s#!ZtL9lK9*ez_SyG8=`pN# ziE?A$GkMmV3jnB<=eMS|PyW2rHXJDw<4~tQv4=go z;!<+&wa4a@?EkiX%;rArGApW_u#R7M;RX`GV&;1T_fyiSy*D9Imqx1guEZ-p^ zuy`}*M>5?wgyZL*I(p})30{>uzem!0TzLOhfAFQ&KF2{iwLwkuk15Mrtm+?`V^&al z&8%M*4HhfgPjV5tuMO4eFeXqj22wVt?0u`Aqwa&T|~F$DW_* zZ3QYg_o0nLlL3@*rvAXxiV}ztH#;Mh)(GSMIiu2V^G6;;H^yhUW25iVT><>}!jtN# z&qJ%{sOpu@=sm4w_SVjtLB9rO%@NIaY%r%S5e;>c<;B!aV4 z_ENpNl}RN{_`~@5UA1g%YB1$!jfpY~Xft@>hk{Ex_Mo%~4~Eol_~T52|JeV?CtTg4 z3HOQr7hSA`6g|k>17A`5OwV5}9|u{}b1}WMFGfx-XLE?}>qo%acVa&IsZ2P}t<)C& z*$JLWcXrw#_JB_ce;GBE#6H8w@%xzTpVRtP{o^oIBHMEb%GrnYUl{QDSwIAos}Q6R zLnuEuvHj#kk$n6EDdKX*CfWTx$m{uSgtb%)BtG}^iBbb-P&I$#k>1i1LB|6OSWmq^ z+<=U5#Bn4HzNH7}(mUjjQaU}5pN^yX0jz?&C|4QhTPAt_Z0Q_3pX>J~EEne|8Dc&{ zOy=*r^=V~q^dTB*V4%EcAWyP4kU&oJe$H^=n9gjVhK@*eqL>|pmhP%P=gC`Q&7F1F!xT1jUc)ziX1G+isvs z?)~>|+@ass=C=4QQB`C7J5~CXiSG2^{O2riO4ltmK707)sQTQ@|34Ov!p-Q7q}!v& zxveLk|2Qy}UgYNUHrrX^-9~yJu!6uALC^HxpCON37x$+bPR9E^_iIf=an2LeczR=C z{%b^VrZITscaF_b87H>IJ4Tl?YaOMZ`fP=mR0pC{P1eEq@WTnP4X{(0NPNYiPxQES zBmUsy^MGmmSu$v^#_NqF&C1+8f6Ns2ZwPcJ!vDf`zRsUEFbk9^S&<`ucdE?{MzlB0 zDAQJAZ>L_Ihq@U~oQsp*)6%ui*xulVcMRY2y)z_)4A~*j>m-4a6)9~Ml9YgzKM%q8 zeTHvN;V>E73;Uf7BlE_oiOyid+j8WpC}ZUYx`@FZVQY16rDD5EYI5h`5h8_*Cpcqr z_vAo+ozq zgJG7bv-n^xM+JpbpFZ;ph#qbB-}c!2#2Mt{p>p}>L^|}|3~I1E0bI#Jrqg;L#(Q*Y zt9^$}aBFZ5!Yx!I{o#@mNOJ@!iK`Ipy!TxBw6}3Fj|7bNB#p_oUkChvr0w~EpK)Ho zGAfw@F zui$Huy^Iesw_>*V{s|`7uG&XE-S@pP4BIpGzW)bVEy-JGX&Y`tOV#_1LsJ34jEDF$3ef+TO3^VyGLIv zc!#V;$-~E<@i6y3^aO^8N>Z7~DMpIpcR*)0%e%iZWD7#S#Peh z5ji^(JaI7PG(`Nwm={CjY=|ODU00sI`Y)B{89iWKGTlC_dtVvEm6&t34ZM^)C$fCd z56w%a!E`Wvo3rool@EeTF-#lz_tc;5Weg@nzfO^5keVRJeD0y5|CLoXv(I<$Bf1gX zHGXFO*5Npw7`sV;jo@$`Yn^}2&T^Xm!9$k5t}c%6!I_xIPZ@WgR=@HlhBF%&l?XJ5-j4%l$IiQ zbWr&T-w5XVAH#GZma^`hCyrKY2gLno!#l>P!Qon5s!~=Ak9zHQDs4*1471a!Uz`S) zqq}OudV0X6R0M6gJ?Hlp?Q)CXb!F!hl-?@~A&a_i&>*2nV@8LE9b@-ayl&8V3xM*` zpV(_%4ph3&DD-19+gh$|$BBwdc763AE69Xx8i|r5IKt(^nPvPb)?Z#Wt&gFn2Oj+p z=ezRNH(7W%>jaFpeNwPS0+-%KfXsUc%l;iZTlr4gbQfx-^gYiu?2&Jtzm@qf$*o)V zdlOZeFVNkZ`SaaZ>yF#Qep+A@cq#h5TmhHLUoiQR>V>-z74uvx23BJ43udG_>Zfi+ z`hVz`)X0#+F3?e`Ty^m;tzNJopB{y+*Fm;xzwUBAtCNsyu+H-3^NFnZf4gMvUdH2j zgw2##WbZ1F5_k?eozncCO+HAE=79wzfLf1wXifblih1A4yTM z;&-JzuSmwmenbaJ7DhfQ@{8T@OoOxhDuHoTYtH{j&;L@1Dm{L$g%Mkzr9!TpFnQ{M z+e!5eHhdGK%SU~$eVi;(*R`JmJ|nxSB+QD|7yl^Q&L9INq0<>iqB>iip0bRHWcI#V zaB%(ue?+~7Vexld2j!7I2X;k#+#^7iRyG_+VPPbjvUSB_nLkHT$R;*xV3Gxma@pn` zJ<4D<4!2HVD5~hlI+4?nE|C;bZ%RDBJ#C1N;)*Qz4^G6m)W0yq>Fvm>m^kl!d=Ay$ zi-{s8dixL^1TD(LRwn(m&n2=JJb+1L{<^}4Tn&@F08ObL_Q3yU-#5a)j!c{eoS6&=F}HX7gsmaQWoDze4k(Dsxl|39 zbulP#)8)fV=ED8O}XwG6PoZam#>5rEl4~ zcjNjwPkQYLm-a}{ICJJdLI$cn&KRVvj{3EJwxsuw(w{Ay5Yc15##&OHcO&6_3e5W` zDom)_gf~&wt#*yF))iU*^K782W@+RC%Mo|rCR{S)b3e0ZC&>D|&H`k>KL*WBk>qQ5 zmqgW4bgj|q(4KMr&g8kY*fVw1x2|;8ZE}_Ovlymie;T1kk18Z=hgMw$!=X6ZEGEwV z-M5ZRlZhAtOM_v6rAX(fiTWku6RgX#xH4cq1oXzy_kNzUI@@(_21b`$8PiRaVqA@n zPQMn8W#rV=CofRv`@AFhia|*zNQYclM^Cd4rV@DIxs&;Ou>YN)srG+6M5=jzzCZHW zkv#&^DQkVEv}-o|taJ9n$daL~f6fz}tI_PvVM;ayX(|Vq>R(Imzq9RKyk80DANih_$p1i1yob|AK^H0NCmb->A# za50mH)@ev=@MwkR+Ufke9pNF^IeVU+G-bZK3Vt>6h}Z{bdgRjJNw(tBk=&nfj^4rk z%<=>ef;1m|6Z~HysB5ozmM2h*Ep$sLvNt#n?NMLz11BDTzwr;eo&+?Fn&>rpfnkBz9Uy+;fMc4jk2_t;y`1DgvA|Rn@(>M;TyzjFB}`{i#1^8=X5; zd}MRUlK{M2!IHqaD|@hir}q8yUVhoK++~R8(QEkuD<96~2Jf`oDz=$v@m#lM)vI|& zYRcNHK7-q%ccaXk@V5ui<50iI!F5{wlX!OXbu0LXT5jrKUaN49jp?xF#l?oV4wxb* z&j+UOAyaP83N1_P?ArDRsfu=NODX~JxcY2Ie-J$dSZ|4KV)7|&5N7t*3;GPjcUP9dH3qtb2`ZOQ)l_& za^Cpi^&0D9&*FCg*gl)H=lJWIe(IVcYYYTAKkvJTwPooi7n1DWtdkWG%3j*^Y*on)Gug^@)dT)b)@dxfAQoiXME8AC zIt!IcW;>YM$}kOo&aZUd7^*~kZIR*#S8W5K9rhzT1dok?_l<|#eX~_uUcSF#9%}oB z%WQ(@OSE`2+h?b+NoR9AS)fD@=NjU0Ie>p478&l9>CI)NyheNNXAh-$1fOURDykZucb%YB5%T(Kiu*XhXAkt(^>hcro|dqYoTT3mdyyX?)+er8)X z9Qcc8KYInq$~gM!sHdw^aLUR^+7m)$#q2}oJ0MWV_VN9;*ocujPZU1En@sR_bd_fg zo-GiW45T-)4m*Ph~YoiZrSLN4hn z^~cFccHBDUvbRzgZK-ru2}M@PTos0=;?|mE9PTGOf{QbEWIYD2ROPuJZ^%jXkoTKT z$c1-?T+|se?XvFfYPtP>JLcwN^xNZr`B{Vx^=3d4jn~*Lbq#?k405tL8Q!>_q~+=k zQWB(U_Px``TP5|YEoaO5CPNqbb`&1`m>pxPtt{#ZkNgZg)#|z7jcn5=D{Cywyx>ti znP6Oc%USz*@ALcD_)aLQ1C0ql0o%-jxh-_gOvEm&j&SZnz;>Q?X}s3t`TQ#Z1N0Xe zOq|58^hlq;`U2N6zE($0YwsaMBqfQSf6(YUa&#yst>fP%`+A0Kr?i1%XNKY|6~uC4 z9yZ&bI~ce?mo|H8PXF`oPHnrO1GNUxrkx`HIdbrI;1JK;?8l+UeY&Y^fP;X!^+xnw zC7WF$1d;bFNo2O1#q5|&ER~;S>eg~jhVN^J%q9BCzyFN~Et{*8RCt4=ik$rs zRVLDDZ0+)M>z5ue1FWU7(|PvJ(NBKgou|ebF{8$LRpbA&`gVDy69KPWd((MESI98` zs~aXYwoSs%ODKDYx z+jcvp=LxFggO4i#j;s^jhVcn%g?GgHClHZyFO@qt{1;f7+VvT50@3J_m-aHs2gjfw z4%X%3;vmPM+q?jNJvT}=A&t^GkClc!p_v3ErgeY za|v~8wlAm=G(U&stSFWCh1CWg`o5o>Ew-W))%goyeH^=~IL|l_B1^&$uVSC@$d11q zMd?t+C4{->*$bSF&NVBi94uHjp!q-Ci*{g+_6bVu0W^w%F8a+Fy#??*rzo5LkT|W2 z=6b8Cl0QQR_UJu5KKq~ zi7FNScRG}Y^S>GD;V0{Tzdj*UwOLl9boT6Wj+82=Jh_iaNe{uFxaI4p5?xd2opS?7 zf`IF1pd1sH%_!zQkfVM>c#t2mN(R1CFUX-+m01D)>}Mz)UAqqrnP-Wici;M+>yU|g zZQ-9O{WW+d^eXr^@!`vr7diwyYVj^vqf8c`y7&;#R3ffK|AR{ZV@CjodbocE zprsVwgFtJYCOiK=kJ*4nY37kj3R(Gy{>&s31>s;I*G#NM%%wl4r^yiexo3V#cp<@w zIfqjI1j-sB<}*4Wg7To8drzfD-~$4ZY3@1yD)4XOq-O2ibI&;hWVGi~U`&SL9pv^_ zrgYvAf(uEmkRLz$Z$JNM*`G(rll!+!2n7bamr@%2)H;5@BTfAX@ILsmIeX~F5|#uK z>6_-g61W_6vdewCeXKj_I6RWx9<_eb41LjHe+9SO_A``cMp=cGNegoxoP5l$kOTb} z1ktPge19)GPYA2V=QWm>cgfw-H=mPQzxQ*0NdY4*asCHem{qJhFc++Uhm2zG!KHGx zUj&YZMhEL2L|xW@fe&1Z;;7|0O{lW&veuE^dcr9JaMok%!OwPUGA#6Sk25@flQ7i{}^kC3)Ot=>aFx7Bj-}#L??% zc}=S2efX~7tWECE2K`Ra#f{7<&WY?WDt7eT`_F$X_gJ=niv0`02eVa~L*#(-k)&!R zi>$h3xDI0B)Ew(&p;va^OMkSBCeR)HkYxN~Zh~mpbiWV|$M`feJ7M(0NrPW&(7V`s z+JTXeCG z&$SP^_4B|#;dUZOec+?;*;DO*K35J>Wf~{jit@9skznjTk*&&ueSFm5Q@cXarL~ry z@Q1_uj{TG~wjMes`9|((;Lil!Is3E=&qw~_P(H^p5{_wnHgB32%p#GYDswiK@jIq6 z$FJGXa>BCJ^Q`>(OoLyK<}~_g{_MnYf>eU@vj$w&!#O4W2!7y){SWPI*-}w+->>9$ z0Nd^(orf4ed;z%2G>Npf>jOUh{=;914>a4c|LArCj`dF9alvWd(H7^3k;W4qH{i$R z$7+9m_$wmp^IePxj{ytu8+N5Bd^;^z=06E&n_1a^#SUl74$n zemVT9|M&m?ubt{-v=Ygm;R3DTe?)le9p}vU!(<{$6#;BhXI^Ex^3-vZyAr95o*#pt zOvddz1@z7WL5W!cH4Z2gFFD!+_B6^Nnx9KTD9fvSTz1FV*4+NX8J%Rb|4MooqPIr-91Jy%C2|r)K7e{C__RMW(bC9O{>IyfyB_5K=KPgg8f`TE zUTpc@Fz%<^;&8~GdgT=WLKY)shiZu#Udo>5T|uPG+CVlcvRY(&&N_SDmN$*RTaP36 zE{}}kl^_S4FS5DWu*jqJYiA=&dc`8)klLKVDaws!r?g50t@ikaY-uUg28Vxs0QTrX z(V%;fLypU=4@%FLhDeH!BvI+CdNeqZ#B`}AvpM=!HBUa21c z$@!Mm8ozdhp}-WmEzFZ`Zvv=0WF+S`TOuAxpS4qdrlDL|Qn#KN*4ApH=eC6+IQ{A^ zs$~xSnL5b7V-WfLJI$Z$d^`AgQd+oeZTSV`tL->J))^(ioi>WBr4`wV%%Q1=o!_&r zrthY0E4NjJ^GT8^n_JAk=RVKe?D+S7-z20tr#mQ)YLDDh@V-acKJf(S3i$lkiUcY{ z*lP7E&W2my{4(0! zg3ak3cY$;gwz?(r8QzLM6@ip8pTI4JgW4uDaNj?}PT7nfsWaVSLTmh4CAN6Lz@i^A zAFjuh8%6)^Iu-C6g|AiW5j?v^Odb!f$z=K{ZbiXz%LJm{$k$j8|BA|vC%CSamnkhj zDHWBwE7G5Th&0ve^_3Ulggv)?K}$#0em(WbTY`!$N!)KfwSxGbjg!DKe*apxWSe#R z4j)ux@AG^UTcG{D{nxzz+ONi@BO;0&FHOHVLJu<{XLaM^RP8&zU`GaDp67UYcbOmk zIZVC|xR9C7{nsn82_fyqey2Qt-FMJ1_eHz@Id)Jzd&m4CGQ#uY$eIJ{^Zmgme}^|& z5!5)dmD#qndn-zb|4i&w@q1^#EAxy33;ucZw)C9VX&4>yTiA+>P}wRg?5C9A@F&ob zi!Zn7UH_)__RFjuS{4a#`5oF7=~MctV&-_3XMHrwk1_FEt@sqPUBEMol<)B2UEG^5 zW~u~d^ZY*3*yr4TlC}>)6GB|-CU8=v_AsE8_0IFH$n;irho9=9qLn+$5Y$wcWl(5O zIh^H)qX|)n{>c}_Njs9xVJV9R*~5$uYesS?qpbal^Pe>_2Cx`408&J<2M|8m0}CRV z9NS>3LlU@1h(^s({qg+bhOLHvzDaLb0vyD9U+KJD{#n%K`z<7Aj`SytV2B80;sCB^ zyCXF#C_`Ty{rDfF7;@*cj>F&|On^itF@CJ!XR}ds+vRbjp7#wgGg0)doO91CJlSiT zCRTWj%MwHG-&y+40LMiU$jmsyyPu5l+|1J>#`KKh`M|sbqFWz2v)cp4_pXVG8kFa5*tb+`nc^#%&xA=i<-Lu32OLp=#5g zm5P2(9UV{Bjcms`88UhU02D;zw4-|LE;cwt-|9wC%ko=s>=`z8pKUaM{=Jk<=ZvRk zgE38@k4s#GGjhg(vJZ@FalQuCWHD!PgXki%F|VB*6X$p3++uV#D0o{xYKP_=hC9|A z_cw2Ahp}U`RZ}YFG8E;CDfitqrgBzY)vA7!^7$q3+>X^^M9gN^h#_p>IBiKHScFbwvSj;#kJ}cQcMO5V4yCexXSASK z%L7I_uZ8Aacqo{#o#o*7oZdi?19`por@H5^wtY~O^*g0b@3ywzLdN@dOO_u3f4-td zzG&|Qs}BDaeWi0OfZ1K1XT=n|`s6TI=U9f5lMWh*V2;L>C#pxOs5!h^osr%`&5(kT zHyEFDw@tBDa43^@Fbijmz-d;_`RBIZk3>(aw6__aGH1W5z>lqFL7&#M5Nm_?h4;o~=`~>X}>J*#jH;UA)v{d`9~?W7Ri^_4;g8ejm^4 zpu%BwW0bXOspxsON^z2rk#Zg*iGY3DbT+6ZS0lK1XBMAUM}m2U&K`Q?^I7?S;ddu? z$oC(NcZVM5zZe>-0k*y(*gpiiOE39%wJdXQ?tGF)P^+A{Ipr!R5}Yb-S66}h+usg;R+52d z@ws&5_0F)@5adH5?ojm{|A6}qjwEX?*?!e<=TmTK6bXDuC0TqG#Lj`IRcM0xXm+Yv z!x{YM?^S+L)zGz=m{x;R1@;jcjZT24Qv{-7E2pFvn}+;vD48l2KNPJiacFgp_oPbN zCdi8UeKqsyWw=5$j;`uMvgVU@rO!nrwWHaiTm%7wmGjY@Kh620vEi-eNXLYo(OyaWMtLt)E+n=Mg}5%vjUD3e<%;@-Q4G28ZIpRu)W9m#mS9e zJL}~>=#lqCZ{!()u+Z2{o)hDa(^-7~v88{*K46|Eg&~56-`5TUvvWSmZpga_c$uru z2t)W!PP}6>AS!c*6`d-2M+4}Vk)zsS7^iWVL6Rwde-y<1n7YwFon0kaf>cfMUM9RR z4yJT2Cw<4JXwG#!N_)yGCaH_{3tjs>Dl47e{$2UnpvfowVmal1l}Do*63buoQZ|jEs?cn=aCqrIoAJVL`uF72aEok4Qh0J zy6eIyPj zfOXlVlqwQCz67o5w?1UTTut}tos3z{NY=|gMx}RfB1P^1Qg?Ke>L)bTCA|o045qN;qCn)vs66o}wN}YiYogi{?-vdarE5BK2)K;4q9@!19X}*U zER#*;T>k9U4E?GV81$Ga}!PhmaF1w+*x9WL2}qZyXwjV;o!JtR zpPCzNCLy*)H1e6*APvVG?ROqLr3VgbJYe3K%8Vy*MlnUBKmX40eW{N8iPR_%G<_5FnpZa&B+hTPjV(4XZLUrRA87Es zTNOUo^1mw!9u$v$kNw}jbKk}B%GPdW`#anIX#X<_uik{w-#)(;p&syXWIKcXKln$$ z3%2LQEq66&fU3Zs#1ry<68yJ??h!aIqI>#tX@4f!W*C}3!V#$4Z`pLae=0C|bTcAVoW_5V2gsAQ85 z8IXO+S0~Z1BkAuRc-Af9HiD_8$7vgp(y*aCFA+;m`P7MvU(#_YVV=7~4(&~FZd}~) zo?l;hdBq>!w)a{@^+a^&1)zzB zNM{U@=W*QZWOfZt@=KIDZD8%lnI%AevLRy(>ou>Ee>wb}E=o%ieN&uN2GnS9?Azy* z>`R_s0F_418`9)x`(|8nN2!7UP(65sPUn#c9X}uWe2eOYS)j4>TtemV>}t0O4Dzee z`!{4&u<{dFmr{QG!yy^U%@5h_LRX$k0rx#8DfAxJK0zwLw$_5)WT3hql+ls9|cm5PHQ@bjq< zcm)1U`5m@`3%d{!&-{xK0nj7OF+L@T(eJE%YVN;eL+blEZc~u4 zTfgP=zj^~J22z#6NudM%mjp@U)CRI(jGo1 z7!>_=kliJM#$oqd(}o6K7+(q!dA6!O@?yGWqN(T^GBQ-G{R%9gw{h_S{$WDoyUc#( zkV$vVXQF;BQFM?1`9W@q`%55R1orCnca`L4k~ZLXXw{OmIvD4C(pMgQ#URCYnxs&g z8Ek#Ay(8_sA)aM*XUX+Qdh`pbBaGR5ooGc#URo5gUYYX zcml1b^`6)Uw`^_J@`Qg^fZp4}N1$Qigu=e2W*x2M>TGu#t*Jwqi5^ z3$MP$jvvcM$I%?{_P~eAj`6(ZN(l`#-I>v>T0KezSxL!Cr}axdK;~YCOY@-MbF$12 z*jZFCoO7MYlJPmd%^<2juvb;S_V5)d9^yVqwQWx3^L`KKWa2MbPJ9%j%+?5g#r|bJ z*Kq%r&&)c+Q|7@BNx5A6!Jg@q-cx!$J(%1v6^?#>*VoP<>~6WgH&ft1+>}ccSHroY|9egj-U48W99s)N;pl0*V*&4f6BkV z#?PE@VK*QCUF}MU9UMIw78;+(_U$a!8NJh=!IaX>O9z+V^Bj`RBo+LfFEVDS3w{W0 z>fghjD)>nRqc;3YX~1(RaT0x7rJ^kIDf)C~Zj{EVs6J$>jC{AxR?f~m^Qflvqzn>8 zRkv49*{!%>!*?6Rl4C0A$-xBRlHz$RSs}*<|B&g=c7}$PL{W^A>gOobI11ZO8TevU zAoGpEJ)hl(#toO1I0N?Ru0Q#VgqzWGDDTh}{^7ke>6lFB#dkALjC`V4xF%I5aezfi z;(H!twP8wsT4GhkPg!LmBJdiCF(;f44>&FTIb)Fwr*yty?JPzsK@=F*^O#)BHt}9 zJF1j{@MjQ1$^B5Y%h=aM_R;U6B4&f-$a>As&(%_uS9$q@lEJ0mq(fGH>te{C+Yj0q z-;(NhZfw=#4F0sHe#(%mz0b(gVJO~r8e`sXBoCXa1;+_^s!4SGTpIr?HUNmII>Q%L zzRQ+UdDQwXh6#tKnRB2QoJsawKiY*S190+eD#`c73xXZ!-)H86tsq6#F9W73 zeCZ&Y+)twP7*;!6{m=b9RBrhBYS&d}SW``{E^CUOJfxuhOBtx6;20WY!VUH|C6b)q zZcJfcp!Ybt|35%bNSdC~KV^_AO+B}z2ZTBh`H?gQ=IG})e;g=ZvRci3k|ueu7aPF# zFrp$b*^dKTze#oiJ9<0>?Ws{(unG<%jk6F+dxtY6KKrKBKXVqO!X~C=O0j?aspO!2 zCPOYWEUlxzA*)nQJ^Ep9O3t?S8BlBPzMLXI^;X&{=x?msLBwy zsm z6tf^?XH@T_d2EXl7&&=JStPl$~IArf1Jv!5R z`r^;!1ISUu9`wq0%R|B{<;@#C!SSiba`ZBc_z6lBHY$c3>tD9PQY(p02mcuKhpe7c z_njy5SiRF*2$)ru(JF&<@FmtQt;ECpREQ(qRu!3zX2!W;?=B1Ngw$yfFZ*h!^wA8 zVtlCAI+T@(k32N^_ry`poz?~v8%}ei6o(|t$_xxqDJ|`K=;tT5a^t^H@s^nmT~hU= z@qjs0<=-jvqkUJY{8N=VVF&LIc$zapfK5VGYKAPv(Et_t-dXH(J)^W~nxE8GN!WfE z-4i1zZnp3*GnrrG!J&;`8pBelOeTmC|F+KcKePeVaG|T~`UJ0>bYRG8foa@VpKf(~ zlCcLGIEtl|kF^0{2b;)bR3m4&ihcqh^z?fLuyqBO!)&`06y_R~%WCs3qyGt3sbX4B42qw>*ri(~%4p4t+%I+fc{wlESE!1S ztS^Qy#t*WWW#VS_fMoXBn{*ni55G%{X&gH6^Yupj_dCb#l}hSvdCz<;iQ9|i+`Op; z@X7hq4-#NPGG&Es0t63{FcH~}argV&vc#4n%!NZ;d%sZ#zu%Sul_T+~)@X-Dwd>w^ z{@(u=_tMXh`5n&!ejGY~&rlj`Zo#?W$b=x44V+VE_r4rI{LdgD`uYdSl2AcT>nRC*OyZaisu zl`Br-&Ux@>$KHu7PV}$AsY(f+N?FC&X7S+B<1;;<0d&&@UVGJ9clJoHC zI$-*!^nPUD*|VVq$WFz}vjl56jFGazBc;S4SjL)=yw_O3JIz2G?WOCTL-0rc^lK-Z z4%WTU!DuQ{)SZ2h4-87d=S zcC?d-3SYq|c;c;8fuA^MX*+rFYsj*9`)6_7tIy($-a`&>nGL}l5bVSMqy)Y`!8MG> zGt7MmuEI5s#>olAF5?muQ)l8oj0o;$iWDcLDFbc8M0WYL(Aa&-9b!)Liw|CoQ|irO4AZ1kKroiOMH0l6lK0N2au2S0vg zOz@1CUjFR=g{#qmQqOTk1PP`GV~{G#@IuFz*>V)labB;IUYxN0Z<1B7o}bo+uM=V@m7 zkKV_9&(CT1$d}8e`?1MzTVVtCCQUETKaZbf2l^cwIhTGMolX`RQgI%@9pop~-B_+w zqC|mfq<$!A5V~LS92}7zGB=VsljuD_t|QlR$_UN3SeMm&FMvB8Rk0kX zT{_y5=1KWqivkz_9MXCq`T-qRGLGI#Y2>T(OQei4L*J&--+t&Hd$`|})Hj4<9s^r{C!J~egoJ-^o!^7_8^qz7~I}i!`5coBR5;k0tnAN^ z5m4UqYsHvBx*(F%?={@5t*-f&mq`xJ*_o7kKry7MSMxLJZE!>-28*VT7`Z zQ$r6s0Qgd7jZssNSEf~M`D&{-Xjc#9!VQmGIy{d_)}dEiHTxX9Pgi#Gm*|;YC5}Qs zf~?gTe_qNY-`pd_$LCKlPj)_>csc}fkQ?-DAjFU88;aXnw9jX%%IZoUa-FW@}sE z7dq)4>!bQH;OE>a-9uH+>G8Isl%78Q(%`k)xAr zhz5KrJqb8Nj<#y!zeGmRI{D;RnXlog@T|7WJi%0HJktE^H2ubU_9UB8kq?+#oc2m4 z&?IZR$h5i5Lr-`Qy_~6(D%-Y@Xq&_%{frMK2ZMXxPdd*FeqXuC7Mjdj64|B}V%L$2 z8)V*~pa#1dJ^u5a_MHD;efY_-;yi`ZCT2)DXr92+dB~8fbpA@2>R57xS&>j;yIyiV;O0?L1~IbrHi*0H4#QspGgJSM+Y1-`(& z2z*+;dxJy%-`Fp?fQTX3=Y(?)X7-hSzSjgy)aKOD@04iw0pC=#CJgr1ftY9U7hEN) z?RC0MG9o@4=L83KwVKbl%Ntcx%su#7XWX6yr@CCfPTtF?T)alXCtK_FGyz=ysc8OVy)oDr?Kv;F5`C;$em5Dci3~W_v1I zkl{@{qp;U&ZZChI%&e->`6En8fMI^{0@*&f{iDz)?v|>RrwfN#a)QA&=KO5Xl6>eM zJG%V6LjI~OU*_i*r%!_mlI85t#ojVMoS_cw)MAe%kWC@rc8Fraede$}d-Fe^^+}ez z9lZXY-)_l5zq8FI8EX+-I_QEP2f2HOb>$xk#!iXgpg&Oc2d<>f&LhYSfY6%K!lY07*na zR0rhsaL{-q2XdWqlPBCH5kn#{=3?HHeB?lbBZ?L4pc?5%N%tAZ$c7!&{H+C0i`JexGqHiuO4+%=V(V~dd*f+S?Wf7|qAhr|F` z+Y{){5oZqb`>BGNad~AiWHF^d%J~v47e=pJ8vb0&6iCTjK>m!_{Vf|T2JgjLMk|$l z!p1WKHGPNE#X&2H&RMBBUt?}>=IPb_{KFYChg#2|6JwA%^8rRlkDd+KRrjt+L%{VM z2xB6Bs~c$9iTo7Kkv5Xvx!*VyKZk}Ir!j`_UC6;mYgE~D4331%IkG%FLwfn4xP5~u zOQ=MalZb6aetDn55X@6s0o6qXkZ%<=+zN7wSXG5W^mp-Q7d23$kO88HMB zry{Rv%aG@A58XgQBA>2=!l8vo+Zma4W{c+^s;JV%o>D>w1T259incDL%>0)DkSf(< zvOmDEt5bXr!z-N$VYF=2OF*q#52dN|(U)~d3iKOk^PZA@6ON*r43ZkZ?- z_U}7@FBL4A)ZIARd2TPasSUQLT51C_0BR`uuG!*FcAetF2Pcx;14TkUZ?lil1X<+)^b1Jr(;u;olBgP56tyH?0$+>(Hj< z#C~8gA0vU>$PX1i*vG2Y?+`GmVv4^AFkz<;HuB>f4&~OGQHozqN%|4Am7V#S2)6y@&NAOJo=RK!k@qd_EL@BdJKiK}i z`EErH2&&@P#qn09ddTwU7zg%Yz{(==6#GYzzTrQWz-*1)hm1S8HVQ{6P5u95{o8`< z%x8~ya_tI;9LSMaZmH4Tg$ zX)&|IcD5#oEarlp_}@|8pK8kZeJq!^ib2;!`-%1C(Opt%vG@4zoDe|Xnc(UF6%M|y!Nf#xE6f#VE68@p$ysvFx<{T;U zOZ>N}Zo80+b)+-;!+wrjy_YIel^}1ThmC)19cEGKWJ*)c7(!Skr9DOeVv{Xj#|o#x ze|U=(B_^@ub)6|cq5`;+L(1D*Z{qsXHZhKUrMpA1Nx^9c)(4-s$CgnjegoIym&Y%ofcAn~0o)vqXrpue@XSuOo0WRjl= zN`^<1mEbCZj3>-SjdE z#hy;~dlpdVzQQoOoYZt{VvgHa9t@Vb3J#h)?;)fF(Ws4J!Sfm2$JmV6389i->mcF%8D9@BJ2;&C`f&l&hULb z1;IujR2rQhgMJ_yhx_+bGwYwXT9jtbCzTtvH&-q#y(*~>KF^;d^i%WBTM&Re^0`1+ z*chI=i=ZCxA}XkChsWiOZTT*hLSB3KvRr20YoV~w{%?`5iX2f27f@w8eAU%hYbJwp z#ycaS$s+cf&B{7J$8}@Ss@P?jyp_x49m{YIaY{Z3bzPS()`f8S49koDwVyXF5gOzd z*1L<4!gT)jO+RyC##=7U_UFY}55a2J(PfI=OFrAi)<^yW*xqV~`#yKgOX*_*pV+TM z(2^{IdhgdoVQD3Cz*%wf3B<7ZSu6QMEbN!c_m_a7csd5N`bzK*xg)Z=mFf`EW_5&FWs0m2s`|tb_=*z%| z=NExm)w6Od0gC_Z*H2&kl-^Qrm9in`Exp8IRB4N+ke?Fwd_^XT>B}c2sxnZFjkzW< z3jc5N8viT^4zf;FM`Cc+&bye9XID#!RV^`cc9J|7u(%& zRnQN6KO6A-9g~4~B4*Zi=3=}aua;~y1IBiP899ZC_{}GzsALyKuYSAouPr+ntT&J) zO*S#X^J~8#iVOQ8Y=ja75B@K{IteGgkA_yt$VKcY2-@oBYAv^x7FldTvIpPEEqwAN zUr1G-S@aQmx4z3kmfPz>nt-Rr@;!Inkyhia6qenyHu7MX1$-zf>Lo8{Ia@gLr=U{E&#o zhiNr^`tP-$Mbbj95cROk%iUw0(cN2anfdO$w|l1dyo|f;XK^mv-``lCq*l>dhDq8= zhU)v`yTms=@eZoGt}dRT`YD(#_Q8pi8V9ORd_$XLPcmT84=IT+Dtvx|u)>a>d38%J z7eBPH4TNyEYw;-mRG|snV4d~deyb0X44xta?7R3tdH;$0_;)Pd7dtxG)wI{(x9b{* zLarrPcGXkw{o=`DAXP^?edOWZ^Wqx?J2rmt?|r_tVc@@W_b^P1V6<-T*E%TTPsgdV zuC=il)3r8p=OHxbTf|W}*zWy&{|OjBPEWEAqTSISN>z0*7tibg(2jqGkFu|TL_NW8 zuk3^vXe-54Gr(g+j|w*;;D+YX30`7x!xWOF(dE$t@!;>R&!-d z%oJIS^YDm{*`-Ze$fXB@XPb@7Tu-!(+af#H^y4eGV(cJ6Qf6laSZvwv)AG8}F8)$Z-PgyU*{+hu-QA zRkFyoj|qgb`&GuQrM@1*c==o6=F!&! z0$2BpD}&N{Q!hDhV((%f6qH~+wC{A{w!?`#oyt+vCoeOe_#A235l+J8Rr*v zb_0ISH)YHtWgx=Zcd<&l+W2YX3kZ!yC+lE8Lx^E3Rp8`yww8d)k2cD79NX8yuNN37 znbgPlAvXWuv+LR>v~|+0&w%J`z)){1X*T=RR@Gvk2l=NZO(Kz5NeEr;l+Q=k)8jLe zPPgU>F6_m(xu?v-T0I*QuZm4MyMFm7{@?Gi_#16?{6R1|IVIzt=vMK98NNvU;QE@x zL?^9f^8GrX-N*>?*rb;gm3F>ZjZPX03YXdsQ$4mosnW`lZEsHhv;jPUfcabIxLYt)yEf zT)=0+z#+F>oq}C~+#Hqd*EB8RArzcI`YjXQR@siBudqmxx?%T9*+x=do1yVL*E~!FE?$zi>hpabVc?D$a$JkM!SokkZr| zM78$)Jn7f0^9I~)L#(ipnM&POSo6>rg!cIx01*(o{>m@XFIZPHPz!EExuyg2s(?rl zxW;%=9xc5+^z{J=FyLMNk~H}Rh8Ws`yQlkgBa&0u49VHjM}sc^eaS`l9$I(jXc#WG zdqR1R1FT}CU9bn`gr1+UCFGMVGxDw0StA;G4~cQL!-eEP-~hH;b zmE4B420y(#v6iP`)x#aRZ19qalSayrGeF(dAE)o{>lNpM$a-uC3DRD;YM|s+kPw1L zg22fZhiTp|H2Dl;HcCRi2ODLq=&F*54c@d7wjKcJ9@pkhg`Q$57H|pjn$H>&aCQ;C zBM&FTDJDQ#kQQ>l&v2S~6ak@Biq*QVkWsD7DhOd|@K*A!Fl3Q}bO*JE>b1MTRrnk& zFbudU&2yzXCKN9N)XuAa?`#oKu2`PAC++0xf?U!A0b8l`3CUtWQA#g&^yCFGOUSq7 zrI`!SP1z&*-Mr6)0O!6^8PT+yxSvwmYJ$E7?gtRqwBf8jp0xwn?4rrQvENp%ohd!V zu9kM3F%TKU`{~EE6w|ONac;nH78_)s+WP0riZ}*&?+{Lt76$VLIdtU}L6B?oES1Vh z3hcu$RMnHvXRDJ!3>rjZUy;A*R*UwdF*vr$VQ-l{T~+!oLEfeAl!2KE+-@D(qXJ-u0KMAe(|IgMmrPt{aJU~j$Zhlk6Qtdw zB?f6l*32+0_A)3lzy+>&9>e9?>L35U;2y$WL#5oDuH+=zV${yHgvw*SvMWasRR zsY0+0)f2Jz4z!`Ku_*_A-16cA>nfOHcD-JJduF+)Z9iJI=P~ELt5%QoZ9ez=Q%DZ( zmv_7P+*I5}?rjr$alb2GA7s((&4u9%tW@y51VKo(;l%!9>pICoZGedDqENtAp-9;H zOu_FX-Ng?s*PhYZ$Ek)eGETZ16WHI+kIydfUj?^0 z3m;O)q}+=y;zf)JGssEU{IXyIkN98ym1JiWoI_HfYZGZ{Sxq8tLQ?83kvCQ9ti78% zlrhOYH1WGi@OITqShbJ~W9o}a#@wtHK{U>Mfdqn;@|b0-ReJhCxE$owYoAn?jlZ=W z_-kA`K)=Ja+qxylX#)8hpawhX*7d8bVH&d(A~B+@5_!SU-3-OO+1biFZRQI{u3>eBYqU7*kEohis6f?0N2xOaP?_aa!(%J8v zp>2{_B4EQ3K(6v#XWOxSG+8eL(MRA8Ow~yx#%|%DoHyy3is1KBlmy zJZ}mj1)>e-puv6=MzwtAn#T_7Jgfg!XB)j8hSZlVynD$z?JOg0nKC_ySK|zVs2(7A zefhl!-h4CKb;ZDYdHU~Y2LYmJx&LG=?HuoWj~IUgUS zXPzYr!qwkq6GYj*1Q$0b$^%S8K3o8S$;6g@!DfYKKO8V$5J+M-?nOSY-c)gbCg;ih zyTYU`UyxJ@a$Oc^^6WxDTRvz%IgvI8TH9`v1JYez5Y1HC`Xs;QPYh9)6kLMh>tUs1 z|JKc}@jFZC!6&bM_rp@f74or6j>o>nFJw)U$;y-}&gfzo z?M%Yn*hfk;4OD#(F8?=Pl1fh-e;HK2q$RLasgm33nHhpXfbf9`;T&y$pD2>P>GJH6 zKLFt>(aQCnokXB`!3RIcE$qsyPH}=Y>prh?ey@$wXOjCnS4P+mm$rxeo{Wv<_aDh; zjX(GE0d}XU=myxcMQCPrM#OM_sT9f#kHw)?dMC|GH6cyjyRyQgWM;^rE_LY$PzV8v+(YAWV zNsHV^>j69EbhC}aZs#~Y=rw>ZFR)hVsxgtqg$eU+!K34z` zV;*G6_-a1>%Ma5_9wvFCB_TjPI_m-$L|$5~8GGd_t-JO(-mxn7Hmw{vUE6QBcR>`* zLnY4GMhSf=|2!4feIebym?&6Jmow%bdp1hAC(odzyH3?J?pu);=QI-sfNdHhnWDFU&o=kiFxkqeieP2pg zuo*G|lD0j9-QPC{PpOMwb_GM5pL?~{-S^kto7r3k^fI9VKt03Xvu9ZvN(i0taw4QO z*V@@=$HrnATTfKB)Q6PEW4dwp~s|NUhT zbM5^}s!}s7WwNJrFoj8PM_m67?G^bJTfKnbE<48b~wJ-iH|Gj}Oem4Miwr)Si2sRqGNE;4$MUo!0D;YKdGwf+`hGUdz8RHS@7SsEW*# zRiLopmzJA47n|eTK9P(2pE97T2!>O#`5^yS?tKhTkeLexUcK_=pPOCwTn};nl*kWG zy!x%Cs{j1_y?#$U?ef%HANvfD7UjPHgA8>|Ce9&E)0gaiT1=OTAwXr_WDAdjuiP)^ z^XmU0fEc#zAU_}bHyv^n8wW|mkmAdy*bVstI}bTW}jHeH6PWX?{zi<@q;TI)O3$ zg6mWxVE-oeHNg}WPt9G8O923KlAhV~cTf7yc%Ab#knsSodu9DAGI0{bT&bP`$Q)Wl zzyunJ-OJW3hLK7J(vzSHpoo7|%fUzd+a-H8z4qOIo}i;GzYLq*1G$oWz_H)*{ox#g zj;%jW?5_h6m*QU4xX0gmnaZ}1XSPF1q1L?Z1@_eumb&Wn8|`EUr>OMbr_`#Rd7e91uc zH=Djy5bW5z9w(;MN0+su1Aa-h&?EbQ4|Gl@{G!_)^gR80dz`P0`nmlMf35hh!ggCO z=V^sOTJjtHPm81N-EZZ`!NW+m)c2?REQN)A@kiP|GtH*3Z^?qD;%7WRL+g3`Y!`gy ztyQU! zngj#*>RPcJ2>Od(PL4$6G;pU@K8oP=u6&1I@}VB84NOq@`<)m1EfMHI>n>*ZRi8@2 zW%VBtY8ck|kfk3DRb^C2Us=~h`~xB6_oG??d{=t?pR1;WK|lB~_AT-|#>p{11<5sF z?%*rL%Yk(8>uo(%JYPv&5K2kX9A)*gXs@0D#z6d@^Qf0U4fS<7n_HB~V@+BpS;J?Q_^NOh`K(`A!r5B%M1*3nS!Nl{* zk7&`+2e~db!4Vwj`@|y`D⋙evK`4Lr69@8P-c&r_ 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 V*>|#^=HUPU002ovPDHLkV1f!KJhcD- literal 0 HcmV?d00001 diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 415ca23e..a4bf27c0 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -14,6 +14,7 @@ struct MediaDetailView: View { @State private var isLoading = true @State private var userReview: Review? @State private var showReviewSheet = false + @State private var reviewsRefreshId = UUID() @ObservedObject private var themeManager = ThemeManager.shared // Layout constants @@ -153,7 +154,8 @@ struct MediaDetailView: View { // Rating Section (Airbnb style) RatingSectionView( mediaId: mediaId, - mediaType: mediaType + mediaType: mediaType, + refreshId: reviewsRefreshId ) .offset(y: contentOffset) } @@ -178,6 +180,8 @@ struct MediaDetailView: View { Task { await loadUserReview() } + // Refresh the reviews list + reviewsRefreshId = UUID() } } } @@ -219,6 +223,7 @@ struct MediaDetailView: View { struct RatingSectionView: View { let mediaId: Int let mediaType: String + let refreshId: UUID @State private var reviews: [ReviewListItem] = [] @State private var isLoading = true @@ -234,6 +239,11 @@ struct RatingSectionView: View { reviews.filter { !$0.review.isEmpty } } + // Show featured rating (with film strips) only for highly rated content with many reviews + private var isFeaturedRating: Bool { + reviews.count >= 10 && averageRating >= 4.5 + } + var body: some View { VStack(spacing: 0) { // Rating Header @@ -269,81 +279,137 @@ struct RatingSectionView: View { ) .padding(.horizontal, 24) .padding(.top, 24) + } else if isFeaturedRating { + // Featured rating display with film strips (10+ reviews AND rating >= 4.5) + HStack(spacing: 8) { + // Left film strip + Image("FilmStrip") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(height: 140) + .shadow(color: Color.black.opacity(0.1), radius: 3, x: 0, y: 3) + .shadow(color: Color.black.opacity(0.06), radius: 6, x: 0, y: 6) + + // Rating content + VStack(spacing: 4) { + // Large rating number + Text(String(format: "%.1f", averageRating)) + .font(.system(size: 56, weight: .semibold, design: .rounded)) + .foregroundColor(.appForegroundAdaptive) + + // Stars + HStack(spacing: 4) { + ForEach(1...5, id: \.self) { index in + Image(systemName: starIcon(for: index)) + .font(.system(size: 14)) + .foregroundColor(starColor(for: index)) + } + } + + // Reviews count + Text( + "\(reviews.count) \(reviews.count == 1 ? L10n.current.review.lowercased() : L10n.current.tabReviews.lowercased())" + ) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 4) + } + + // Right film strip (mirrored) + Image("FilmStrip") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(height: 140) + .scaleEffect(x: -1, y: 1) + .shadow(color: Color.black.opacity(0.1), radius: 3, x: 0, y: 3) + .shadow(color: Color.black.opacity(0.06), radius: 6, x: 0, y: 6) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 24) } else { - // Rating display - VStack(spacing: 4) { - // Large rating number + // Simple rating display (star + rating + dot + reviews count) + HStack(spacing: 6) { + Image(systemName: "star.fill") + .font(.system(size: 16)) + .foregroundColor(.appForegroundAdaptive) + Text(String(format: "%.1f", averageRating)) - .font(.system(size: 56, weight: .semibold, design: .rounded)) + .font(.system(size: 18, weight: .semibold, design: .rounded)) .foregroundColor(.appForegroundAdaptive) - // Stars - HStack(spacing: 4) { - ForEach(1...5, id: \.self) { index in - Image(systemName: starIcon(for: index)) - .font(.system(size: 14)) - .foregroundColor(starColor(for: index)) - } - } + Circle() + .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) + .frame(width: 4, height: 4) - // Reviews count Text( "\(reviews.count) \(reviews.count == 1 ? L10n.current.review.lowercased() : L10n.current.tabReviews.lowercased())" ) .font(.subheadline) .foregroundColor(.appMutedForegroundAdaptive) - .padding(.top, 4) } - .frame(maxWidth: .infinity) - .padding(.vertical, 24) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) + .padding(.vertical, 16) } } // Horizontal scrolling reviews if !isLoading && !reviewsWithText.isEmpty { ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 0) { + HStack(alignment: .top, spacing: 0) { ForEach(Array(reviewsWithText.enumerated()), id: \.element.id) { index, review in - HStack(spacing: 0) { + HStack(alignment: .top, spacing: 0) { + // Gap before first item + if index == 0 { + Spacer() + .frame(width: 24) + } + ReviewCardView(review: review) - .frame(width: UIScreen.main.bounds.width * 0.8) + .frame(width: UIScreen.main.bounds.width * 0.75) // Vertical divider (except for last item) if index < reviewsWithText.count - 1 { Rectangle() .fill(Color.appBorderAdaptive) .frame(width: 1) - .padding(.vertical, 16) - .padding(.trailing, 16) + .frame(height: 160) + .padding(.horizontal, 24) } } } } - .padding(.leading, 8) } .padding(.top, 8) - // See all button - Button(action: { - // TODO: Navigate to all reviews - }) { - Text(L10n.current.seeAll) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appMutedForegroundAdaptive) - .frame(maxWidth: .infinity) - .padding(.vertical, 14) - .background(Color.appInputFilled) - .cornerRadius(12) + // See all button (only show if 10+ reviews) + if reviews.count >= 10 { + Button(action: { + // TODO: Navigate to all reviews + }) { + Text(L10n.current.seeAll) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(maxWidth: .infinity) + .padding(.vertical, 14) + .background(Color.appInputFilled) + .cornerRadius(12) + } + .disabled(true) + .opacity(0.5) + .padding(.horizontal, 24) + .padding(.top, 16) } - .disabled(true) - .opacity(0.5) - .padding(.horizontal, 24) - .padding(.top, 16) } } .task { await loadReviews() } + .onChange(of: refreshId) { _, _ in + Task { + await loadReviews() + } + } } private func loadReviews() async { @@ -518,8 +584,6 @@ struct ReviewCardView: View { } .frame(height: cardHeight) .frame(maxWidth: .infinity, alignment: .leading) - .padding(.leading, 16) - .padding(.trailing, 24) } private var avatarFallback: some View { From f838541fca65698a01387b7a616c215633c64b7f Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 19:48:26 -0300 Subject: [PATCH 19/77] fix(ui): update adaptive background color for dark mode and adjust ReviewSheet text editor frame height --- apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 4 ++-- apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift index 05653afa..eede1123 100644 --- a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -8,12 +8,12 @@ import SwiftUI extension Color { // MARK: - Adaptive Colors (Light/Dark mode) - // #09090B for dark mode, white for light mode + // #121212 for dark mode (Spotify-style), white for light mode static var appBackgroundAdaptive: Color { Color( UIColor { $0.userInterfaceStyle == .dark - ? UIColor(red: 9 / 255, green: 9 / 255, blue: 11 / 255, alpha: 1) + ? UIColor(red: 18 / 255, green: 18 / 255, blue: 18 / 255, alpha: 1) : UIColor(hue: 0, saturation: 0, brightness: 1, alpha: 1) }) } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift index 9133cb72..fe5ad94f 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift @@ -60,7 +60,7 @@ struct ReviewSheet: View { VStack(alignment: .leading, spacing: 8) { ZStack(alignment: .topLeading) { TextEditor(text: $reviewText) - .frame(minHeight: 120) + .frame(height: 120) .padding(.horizontal, 12) .padding(.vertical, 8) .background(Color.appInputFilled) From 1308d3c15dc38ee0465650c0ed2033a25a63914a Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 20:13:35 -0300 Subject: [PATCH 20/77] feat(localization): add new localization strings for animes and doramas in multiple languages --- .../Plotwist/Localization/Strings.swift | 16 +++++++ .../Views/Details/MediaDetailView.swift | 43 ++++++++++++------- .../Plotwist/Views/Home/HomeView.swift | 1 + 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index b2092d1d..49f80d69 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -53,6 +53,8 @@ enum L10n { cancel: "Cancel", popularMovies: "Popular Movies", popularTVSeries: "Popular TV Series", + animes: "Animes", + doramas: "Doramas", settings: "Settings", theme: "Theme", themeSystem: "System", @@ -125,6 +127,8 @@ enum L10n { cancel: "Cancelar", popularMovies: "Filmes Populares", popularTVSeries: "Séries Populares", + animes: "Animes", + doramas: "Doramas", settings: "Configurações", theme: "Tema", themeSystem: "Sistema", @@ -196,6 +200,8 @@ enum L10n { cancel: "Cancelar", popularMovies: "Películas Populares", popularTVSeries: "Series Populares", + animes: "Animes", + doramas: "Doramas", settings: "Configuración", theme: "Tema", themeSystem: "Sistema", @@ -267,6 +273,8 @@ enum L10n { cancel: "Annuler", popularMovies: "Films Populaires", popularTVSeries: "Séries Populaires", + animes: "Animes", + doramas: "Doramas", settings: "Paramètres", theme: "Thème", themeSystem: "Système", @@ -338,6 +346,8 @@ enum L10n { cancel: "Abbrechen", popularMovies: "Beliebte Filme", popularTVSeries: "Beliebte Serien", + animes: "Animes", + doramas: "Doramas", settings: "Einstellungen", theme: "Design", themeSystem: "System", @@ -409,6 +419,8 @@ enum L10n { cancel: "Annulla", popularMovies: "Film Popolari", popularTVSeries: "Serie Popolari", + animes: "Anime", + doramas: "Dorama", settings: "Impostazioni", theme: "Tema", themeSystem: "Sistema", @@ -479,6 +491,8 @@ enum L10n { cancel: "キャンセル", popularMovies: "人気の映画", popularTVSeries: "人気のテレビシリーズ", + animes: "アニメ", + doramas: "ドラマ", settings: "設定", theme: "テーマ", themeSystem: "システム", @@ -555,6 +569,8 @@ struct Strings { let cancel: String let popularMovies: String let popularTVSeries: String + let animes: String + let doramas: String // Settings let settings: String let theme: String diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index a4bf27c0..f90eef17 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -155,7 +155,12 @@ struct MediaDetailView: View { RatingSectionView( mediaId: mediaId, mediaType: mediaType, - refreshId: reviewsRefreshId + refreshId: reviewsRefreshId, + onEmptyStateTapped: { + if AuthService.shared.isAuthenticated { + showReviewSheet = true + } + } ) .offset(y: contentOffset) } @@ -224,6 +229,7 @@ struct RatingSectionView: View { let mediaId: Int let mediaType: String let refreshId: UUID + var onEmptyStateTapped: (() -> Void)? @State private var reviews: [ReviewListItem] = [] @State private var isLoading = true @@ -261,22 +267,27 @@ struct RatingSectionView: View { .shimmer() .padding(.vertical, 24) } else if reviews.isEmpty { - // Empty state - VStack(spacing: 8) { - Text(L10n.current.beFirstToReview) - .font(.subheadline) - .foregroundColor(.appForegroundAdaptive) - Text(L10n.current.shareYourOpinion) - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) + // Empty state - tappable to open review sheet + Button(action: { + onEmptyStateTapped?() + }) { + VStack(spacing: 8) { + Text(L10n.current.beFirstToReview) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + Text(L10n.current.shareYourOpinion) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 32) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(style: StrokeStyle(lineWidth: 1, dash: [5])) + .foregroundColor(.appBorderAdaptive) + ) } - .frame(maxWidth: .infinity) - .padding(.vertical, 32) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(style: StrokeStyle(lineWidth: 1, dash: [5])) - .foregroundColor(.appBorderAdaptive) - ) + .buttonStyle(.plain) .padding(.horizontal, 24) .padding(.top, 24) } else if isFeaturedRating { diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index 50aaf7d7..a0c5cfee 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -251,6 +251,7 @@ struct SearchTabView: View { } } + // MARK: - Search Section struct SearchSection: View { let title: String From 567efededc06a8017eeddeea87cffbfdf841a3c1 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 20:31:20 -0300 Subject: [PATCH 21/77] feat(home): integrate popular animes and doramas sections in HomeView with asynchronous data loading and localization support --- .../Plotwist/Localization/Strings.swift | 48 +++ .../Plotwist/Services/TMDBService.swift | 52 +++ .../Plotwist/Views/Home/HomeView.swift | 376 +++++++++++++++++- 3 files changed, 472 insertions(+), 4 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 49f80d69..454a68d8 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -53,8 +53,14 @@ enum L10n { cancel: "Cancel", popularMovies: "Popular Movies", popularTVSeries: "Popular TV Series", + popularAnimes: "Popular Animes", + popularDoramas: "Popular Doramas", animes: "Animes", doramas: "Doramas", + seeAllMovies: "See all movies", + seeAllTVSeries: "See all series", + seeAllAnimes: "See all animes", + seeAllDoramas: "See all doramas", settings: "Settings", theme: "Theme", themeSystem: "System", @@ -127,8 +133,14 @@ enum L10n { cancel: "Cancelar", popularMovies: "Filmes Populares", popularTVSeries: "Séries Populares", + popularAnimes: "Animes Populares", + popularDoramas: "Doramas Populares", animes: "Animes", doramas: "Doramas", + seeAllMovies: "Ver todos os filmes", + seeAllTVSeries: "Ver todas as séries", + seeAllAnimes: "Ver todos os animes", + seeAllDoramas: "Ver todos os doramas", settings: "Configurações", theme: "Tema", themeSystem: "Sistema", @@ -200,8 +212,14 @@ enum L10n { cancel: "Cancelar", popularMovies: "Películas Populares", popularTVSeries: "Series Populares", + popularAnimes: "Animes Populares", + popularDoramas: "Doramas Populares", animes: "Animes", doramas: "Doramas", + seeAllMovies: "Ver todas las películas", + seeAllTVSeries: "Ver todas las series", + seeAllAnimes: "Ver todos los animes", + seeAllDoramas: "Ver todos los doramas", settings: "Configuración", theme: "Tema", themeSystem: "Sistema", @@ -273,8 +291,14 @@ enum L10n { cancel: "Annuler", popularMovies: "Films Populaires", popularTVSeries: "Séries Populaires", + popularAnimes: "Animes Populaires", + popularDoramas: "Doramas Populaires", animes: "Animes", doramas: "Doramas", + seeAllMovies: "Voir tous les films", + seeAllTVSeries: "Voir toutes les séries", + seeAllAnimes: "Voir tous les animes", + seeAllDoramas: "Voir tous les doramas", settings: "Paramètres", theme: "Thème", themeSystem: "Système", @@ -346,8 +370,14 @@ enum L10n { cancel: "Abbrechen", popularMovies: "Beliebte Filme", popularTVSeries: "Beliebte Serien", + popularAnimes: "Beliebte Animes", + popularDoramas: "Beliebte Doramas", animes: "Animes", doramas: "Doramas", + seeAllMovies: "Alle Filme anzeigen", + seeAllTVSeries: "Alle Serien anzeigen", + seeAllAnimes: "Alle Animes anzeigen", + seeAllDoramas: "Alle Doramas anzeigen", settings: "Einstellungen", theme: "Design", themeSystem: "System", @@ -419,8 +449,14 @@ enum L10n { cancel: "Annulla", popularMovies: "Film Popolari", popularTVSeries: "Serie Popolari", + popularAnimes: "Anime Popolari", + popularDoramas: "Dorama Popolari", animes: "Anime", doramas: "Dorama", + seeAllMovies: "Vedi tutti i film", + seeAllTVSeries: "Vedi tutte le serie", + seeAllAnimes: "Vedi tutti gli anime", + seeAllDoramas: "Vedi tutti i dorama", settings: "Impostazioni", theme: "Tema", themeSystem: "Sistema", @@ -491,8 +527,14 @@ enum L10n { cancel: "キャンセル", popularMovies: "人気の映画", popularTVSeries: "人気のテレビシリーズ", + popularAnimes: "人気のアニメ", + popularDoramas: "人気のドラマ", animes: "アニメ", doramas: "ドラマ", + seeAllMovies: "すべての映画を見る", + seeAllTVSeries: "すべてのシリーズを見る", + seeAllAnimes: "すべてのアニメを見る", + seeAllDoramas: "すべてのドラマを見る", settings: "設定", theme: "テーマ", themeSystem: "システム", @@ -569,8 +611,14 @@ struct Strings { let cancel: String let popularMovies: String let popularTVSeries: String + let popularAnimes: String + let popularDoramas: String let animes: String let doramas: String + let seeAllMovies: String + let seeAllTVSeries: String + let seeAllAnimes: String + let seeAllDoramas: String // Settings let settings: String let theme: String diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index 617e1c14..93ee885f 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -84,6 +84,58 @@ class TMDBService { return result.results.map { $0.toSearchResult(mediaType: "tv") } } + // MARK: - Popular Animes (Animation genre from Japan) + func getPopularAnimes(language: String = "en-US") async throws -> [SearchResult] { + // Genre 16 = Animation, origin_country = JP + guard let url = URL( + string: + "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_genres=16&with_origin_country=JP" + ) else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return result.results.map { $0.toSearchResult(mediaType: "tv") } + } + + // MARK: - Popular Doramas (Korean dramas) + func getPopularDoramas(language: String = "en-US") async throws -> [SearchResult] { + // origin_country = KR (Korean dramas) + guard let url = URL( + string: + "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_origin_country=KR" + ) else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return result.results.map { $0.toSearchResult(mediaType: "tv") } + } + // MARK: - Movie Details func getMovieDetails(id: Int, language: String = "en-US") async throws -> MovieDetails { guard let url = URL(string: "\(baseURL)/movie/\(id)?language=\(language)") else { diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index a0c5cfee..8398cff9 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -53,17 +53,386 @@ struct HomeView: View { // MARK: - Home Tab struct HomeTabView: View { + @State private var popularMovies: [SearchResult] = [] + @State private var popularTVSeries: [SearchResult] = [] + @State private var popularAnimes: [SearchResult] = [] + @State private var popularDoramas: [SearchResult] = [] + @State private var isLoading = true + @State private var strings = L10n.current + var body: some View { NavigationView { ZStack { Color.appBackgroundAdaptive.ignoresSafeArea() - Text("Home") - .font(.title2) - .foregroundColor(.appMutedForegroundAdaptive) + if isLoading { + ScrollView { + VStack(spacing: 32) { + HomeSectionSkeleton() + HomeSectionSkeleton() + HomeSectionSkeleton() + HomeSectionSkeleton() + } + .padding(.top, 24) + .padding(.bottom, 80) + } + } else { + ScrollView(showsIndicators: false) { + VStack(spacing: 32) { + // Popular Movies + HomeSectionView( + title: strings.popularMovies, + items: popularMovies, + mediaType: "movie", + categoryType: .movies + ) + + // Popular TV Series + HomeSectionView( + title: strings.popularTVSeries, + items: popularTVSeries, + mediaType: "tv", + categoryType: .tvSeries + ) + + // Popular Animes + HomeSectionView( + title: strings.popularAnimes, + items: popularAnimes, + mediaType: "tv", + categoryType: .animes + ) + + // Popular Doramas + HomeSectionView( + title: strings.popularDoramas, + items: popularDoramas, + mediaType: "tv", + categoryType: .doramas + ) + } + .padding(.top, 24) + .padding(.bottom, 80) + } + } } .navigationBarHidden(true) } + .task { + await loadContent() + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + Task { + await loadContent() + } + } + } + + private func loadContent() async { + isLoading = true + defer { isLoading = false } + + let language = Language.current.rawValue + + async let moviesTask = TMDBService.shared.getPopularMovies(language: language) + async let tvTask = TMDBService.shared.getPopularTVSeries(language: language) + async let animesTask = TMDBService.shared.getPopularAnimes(language: language) + async let doramasTask = TMDBService.shared.getPopularDoramas(language: language) + + do { + let (movies, tv, animes, doramas) = try await (moviesTask, tvTask, animesTask, doramasTask) + popularMovies = movies + popularTVSeries = tv + popularAnimes = animes + popularDoramas = doramas + } catch { + popularMovies = [] + popularTVSeries = [] + popularAnimes = [] + popularDoramas = [] + } + } +} + +// MARK: - Home Category Type +enum HomeCategoryType { + case movies + case tvSeries + case animes + case doramas +} + +// MARK: - Home Section View +struct HomeSectionView: View { + let title: String + let items: [SearchResult] + let mediaType: String + let categoryType: HomeCategoryType + + var body: some View { + VStack(alignment: .leading, spacing: 16) { + // Header with title and chevron + NavigationLink { + CategoryListView(categoryType: categoryType) + } label: { + HStack(spacing: 6) { + Text(title) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Image(systemName: "chevron.right") + .font(.system(size: 14, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + } + .padding(.horizontal, 24) + } + + // Horizontal scroll of posters + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(items.prefix(10)) { item in + NavigationLink { + MediaDetailView( + mediaId: item.id, + mediaType: mediaType + ) + } label: { + HomePosterCard(item: item) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 4) + } + .scrollClipDisabled() + } + } +} + +// MARK: - Category List View +struct CategoryListView: View { + let categoryType: HomeCategoryType + + @Environment(\.dismiss) private var dismiss + @State private var items: [SearchResult] = [] + @State private var isLoading = true + @State private var strings = L10n.current + @ObservedObject private var themeManager = ThemeManager.shared + + private var title: String { + switch categoryType { + case .movies: return strings.movies + case .tvSeries: return strings.tvSeries + case .animes: return strings.animes + case .doramas: return strings.doramas + } + } + + private var mediaType: String { + switch categoryType { + case .movies: return "movie" + case .tvSeries, .animes, .doramas: return "tv" + } + } + + private let columns = [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ] + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(title) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + // Placeholder for symmetry + Color.clear + .frame(width: 40, height: 40) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + + // Content + if isLoading { + ScrollView { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(0..<12, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() + } + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } else { + ScrollView { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(items) { item in + NavigationLink { + MediaDetailView(mediaId: item.id, mediaType: mediaType) + } label: { + CategoryPosterCard(item: item) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } + } + } + .navigationBarHidden(true) + .preferredColorScheme(themeManager.current.colorScheme) + .task { + await loadItems() + } + } + + private func loadItems() async { + isLoading = true + defer { isLoading = false } + + let language = Language.current.rawValue + + do { + switch categoryType { + case .movies: + items = try await TMDBService.shared.getPopularMovies(language: language) + case .tvSeries: + items = try await TMDBService.shared.getPopularTVSeries(language: language) + case .animes: + items = try await TMDBService.shared.getPopularAnimes(language: language) + case .doramas: + items = try await TMDBService.shared.getPopularDoramas(language: language) + } + } catch { + items = [] + } + } +} + +// MARK: - Category Poster Card +struct CategoryPosterCard: View { + let item: SearchResult + + var body: some View { + AsyncImage(url: item.imageURL) { phase in + switch phase { + case .empty: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + case .failure: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .overlay( + Image(systemName: "film") + .foregroundColor(.appMutedForegroundAdaptive) + ) + @unknown default: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + } + } + .aspectRatio(2 / 3, contentMode: .fit) + .clipShape(RoundedRectangle(cornerRadius: 16)) + } +} + +// MARK: - Home Poster Card +struct HomePosterCard: View { + let item: SearchResult + + var body: some View { + AsyncImage(url: item.imageURL) { phase in + switch phase { + case .empty: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + case .failure: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .overlay( + Image(systemName: "film") + .foregroundColor(.appMutedForegroundAdaptive) + ) + @unknown default: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + } + } + .frame(width: 120, height: 180) + .clipShape(RoundedRectangle(cornerRadius: 16)) + .posterShadow() + } +} + +// MARK: - Home Section Skeleton +struct HomeSectionSkeleton: View { + var body: some View { + VStack(alignment: .leading, spacing: 16) { + // Title skeleton + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(width: 140, height: 20) + .padding(.horizontal, 24) + .shimmer() + + // Posters skeleton + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(0..<5, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .frame(width: 120, height: 180) + .shimmer() + } + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + } + .scrollClipDisabled() + } } } @@ -251,7 +620,6 @@ struct SearchTabView: View { } } - // MARK: - Search Section struct SearchSection: View { let title: String From 16f7d2bb8b486265fcf923d3745019c70c97877c Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 20:40:53 -0300 Subject: [PATCH 22/77] feat(home): implement HomeTabView, CategoryListView, and SearchTabView for enhanced content browsing with pagination and improved UI components --- .../Plotwist/Services/TMDBService.swift | 54 +- .../Views/Home/CategoryListView.swift | 229 +++++ .../Plotwist/Views/Home/HomeTabView.swift | 220 +++++ .../Plotwist/Views/Home/HomeView.swift | 919 ------------------ .../Plotwist/Views/Home/ProfileTabView.swift | 212 ++++ .../Plotwist/Views/Home/SearchTabView.swift | 328 +++++++ 6 files changed, 1031 insertions(+), 931 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index 93ee885f..4e3dcd64 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -41,8 +41,8 @@ class TMDBService { } // MARK: - Popular Movies - func getPopularMovies(language: String = "en-US") async throws -> [SearchResult] { - guard let url = URL(string: "\(baseURL)/movie/popular?language=\(language)") else { + func getPopularMovies(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult { + guard let url = URL(string: "\(baseURL)/movie/popular?language=\(language)&page=\(page)") else { throw TMDBError.invalidURL } @@ -59,12 +59,17 @@ class TMDBService { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase let result = try decoder.decode(PopularResponse.self, from: data) - return result.results.map { $0.toSearchResult(mediaType: "movie") } + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "movie") }, + page: result.page, + totalPages: result.totalPages + ) } // MARK: - Popular TV Series - func getPopularTVSeries(language: String = "en-US") async throws -> [SearchResult] { - guard let url = URL(string: "\(baseURL)/tv/popular?language=\(language)") else { + func getPopularTVSeries(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult + { + guard let url = URL(string: "\(baseURL)/tv/popular?language=\(language)&page=\(page)") else { throw TMDBError.invalidURL } @@ -81,15 +86,19 @@ class TMDBService { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase let result = try decoder.decode(PopularResponse.self, from: data) - return result.results.map { $0.toSearchResult(mediaType: "tv") } + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "tv") }, + page: result.page, + totalPages: result.totalPages + ) } // MARK: - Popular Animes (Animation genre from Japan) - func getPopularAnimes(language: String = "en-US") async throws -> [SearchResult] { + func getPopularAnimes(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult { // Genre 16 = Animation, origin_country = JP guard let url = URL( string: - "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_genres=16&with_origin_country=JP" + "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_genres=16&with_origin_country=JP&page=\(page)" ) else { throw TMDBError.invalidURL } @@ -107,15 +116,19 @@ class TMDBService { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase let result = try decoder.decode(PopularResponse.self, from: data) - return result.results.map { $0.toSearchResult(mediaType: "tv") } + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "tv") }, + page: result.page, + totalPages: result.totalPages + ) } // MARK: - Popular Doramas (Korean dramas) - func getPopularDoramas(language: String = "en-US") async throws -> [SearchResult] { + func getPopularDoramas(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult { // origin_country = KR (Korean dramas) guard let url = URL( string: - "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_origin_country=KR" + "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_origin_country=KR&page=\(page)" ) else { throw TMDBError.invalidURL } @@ -133,7 +146,11 @@ class TMDBService { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase let result = try decoder.decode(PopularResponse.self, from: data) - return result.results.map { $0.toSearchResult(mediaType: "tv") } + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "tv") }, + page: result.page, + totalPages: result.totalPages + ) } // MARK: - Movie Details @@ -233,9 +250,22 @@ struct Genre: Codable, Identifiable { let name: String } +// MARK: - Paginated Result +struct PaginatedResult { + let results: [SearchResult] + let page: Int + let totalPages: Int + + var hasMorePages: Bool { + page < totalPages + } +} + // MARK: - Popular Response struct PopularResponse: Codable { let results: [PopularItem] + let page: Int + let totalPages: Int } struct PopularItem: Codable { diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift new file mode 100644 index 00000000..87c7fb0f --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift @@ -0,0 +1,229 @@ +// +// CategoryListView.swift +// Plotwist +// + +import SwiftUI + +struct CategoryListView: View { + let categoryType: HomeCategoryType + + @Environment(\.dismiss) private var dismiss + @State private var items: [SearchResult] = [] + @State private var isLoading = true + @State private var isLoadingMore = false + @State private var currentPage = 1 + @State private var totalPages = 1 + @State private var strings = L10n.current + @ObservedObject private var themeManager = ThemeManager.shared + + private var title: String { + switch categoryType { + case .movies: return strings.movies + case .tvSeries: return strings.tvSeries + case .animes: return strings.animes + case .doramas: return strings.doramas + } + } + + private var mediaType: String { + switch categoryType { + case .movies: return "movie" + case .tvSeries, .animes, .doramas: return "tv" + } + } + + private var hasMorePages: Bool { + currentPage < totalPages + } + + private let columns = [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ] + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(title) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + Color.clear + .frame(width: 40, height: 40) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + + // Content + if isLoading && items.isEmpty { + ScrollView { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(0..<12, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() + } + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } else { + ScrollView { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(items) { item in + NavigationLink { + MediaDetailView(mediaId: item.id, mediaType: mediaType) + } label: { + CategoryPosterCard(item: item) + } + .buttonStyle(.plain) + .onAppear { + if item.id == items.suffix(6).first?.id && hasMorePages && !isLoadingMore { + Task { + await loadMoreItems() + } + } + } + } + + if isLoadingMore { + ForEach(0..<3, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() + } + } + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } + } + } + .navigationBarHidden(true) + .preferredColorScheme(themeManager.current.colorScheme) + .task { + await loadItems() + } + } + + private func loadItems() async { + isLoading = true + currentPage = 1 + + let language = Language.current.rawValue + + do { + let result: PaginatedResult + switch categoryType { + case .movies: + result = try await TMDBService.shared.getPopularMovies(language: language, page: 1) + case .tvSeries: + result = try await TMDBService.shared.getPopularTVSeries(language: language, page: 1) + case .animes: + result = try await TMDBService.shared.getPopularAnimes(language: language, page: 1) + case .doramas: + result = try await TMDBService.shared.getPopularDoramas(language: language, page: 1) + } + items = result.results + currentPage = result.page + totalPages = result.totalPages + } catch { + items = [] + } + + isLoading = false + } + + private func loadMoreItems() async { + guard hasMorePages && !isLoadingMore else { return } + + isLoadingMore = true + let nextPage = currentPage + 1 + let language = Language.current.rawValue + + do { + let result: PaginatedResult + switch categoryType { + case .movies: + result = try await TMDBService.shared.getPopularMovies(language: language, page: nextPage) + case .tvSeries: + result = try await TMDBService.shared.getPopularTVSeries(language: language, page: nextPage) + case .animes: + result = try await TMDBService.shared.getPopularAnimes(language: language, page: nextPage) + case .doramas: + result = try await TMDBService.shared.getPopularDoramas(language: language, page: nextPage) + } + + let newItems = result.results.filter { newItem in + !items.contains { $0.id == newItem.id } + } + + items.append(contentsOf: newItems) + currentPage = result.page + totalPages = result.totalPages + } catch { + // Silently fail on pagination errors + } + + isLoadingMore = false + } +} + +// MARK: - Category Poster Card +struct CategoryPosterCard: View { + let item: SearchResult + + var body: some View { + AsyncImage(url: item.imageURL) { phase in + switch phase { + case .empty: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + case .failure: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .overlay( + Image(systemName: "film") + .foregroundColor(.appMutedForegroundAdaptive) + ) + @unknown default: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + } + } + .aspectRatio(2 / 3, contentMode: .fit) + .clipShape(RoundedRectangle(cornerRadius: 16)) + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift new file mode 100644 index 00000000..4422bf63 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift @@ -0,0 +1,220 @@ +// +// HomeTabView.swift +// Plotwist +// + +import SwiftUI + +struct HomeTabView: View { + @State private var popularMovies: [SearchResult] = [] + @State private var popularTVSeries: [SearchResult] = [] + @State private var popularAnimes: [SearchResult] = [] + @State private var popularDoramas: [SearchResult] = [] + @State private var isLoading = true + @State private var strings = L10n.current + + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + if isLoading { + ScrollView { + VStack(spacing: 32) { + HomeSectionSkeleton() + HomeSectionSkeleton() + HomeSectionSkeleton() + HomeSectionSkeleton() + } + .padding(.top, 24) + .padding(.bottom, 80) + } + } else { + ScrollView(showsIndicators: false) { + VStack(spacing: 32) { + HomeSectionView( + title: strings.popularMovies, + items: popularMovies, + mediaType: "movie", + categoryType: .movies + ) + + HomeSectionView( + title: strings.popularTVSeries, + items: popularTVSeries, + mediaType: "tv", + categoryType: .tvSeries + ) + + HomeSectionView( + title: strings.popularAnimes, + items: popularAnimes, + mediaType: "tv", + categoryType: .animes + ) + + HomeSectionView( + title: strings.popularDoramas, + items: popularDoramas, + mediaType: "tv", + categoryType: .doramas + ) + } + .padding(.top, 24) + .padding(.bottom, 80) + } + } + } + .navigationBarHidden(true) + } + .task { + await loadContent() + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + Task { + await loadContent() + } + } + } + + private func loadContent() async { + isLoading = true + defer { isLoading = false } + + let language = Language.current.rawValue + + async let moviesTask = TMDBService.shared.getPopularMovies(language: language) + async let tvTask = TMDBService.shared.getPopularTVSeries(language: language) + async let animesTask = TMDBService.shared.getPopularAnimes(language: language) + async let doramasTask = TMDBService.shared.getPopularDoramas(language: language) + + do { + let (movies, tv, animes, doramas) = try await (moviesTask, tvTask, animesTask, doramasTask) + popularMovies = movies.results + popularTVSeries = tv.results + popularAnimes = animes.results + popularDoramas = doramas.results + } catch { + popularMovies = [] + popularTVSeries = [] + popularAnimes = [] + popularDoramas = [] + } + } +} + +// MARK: - Home Category Type +enum HomeCategoryType { + case movies + case tvSeries + case animes + case doramas +} + +// MARK: - Home Section View +struct HomeSectionView: View { + let title: String + let items: [SearchResult] + let mediaType: String + let categoryType: HomeCategoryType + + var body: some View { + VStack(alignment: .leading, spacing: 16) { + NavigationLink { + CategoryListView(categoryType: categoryType) + } label: { + HStack(spacing: 6) { + Text(title) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Image(systemName: "chevron.right") + .font(.system(size: 14, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + } + .padding(.horizontal, 24) + } + + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(items.prefix(10)) { item in + NavigationLink { + MediaDetailView( + mediaId: item.id, + mediaType: mediaType + ) + } label: { + HomePosterCard(item: item) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 4) + } + .scrollClipDisabled() + } + } +} + +// MARK: - Home Poster Card +struct HomePosterCard: View { + let item: SearchResult + + var body: some View { + AsyncImage(url: item.imageURL) { phase in + switch phase { + case .empty: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + case .failure: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .overlay( + Image(systemName: "film") + .foregroundColor(.appMutedForegroundAdaptive) + ) + @unknown default: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + } + } + .frame(width: 120, height: 180) + .clipShape(RoundedRectangle(cornerRadius: 16)) + .posterShadow() + } +} + +// MARK: - Home Section Skeleton +struct HomeSectionSkeleton: View { + var body: some View { + VStack(alignment: .leading, spacing: 16) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(width: 140, height: 20) + .padding(.horizontal, 24) + .shimmer() + + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(0..<5, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .frame(width: 120, height: 180) + .shimmer() + } + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + } + .scrollClipDisabled() + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index 8398cff9..aae82d01 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -51,925 +51,6 @@ struct HomeView: View { } } -// MARK: - Home Tab -struct HomeTabView: View { - @State private var popularMovies: [SearchResult] = [] - @State private var popularTVSeries: [SearchResult] = [] - @State private var popularAnimes: [SearchResult] = [] - @State private var popularDoramas: [SearchResult] = [] - @State private var isLoading = true - @State private var strings = L10n.current - - var body: some View { - NavigationView { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - if isLoading { - ScrollView { - VStack(spacing: 32) { - HomeSectionSkeleton() - HomeSectionSkeleton() - HomeSectionSkeleton() - HomeSectionSkeleton() - } - .padding(.top, 24) - .padding(.bottom, 80) - } - } else { - ScrollView(showsIndicators: false) { - VStack(spacing: 32) { - // Popular Movies - HomeSectionView( - title: strings.popularMovies, - items: popularMovies, - mediaType: "movie", - categoryType: .movies - ) - - // Popular TV Series - HomeSectionView( - title: strings.popularTVSeries, - items: popularTVSeries, - mediaType: "tv", - categoryType: .tvSeries - ) - - // Popular Animes - HomeSectionView( - title: strings.popularAnimes, - items: popularAnimes, - mediaType: "tv", - categoryType: .animes - ) - - // Popular Doramas - HomeSectionView( - title: strings.popularDoramas, - items: popularDoramas, - mediaType: "tv", - categoryType: .doramas - ) - } - .padding(.top, 24) - .padding(.bottom, 80) - } - } - } - .navigationBarHidden(true) - } - .task { - await loadContent() - } - .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in - strings = L10n.current - Task { - await loadContent() - } - } - } - - private func loadContent() async { - isLoading = true - defer { isLoading = false } - - let language = Language.current.rawValue - - async let moviesTask = TMDBService.shared.getPopularMovies(language: language) - async let tvTask = TMDBService.shared.getPopularTVSeries(language: language) - async let animesTask = TMDBService.shared.getPopularAnimes(language: language) - async let doramasTask = TMDBService.shared.getPopularDoramas(language: language) - - do { - let (movies, tv, animes, doramas) = try await (moviesTask, tvTask, animesTask, doramasTask) - popularMovies = movies - popularTVSeries = tv - popularAnimes = animes - popularDoramas = doramas - } catch { - popularMovies = [] - popularTVSeries = [] - popularAnimes = [] - popularDoramas = [] - } - } -} - -// MARK: - Home Category Type -enum HomeCategoryType { - case movies - case tvSeries - case animes - case doramas -} - -// MARK: - Home Section View -struct HomeSectionView: View { - let title: String - let items: [SearchResult] - let mediaType: String - let categoryType: HomeCategoryType - - var body: some View { - VStack(alignment: .leading, spacing: 16) { - // Header with title and chevron - NavigationLink { - CategoryListView(categoryType: categoryType) - } label: { - HStack(spacing: 6) { - Text(title) - .font(.title3.bold()) - .foregroundColor(.appForegroundAdaptive) - - Image(systemName: "chevron.right") - .font(.system(size: 14, weight: .semibold)) - .foregroundColor(.appForegroundAdaptive) - - Spacer() - } - .padding(.horizontal, 24) - } - - // Horizontal scroll of posters - ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 12) { - ForEach(items.prefix(10)) { item in - NavigationLink { - MediaDetailView( - mediaId: item.id, - mediaType: mediaType - ) - } label: { - HomePosterCard(item: item) - } - .buttonStyle(.plain) - } - } - .padding(.horizontal, 24) - .padding(.vertical, 4) - } - .scrollClipDisabled() - } - } -} - -// MARK: - Category List View -struct CategoryListView: View { - let categoryType: HomeCategoryType - - @Environment(\.dismiss) private var dismiss - @State private var items: [SearchResult] = [] - @State private var isLoading = true - @State private var strings = L10n.current - @ObservedObject private var themeManager = ThemeManager.shared - - private var title: String { - switch categoryType { - case .movies: return strings.movies - case .tvSeries: return strings.tvSeries - case .animes: return strings.animes - case .doramas: return strings.doramas - } - } - - private var mediaType: String { - switch categoryType { - case .movies: return "movie" - case .tvSeries, .animes, .doramas: return "tv" - } - } - - private let columns = [ - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - ] - - var body: some View { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - VStack(spacing: 0) { - // Header - HStack { - Button { - dismiss() - } label: { - Image(systemName: "chevron.left") - .font(.system(size: 18, weight: .semibold)) - .foregroundColor(.appForegroundAdaptive) - .frame(width: 40, height: 40) - .background(Color.appInputFilled) - .clipShape(Circle()) - } - - Spacer() - - Text(title) - .font(.headline) - .foregroundColor(.appForegroundAdaptive) - - Spacer() - - // Placeholder for symmetry - Color.clear - .frame(width: 40, height: 40) - } - .padding(.horizontal, 24) - .padding(.vertical, 16) - - Rectangle() - .fill(Color.appBorderAdaptive) - .frame(height: 1) - - // Content - if isLoading { - ScrollView { - LazyVGrid(columns: columns, spacing: 16) { - ForEach(0..<12, id: \.self) { _ in - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() - } - } - .padding(.horizontal, 24) - .padding(.vertical, 24) - } - } else { - ScrollView { - LazyVGrid(columns: columns, spacing: 16) { - ForEach(items) { item in - NavigationLink { - MediaDetailView(mediaId: item.id, mediaType: mediaType) - } label: { - CategoryPosterCard(item: item) - } - .buttonStyle(.plain) - } - } - .padding(.horizontal, 24) - .padding(.vertical, 24) - } - } - } - } - .navigationBarHidden(true) - .preferredColorScheme(themeManager.current.colorScheme) - .task { - await loadItems() - } - } - - private func loadItems() async { - isLoading = true - defer { isLoading = false } - - let language = Language.current.rawValue - - do { - switch categoryType { - case .movies: - items = try await TMDBService.shared.getPopularMovies(language: language) - case .tvSeries: - items = try await TMDBService.shared.getPopularTVSeries(language: language) - case .animes: - items = try await TMDBService.shared.getPopularAnimes(language: language) - case .doramas: - items = try await TMDBService.shared.getPopularDoramas(language: language) - } - } catch { - items = [] - } - } -} - -// MARK: - Category Poster Card -struct CategoryPosterCard: View { - let item: SearchResult - - var body: some View { - AsyncImage(url: item.imageURL) { phase in - switch phase { - case .empty: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - case .failure: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .overlay( - Image(systemName: "film") - .foregroundColor(.appMutedForegroundAdaptive) - ) - @unknown default: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - } - } - .aspectRatio(2 / 3, contentMode: .fit) - .clipShape(RoundedRectangle(cornerRadius: 16)) - } -} - -// MARK: - Home Poster Card -struct HomePosterCard: View { - let item: SearchResult - - var body: some View { - AsyncImage(url: item.imageURL) { phase in - switch phase { - case .empty: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - case .failure: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .overlay( - Image(systemName: "film") - .foregroundColor(.appMutedForegroundAdaptive) - ) - @unknown default: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - } - } - .frame(width: 120, height: 180) - .clipShape(RoundedRectangle(cornerRadius: 16)) - .posterShadow() - } -} - -// MARK: - Home Section Skeleton -struct HomeSectionSkeleton: View { - var body: some View { - VStack(alignment: .leading, spacing: 16) { - // Title skeleton - RoundedRectangle(cornerRadius: 4) - .fill(Color.appBorderAdaptive) - .frame(width: 140, height: 20) - .padding(.horizontal, 24) - .shimmer() - - // Posters skeleton - ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 12) { - ForEach(0..<5, id: \.self) { _ in - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .frame(width: 120, height: 180) - .shimmer() - } - } - .padding(.horizontal, 24) - .padding(.vertical, 16) - } - .scrollClipDisabled() - } - } -} - -// MARK: - Search Tab -struct SearchTabView: View { - @State private var searchText = "" - @State private var results: [SearchResult] = [] - @State private var popularMovies: [SearchResult] = [] - @State private var popularTVSeries: [SearchResult] = [] - @State private var isLoading = false - @State private var isLoadingPopular = true - @State private var strings = L10n.current - @State private var searchTask: Task? - - private var movies: [SearchResult] { - results.filter { $0.mediaType == "movie" } - } - - private var tvSeries: [SearchResult] { - results.filter { $0.mediaType == "tv" } - } - - private var people: [SearchResult] { - results.filter { $0.mediaType == "person" } - } - - private var isSearching: Bool { - !searchText.isEmpty - } - - var body: some View { - NavigationView { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - VStack(spacing: 0) { - // Search Header - VStack(spacing: 0) { - HStack(spacing: 12) { - HStack(spacing: 12) { - Image(systemName: "magnifyingglass") - .foregroundColor(.appMutedForegroundAdaptive) - - TextField(strings.searchPlaceholder, text: $searchText) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - } - .padding(12) - .background(Color.appInputFilled) - .clipShape(RoundedRectangle(cornerRadius: 12)) - - if !searchText.isEmpty { - Button { - withAnimation(.easeInOut(duration: 0.2)) { - searchText = "" - results = [] - } - } label: { - Text(strings.cancel) - .font(.subheadline) - .foregroundColor(.appForegroundAdaptive) - } - .transition(.opacity.combined(with: .move(edge: .trailing))) - } - } - .animation(.easeInOut(duration: 0.2), value: searchText.isEmpty) - .padding(.horizontal, 24) - .padding(.vertical, 16) - - Rectangle() - .fill(Color.appBorderAdaptive) - .frame(height: 1) - } - - // Results - if isLoading || isLoadingPopular { - ScrollView { - LazyVStack(alignment: .leading, spacing: 24) { - SearchSkeletonSection() - SearchSkeletonSection() - } - .padding(.horizontal, 24) - .padding(.vertical, 24) - } - } else if isSearching { - if results.isEmpty { - Spacer() - Text(strings.noResults) - .foregroundColor(.appMutedForegroundAdaptive) - Spacer() - } else { - ScrollView { - LazyVStack(alignment: .leading, spacing: 24) { - if !movies.isEmpty { - SearchSection(title: strings.movies, results: movies) - } - - if !tvSeries.isEmpty { - SearchSection(title: strings.tvSeries, results: tvSeries) - } - - if !people.isEmpty { - SearchSection(title: strings.people, results: people) - } - } - .padding(.horizontal, 24) - .padding(.vertical, 24) - } - } - } else { - // Show popular content - ScrollView { - LazyVStack(alignment: .leading, spacing: 24) { - if !popularMovies.isEmpty { - SearchSection( - title: strings.popularMovies, results: popularMovies) - } - - if !popularTVSeries.isEmpty { - SearchSection( - title: strings.popularTVSeries, results: popularTVSeries) - } - } - .padding(.horizontal, 24) - .padding(.vertical, 24) - } - } - } - } - .navigationBarHidden(true) - } - .task { - await loadPopularContent() - } - .onChange(of: searchText) { newValue in - searchTask?.cancel() - searchTask = Task { - try? await Task.sleep(nanoseconds: 500_000_000) // 500ms debounce - guard !Task.isCancelled else { return } - await performSearch(query: newValue) - } - } - .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in - strings = L10n.current - } - } - - private func loadPopularContent() async { - isLoadingPopular = true - defer { isLoadingPopular = false } - - let language = Language.current.rawValue - - async let moviesTask = TMDBService.shared.getPopularMovies(language: language) - async let tvTask = TMDBService.shared.getPopularTVSeries(language: language) - - do { - let (movies, tv) = try await (moviesTask, tvTask) - popularMovies = movies - popularTVSeries = tv - } catch { - popularMovies = [] - popularTVSeries = [] - } - } - - private func performSearch(query: String) async { - guard !query.isEmpty else { - results = [] - return - } - - isLoading = true - defer { isLoading = false } - - do { - let response = try await TMDBService.shared.searchMulti( - query: query, - language: Language.current.rawValue - ) - results = response.results - } catch { - results = [] - } - } -} - -// MARK: - Search Section -struct SearchSection: View { - let title: String - let results: [SearchResult] - - private let columns = [ - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - ] - - var body: some View { - VStack(alignment: .leading, spacing: 12) { - Text(title) - .font(.headline) - .foregroundColor(.appForegroundAdaptive) - - LazyVGrid(columns: columns, spacing: 12) { - ForEach(results.prefix(9)) { result in - if result.mediaType != "person" { - NavigationLink { - MediaDetailView( - mediaId: result.id, - mediaType: result.mediaType ?? "movie" - ) - } label: { - PosterCard(result: result) - } - .buttonStyle(.plain) - } else { - PosterCard(result: result) - } - } - } - } - } -} - -// MARK: - Poster Card -struct PosterCard: View { - let result: SearchResult - - var body: some View { - AsyncImage(url: result.imageURL) { phase in - switch phase { - case .empty: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - case .failure: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - .overlay( - Image(systemName: result.mediaType == "person" ? "person.fill" : "film") - .foregroundColor(.appMutedForegroundAdaptive) - ) - @unknown default: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - } - } - .aspectRatio(2 / 3, contentMode: .fit) - .clipShape(RoundedRectangle(cornerRadius: 12)) - .posterShadow() - } -} - -// MARK: - Skeleton Loading -struct SearchSkeletonSection: View { - private let columns = [ - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - ] - - var body: some View { - VStack(alignment: .leading, spacing: 12) { - // Title skeleton - RoundedRectangle(cornerRadius: 4) - .fill(Color.appBorderAdaptive) - .frame(width: 80, height: 16) - .shimmer() - - LazyVGrid(columns: columns, spacing: 12) { - ForEach(0..<6, id: \.self) { _ in - PosterSkeletonCard() - } - } - } - } -} - -struct PosterSkeletonCard: View { - var body: some View { - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() - } -} - -// MARK: - Shimmer Effect -struct ShimmerModifier: ViewModifier { - @State private var phase: CGFloat = 0 - - func body(content: Content) -> some View { - content - .overlay( - GeometryReader { geometry in - LinearGradient( - gradient: Gradient(colors: [ - Color.clear, - Color.white.opacity(0.3), - Color.clear, - ]), - startPoint: .leading, - endPoint: .trailing - ) - .frame(width: geometry.size.width * 2) - .offset(x: -geometry.size.width + (geometry.size.width * 2 * phase)) - } - .mask(content) - ) - .onAppear { - withAnimation(.linear(duration: 1.5).repeatForever(autoreverses: false)) { - phase = 1 - } - } - } -} - -extension View { - func shimmer() -> some View { - modifier(ShimmerModifier()) - } -} - -// MARK: - Profile Tab -struct ProfileTabView: View { - @State private var user: User? - @State private var isLoading = true - @State private var showSettings = false - @State private var strings = L10n.current - - var body: some View { - NavigationView { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - VStack(spacing: 0) { - // Header with settings button - HStack { - Spacer() - Button { - showSettings = true - } label: { - Image(systemName: "gearshape") - .font(.system(size: 18)) - .foregroundColor(.appForegroundAdaptive) - .frame(width: 44, height: 44) - .background(Color.appInputFilled) - .clipShape(Circle()) - } - } - .padding(.horizontal, 24) - .padding(.top, 8) - - Spacer() - - if isLoading { - ProgressView() - } else if let user { - VStack(spacing: 16) { - // Avatar placeholder - Circle() - .fill(Color.appInputFilled) - .frame(width: 80, height: 80) - .overlay( - Text(String(user.username.prefix(1)).uppercased()) - .font(.title.bold()) - .foregroundColor(.appForegroundAdaptive) - ) - - Text("@\(user.username)") - .font(.title2.bold()) - .foregroundColor(.appForegroundAdaptive) - } - } - - Spacer() - - // Sign out button - Button { - AuthService.shared.signOut() - } label: { - HStack { - Image(systemName: "rectangle.portrait.and.arrow.right") - Text(strings.signOut) - } - .foregroundColor(.appDestructive) - } - .padding(.bottom, 32) - } - } - .navigationBarHidden(true) - } - .task { - await loadUser() - } - .sheet(isPresented: $showSettings) { - SettingsSheet() - .standardSheetStyle(detents: [.medium]) - } - .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in - strings = L10n.current - } - } - - private func loadUser() async { - isLoading = true - defer { isLoading = false } - - do { - user = try await AuthService.shared.getCurrentUser() - } catch { - user = nil - } - } -} - -// MARK: - Settings Sheet -struct SettingsSheet: View { - @Environment(\.colorScheme) private var systemColorScheme - @ObservedObject private var themeManager = ThemeManager.shared - @State private var strings = L10n.current - - private var effectiveColorScheme: ColorScheme { - themeManager.current.colorScheme ?? systemColorScheme - } - - var body: some View { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - VStack(spacing: 32) { - // Header - Text(strings.settings) - .font(.title3.bold()) - .foregroundColor(.appForegroundAdaptive) - .padding(.top, 8) - - // Theme Picker - VStack(alignment: .leading, spacing: 12) { - Text(strings.theme) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appForegroundAdaptive) - - HStack(spacing: 12) { - ForEach(AppTheme.allCases, id: \.self) { theme in - ThemeOptionButton( - theme: theme, - isSelected: themeManager.current == theme, - label: themeDisplayName(theme) - ) { - themeManager.current = theme - } - } - } - } - - // Language Picker - VStack(alignment: .leading, spacing: 12) { - Text(strings.language) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appForegroundAdaptive) - - Menu { - ForEach(Language.allCases, id: \.self) { lang in - Button { - Language.current = lang - } label: { - HStack { - Text(lang.displayName) - if Language.current == lang { - Image(systemName: "checkmark") - } - } - } - } - } label: { - HStack { - Text(Language.current.displayName) - Spacer() - Image(systemName: "chevron.down") - } - .padding(12) - .foregroundColor(.appForegroundAdaptive) - .background(Color.appInputFilled) - .clipShape(RoundedRectangle(cornerRadius: 12)) - } - } - - Spacer() - } - .padding(.horizontal, 24) - .padding(.top, 16) - } - .preferredColorScheme(effectiveColorScheme) - .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in - strings = L10n.current - } - } - - private func themeDisplayName(_ theme: AppTheme) -> String { - switch theme { - case .system: return strings.themeSystem - case .light: return strings.themeLight - case .dark: return strings.themeDark - } - } -} - -// MARK: - Theme Option Button -struct ThemeOptionButton: View { - let theme: AppTheme - let isSelected: Bool - let label: String - let action: () -> Void - - var body: some View { - Button(action: action) { - VStack(spacing: 8) { - Image(systemName: theme.icon) - .font(.system(size: 20)) - - Text(label) - .font(.caption) - } - .frame(maxWidth: .infinity) - .padding(.vertical, 16) - .foregroundColor(isSelected ? .appForegroundAdaptive : .appMutedForegroundAdaptive) - .background(isSelected ? Color.appInputFilled : Color.clear) - .clipShape(RoundedRectangle(cornerRadius: 12)) - } - } -} - #Preview { HomeView() } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift new file mode 100644 index 00000000..c573c142 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -0,0 +1,212 @@ +// +// ProfileTabView.swift +// Plotwist +// + +import SwiftUI + +struct ProfileTabView: View { + @State private var user: User? + @State private var isLoading = true + @State private var showSettings = false + @State private var strings = L10n.current + + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header with settings button + HStack { + Spacer() + Button { + showSettings = true + } label: { + Image(systemName: "gearshape") + .font(.system(size: 18)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 44, height: 44) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + } + .padding(.horizontal, 24) + .padding(.top, 8) + + Spacer() + + if isLoading { + ProgressView() + } else if let user { + VStack(spacing: 16) { + Circle() + .fill(Color.appInputFilled) + .frame(width: 80, height: 80) + .overlay( + Text(String(user.username.prefix(1)).uppercased()) + .font(.title.bold()) + .foregroundColor(.appForegroundAdaptive) + ) + + Text("@\(user.username)") + .font(.title2.bold()) + .foregroundColor(.appForegroundAdaptive) + } + } + + Spacer() + + Button { + AuthService.shared.signOut() + } label: { + HStack { + Image(systemName: "rectangle.portrait.and.arrow.right") + Text(strings.signOut) + } + .foregroundColor(.appDestructive) + } + .padding(.bottom, 32) + } + } + .navigationBarHidden(true) + } + .task { + await loadUser() + } + .sheet(isPresented: $showSettings) { + SettingsSheet() + .standardSheetStyle(detents: [.medium]) + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func loadUser() async { + isLoading = true + defer { isLoading = false } + + do { + user = try await AuthService.shared.getCurrentUser() + } catch { + user = nil + } + } +} + +// MARK: - Settings Sheet +struct SettingsSheet: View { + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 32) { + Text(strings.settings) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + .padding(.top, 8) + + // Theme Picker + VStack(alignment: .leading, spacing: 12) { + Text(strings.theme) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + + HStack(spacing: 12) { + ForEach(AppTheme.allCases, id: \.self) { theme in + ThemeOptionButton( + theme: theme, + isSelected: themeManager.current == theme, + label: themeDisplayName(theme) + ) { + themeManager.current = theme + } + } + } + } + + // Language Picker + VStack(alignment: .leading, spacing: 12) { + Text(strings.language) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + + Menu { + ForEach(Language.allCases, id: \.self) { lang in + Button { + Language.current = lang + } label: { + HStack { + Text(lang.displayName) + if Language.current == lang { + Image(systemName: "checkmark") + } + } + } + } + } label: { + HStack { + Text(Language.current.displayName) + Spacer() + Image(systemName: "chevron.down") + } + .padding(12) + .foregroundColor(.appForegroundAdaptive) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 12)) + } + } + + Spacer() + } + .padding(.horizontal, 24) + .padding(.top, 16) + } + .preferredColorScheme(effectiveColorScheme) + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func themeDisplayName(_ theme: AppTheme) -> String { + switch theme { + case .system: return strings.themeSystem + case .light: return strings.themeLight + case .dark: return strings.themeDark + } + } +} + +// MARK: - Theme Option Button +struct ThemeOptionButton: View { + let theme: AppTheme + let isSelected: Bool + let label: String + let action: () -> Void + + var body: some View { + Button(action: action) { + VStack(spacing: 8) { + Image(systemName: theme.icon) + .font(.system(size: 20)) + + Text(label) + .font(.caption) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 16) + .foregroundColor(isSelected ? .appForegroundAdaptive : .appMutedForegroundAdaptive) + .background(isSelected ? Color.appInputFilled : Color.clear) + .clipShape(RoundedRectangle(cornerRadius: 12)) + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift new file mode 100644 index 00000000..8297ec69 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift @@ -0,0 +1,328 @@ +// +// SearchTabView.swift +// Plotwist +// + +import SwiftUI + +struct SearchTabView: View { + @State private var searchText = "" + @State private var results: [SearchResult] = [] + @State private var popularMovies: [SearchResult] = [] + @State private var popularTVSeries: [SearchResult] = [] + @State private var isLoading = false + @State private var isLoadingPopular = true + @State private var strings = L10n.current + @State private var searchTask: Task? + + private var movies: [SearchResult] { + results.filter { $0.mediaType == "movie" } + } + + private var tvSeries: [SearchResult] { + results.filter { $0.mediaType == "tv" } + } + + private var people: [SearchResult] { + results.filter { $0.mediaType == "person" } + } + + private var isSearching: Bool { + !searchText.isEmpty + } + + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Search Header + VStack(spacing: 0) { + HStack(spacing: 12) { + HStack(spacing: 12) { + Image(systemName: "magnifyingglass") + .foregroundColor(.appMutedForegroundAdaptive) + + TextField(strings.searchPlaceholder, text: $searchText) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + } + .padding(12) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 12)) + + if !searchText.isEmpty { + Button { + withAnimation(.easeInOut(duration: 0.2)) { + searchText = "" + results = [] + } + } label: { + Text(strings.cancel) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + } + .transition(.opacity.combined(with: .move(edge: .trailing))) + } + } + .animation(.easeInOut(duration: 0.2), value: searchText.isEmpty) + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + } + + // Results + if isLoading || isLoadingPopular { + ScrollView { + LazyVStack(alignment: .leading, spacing: 24) { + SearchSkeletonSection() + SearchSkeletonSection() + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } else if isSearching { + if results.isEmpty { + Spacer() + Text(strings.noResults) + .foregroundColor(.appMutedForegroundAdaptive) + Spacer() + } else { + ScrollView { + LazyVStack(alignment: .leading, spacing: 24) { + if !movies.isEmpty { + SearchSection(title: strings.movies, results: movies) + } + + if !tvSeries.isEmpty { + SearchSection(title: strings.tvSeries, results: tvSeries) + } + + if !people.isEmpty { + SearchSection(title: strings.people, results: people) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } + } else { + // Show popular content + ScrollView { + LazyVStack(alignment: .leading, spacing: 24) { + if !popularMovies.isEmpty { + SearchSection( + title: strings.popularMovies, results: popularMovies) + } + + if !popularTVSeries.isEmpty { + SearchSection( + title: strings.popularTVSeries, results: popularTVSeries) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } + } + } + .navigationBarHidden(true) + } + .task { + await loadPopularContent() + } + .onChange(of: searchText) { newValue in + searchTask?.cancel() + searchTask = Task { + try? await Task.sleep(nanoseconds: 500_000_000) // 500ms debounce + guard !Task.isCancelled else { return } + await performSearch(query: newValue) + } + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func loadPopularContent() async { + isLoadingPopular = true + defer { isLoadingPopular = false } + + let language = Language.current.rawValue + + async let moviesTask = TMDBService.shared.getPopularMovies(language: language) + async let tvTask = TMDBService.shared.getPopularTVSeries(language: language) + + do { + let (movies, tv) = try await (moviesTask, tvTask) + popularMovies = movies.results + popularTVSeries = tv.results + } catch { + popularMovies = [] + popularTVSeries = [] + } + } + + private func performSearch(query: String) async { + guard !query.isEmpty else { + results = [] + return + } + + isLoading = true + defer { isLoading = false } + + do { + let response = try await TMDBService.shared.searchMulti( + query: query, + language: Language.current.rawValue + ) + results = response.results + } catch { + results = [] + } + } +} + +// MARK: - Search Section +struct SearchSection: View { + let title: String + let results: [SearchResult] + + private let columns = [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ] + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + Text(title) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + LazyVGrid(columns: columns, spacing: 12) { + ForEach(results.prefix(9)) { result in + if result.mediaType != "person" { + NavigationLink { + MediaDetailView( + mediaId: result.id, + mediaType: result.mediaType ?? "movie" + ) + } label: { + PosterCard(result: result) + } + .buttonStyle(.plain) + } else { + PosterCard(result: result) + } + } + } + } + } +} + +// MARK: - Poster Card +struct PosterCard: View { + let result: SearchResult + + var body: some View { + AsyncImage(url: result.imageURL) { phase in + switch phase { + case .empty: + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + case .failure: + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + .overlay( + Image(systemName: result.mediaType == "person" ? "person.fill" : "film") + .foregroundColor(.appMutedForegroundAdaptive) + ) + @unknown default: + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + } + } + .aspectRatio(2 / 3, contentMode: .fit) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterShadow() + } +} + +// MARK: - Skeleton Views +struct SearchSkeletonSection: View { + private let columns = [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ] + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(width: 80, height: 16) + .shimmer() + + LazyVGrid(columns: columns, spacing: 12) { + ForEach(0..<6, id: \.self) { _ in + PosterSkeletonCard() + } + } + } + } +} + +struct PosterSkeletonCard: View { + var body: some View { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() + } +} + +// MARK: - Shimmer Effect +struct ShimmerModifier: ViewModifier { + @State private var phase: CGFloat = 0 + + func body(content: Content) -> some View { + content + .overlay( + GeometryReader { geometry in + LinearGradient( + gradient: Gradient(colors: [ + Color.clear, + Color.white.opacity(0.3), + Color.clear, + ]), + startPoint: .leading, + endPoint: .trailing + ) + .frame(width: geometry.size.width * 2) + .offset(x: -geometry.size.width + (geometry.size.width * 2 * phase)) + } + .mask(content) + ) + .onAppear { + withAnimation(.linear(duration: 1.5).repeatForever(autoreverses: false)) { + phase = 1 + } + } + } +} + +extension View { + func shimmer() -> some View { + modifier(ShimmerModifier()) + } +} From cbfdc5ab64f56ff58e54439204cf850271ffc9b0 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 21:54:39 -0300 Subject: [PATCH 23/77] feat(home): add SegmentedTabBar and integrate movie subcategories in CategoryListView for improved navigation and content filtering --- .../Plotwist/Components/SegmentedTabBar.swift | 89 ++++++++++++ .../Plotwist/Localization/Strings.swift | 56 +++++++- .../Plotwist/Services/TMDBService.swift | 108 ++++++++++++-- .../Views/Home/CategoryListView.swift | 135 +++++++++++++----- .../Plotwist/Views/Home/HomeTabView.swift | 4 +- 5 files changed, 342 insertions(+), 50 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Components/SegmentedTabBar.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/SegmentedTabBar.swift b/apps/ios/Plotwist/Plotwist/Components/SegmentedTabBar.swift new file mode 100644 index 00000000..b88c97ae --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/SegmentedTabBar.swift @@ -0,0 +1,89 @@ +// +// SegmentedTabBar.swift +// Plotwist +// + +import SwiftUI + +// MARK: - Segmented Tab Protocol +protocol SegmentedTab: Hashable, CaseIterable { + var title: String { get } + var isDisabled: Bool { get } +} + +// Default implementation for isDisabled +extension SegmentedTab { + var isDisabled: Bool { false } +} + +// MARK: - Segmented Tab Bar +struct SegmentedTabBar: View where Tab.AllCases: RandomAccessCollection { + @Binding var selectedTab: Tab + var onTabChange: (() -> Void)? + + var body: some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 4) { + ForEach(Array(Tab.allCases), id: \.self) { tab in + SegmentedTabItem( + title: tab.title, + isSelected: selectedTab == tab, + isDisabled: tab.isDisabled + ) { + if !tab.isDisabled { + selectedTab = tab + onTabChange?() + } + } + } + } + .padding(4) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 14)) + } + .scrollClipDisabled() + } +} + +// MARK: - Segmented Tab Item +struct SegmentedTabItem: View { + let title: String + let isSelected: Bool + let isDisabled: Bool + let action: () -> Void + + var body: some View { + Button(action: action) { + Text(title) + .font(.subheadline.weight(.medium)) + .foregroundColor(foregroundColor) + .padding(.horizontal, 14) + .padding(.vertical, 8) + .background(backgroundColor) + .clipShape(RoundedRectangle(cornerRadius: 10)) + .shadow( + color: isSelected && !isDisabled + ? Color.black.opacity(0.08) + : Color.clear, + radius: 2, + x: 0, + y: 1 + ) + } + .disabled(isDisabled) + } + + private var foregroundColor: Color { + if isDisabled { + return Color.appMutedForegroundAdaptive.opacity(0.5) + } + return isSelected ? .appForegroundAdaptive : .appMutedForegroundAdaptive + } + + private var backgroundColor: Color { + if isSelected && !isDisabled { + return Color.appBackgroundAdaptive + } + return Color.clear + } +} diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 454a68d8..1d0ad49f 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -90,7 +90,13 @@ enum L10n { tabVideos: "Videos", beFirstToReview: "Be the first to leave your opinion", seeAll: "See all reviews", - showMore: "Show more" + showMore: "Show more", + // Movie Categories + nowPlaying: "Now Playing", + popular: "Popular", + topRated: "Top Rated", + upcoming: "Upcoming", + discover: "Discover" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -169,7 +175,12 @@ enum L10n { tabVideos: "Vídeos", beFirstToReview: "Seja o primeiro a deixar sua opinião", seeAll: "Ver todas as avaliações", - showMore: "Ver mais" + showMore: "Ver mais", + nowPlaying: "Em Cartaz", + popular: "Popular", + topRated: "Mais Bem Avaliados", + upcoming: "Em Breve", + discover: "Descobrir" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -248,7 +259,12 @@ enum L10n { tabVideos: "Videos", beFirstToReview: "Sé el primero en dejar tu opinión", seeAll: "Ver todas las reseñas", - showMore: "Ver más" + showMore: "Ver más", + nowPlaying: "En Cartelera", + popular: "Popular", + topRated: "Mejor Valoradas", + upcoming: "Próximamente", + discover: "Descubrir" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -327,7 +343,12 @@ enum L10n { tabVideos: "Vidéos", beFirstToReview: "Soyez le premier à donner votre avis", seeAll: "Voir tous les avis", - showMore: "Voir plus" + showMore: "Voir plus", + nowPlaying: "À l'Affiche", + popular: "Populaire", + topRated: "Mieux Notés", + upcoming: "Prochainement", + discover: "Découvrir" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -406,7 +427,12 @@ enum L10n { tabVideos: "Videos", beFirstToReview: "Sei der Erste, der seine Meinung teilt", seeAll: "Alle Bewertungen anzeigen", - showMore: "Mehr anzeigen" + showMore: "Mehr anzeigen", + nowPlaying: "Jetzt im Kino", + popular: "Beliebt", + topRated: "Bestbewertet", + upcoming: "Demnächst", + discover: "Entdecken" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -485,7 +511,12 @@ enum L10n { tabVideos: "Video", beFirstToReview: "Sii il primo a lasciare la tua opinione", seeAll: "Vedi tutte le recensioni", - showMore: "Mostra di più" + showMore: "Mostra di più", + nowPlaying: "In Sala", + popular: "Popolari", + topRated: "Più Votati", + upcoming: "Prossimamente", + discover: "Scopri" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -563,7 +594,12 @@ enum L10n { tabVideos: "動画", beFirstToReview: "最初にレビューを書いてください", seeAll: "すべてのレビューを見る", - showMore: "もっと見る" + showMore: "もっと見る", + nowPlaying: "上映中", + popular: "人気", + topRated: "高評価", + upcoming: "近日公開", + discover: "発見" ), ] } @@ -652,4 +688,10 @@ struct Strings { let beFirstToReview: String let seeAll: String let showMore: String + // Movie Categories + let nowPlaying: String + let popular: String + let topRated: String + let upcoming: String + let discover: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index 4e3dcd64..f7c19b19 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -66,6 +66,91 @@ class TMDBService { ) } + // MARK: - Now Playing Movies + func getNowPlayingMovies(language: String = "en-US", page: Int = 1) async throws + -> PaginatedResult + { + guard let url = URL(string: "\(baseURL)/movie/now_playing?language=\(language)&page=\(page)") + else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "movie") }, + page: result.page, + totalPages: result.totalPages + ) + } + + // MARK: - Top Rated Movies + func getTopRatedMovies(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult + { + guard let url = URL(string: "\(baseURL)/movie/top_rated?language=\(language)&page=\(page)") + else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "movie") }, + page: result.page, + totalPages: result.totalPages + ) + } + + // MARK: - Upcoming Movies + func getUpcomingMovies(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult + { + guard let url = URL(string: "\(baseURL)/movie/upcoming?language=\(language)&page=\(page)") + else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "movie") }, + page: result.page, + totalPages: result.totalPages + ) + } + // MARK: - Popular TV Series func getPopularTVSeries(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult { @@ -96,10 +181,12 @@ class TMDBService { // MARK: - Popular Animes (Animation genre from Japan) func getPopularAnimes(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult { // Genre 16 = Animation, origin_country = JP - guard let url = URL( - string: - "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_genres=16&with_origin_country=JP&page=\(page)" - ) else { + guard + let url = URL( + string: + "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_genres=16&with_origin_country=JP&page=\(page)" + ) + else { throw TMDBError.invalidURL } @@ -124,12 +211,15 @@ class TMDBService { } // MARK: - Popular Doramas (Korean dramas) - func getPopularDoramas(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult { + func getPopularDoramas(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult + { // origin_country = KR (Korean dramas) - guard let url = URL( - string: - "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_origin_country=KR&page=\(page)" - ) else { + guard + let url = URL( + string: + "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_origin_country=KR&page=\(page)" + ) + else { throw TMDBError.invalidURL } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift index 87c7fb0f..fbd314bc 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift @@ -5,6 +5,30 @@ import SwiftUI +// MARK: - Movie Subcategory +enum MovieSubcategory: CaseIterable, SegmentedTab { + case nowPlaying + case popular + case topRated + case upcoming + case discover + + var title: String { + let strings = L10n.current + switch self { + case .nowPlaying: return strings.nowPlaying + case .popular: return strings.popular + case .topRated: return strings.topRated + case .upcoming: return strings.upcoming + case .discover: return strings.discover + } + } + + var isDisabled: Bool { + self == .discover + } +} + struct CategoryListView: View { let categoryType: HomeCategoryType @@ -15,6 +39,7 @@ struct CategoryListView: View { @State private var currentPage = 1 @State private var totalPages = 1 @State private var strings = L10n.current + @State private var selectedMovieSubcategory: MovieSubcategory = .nowPlaying @ObservedObject private var themeManager = ThemeManager.shared private var title: String { @@ -37,6 +62,18 @@ struct CategoryListView: View { currentPage < totalPages } + private var stickyTabBar: some View { + SegmentedTabBar(selectedTab: $selectedMovieSubcategory) { + Task { + await loadItems() + } + } + .padding(.vertical, 16) + .padding(.horizontal, 24) + .frame(maxWidth: .infinity) + .background(Color.appBackgroundAdaptive) + } + private let columns = [ GridItem(.flexible(), spacing: 12), GridItem(.flexible(), spacing: 12), @@ -82,47 +119,63 @@ struct CategoryListView: View { // Content if isLoading && items.isEmpty { ScrollView { - LazyVGrid(columns: columns, spacing: 16) { - ForEach(0..<12, id: \.self) { _ in - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() + LazyVStack(spacing: 0, pinnedViews: categoryType == .movies ? [.sectionHeaders] : []) { + Section { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(0..<12, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() + } + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } header: { + if categoryType == .movies { + stickyTabBar + } } } - .padding(.horizontal, 24) - .padding(.vertical, 24) } } else { ScrollView { - LazyVGrid(columns: columns, spacing: 16) { - ForEach(items) { item in - NavigationLink { - MediaDetailView(mediaId: item.id, mediaType: mediaType) - } label: { - CategoryPosterCard(item: item) - } - .buttonStyle(.plain) - .onAppear { - if item.id == items.suffix(6).first?.id && hasMorePages && !isLoadingMore { - Task { - await loadMoreItems() + LazyVStack(spacing: 0, pinnedViews: categoryType == .movies ? [.sectionHeaders] : []) { + Section { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(items) { item in + NavigationLink { + MediaDetailView(mediaId: item.id, mediaType: mediaType) + } label: { + CategoryPosterCard(item: item) + } + .buttonStyle(.plain) + .onAppear { + if item.id == items.suffix(6).first?.id && hasMorePages && !isLoadingMore { + Task { + await loadMoreItems() + } + } } } - } - } - if isLoadingMore { - ForEach(0..<3, id: \.self) { _ in - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() + if isLoadingMore { + ForEach(0..<3, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() + } + } + } + .padding(.horizontal, 24) + .padding(.vertical, 24) + } header: { + if categoryType == .movies { + stickyTabBar } } } - .padding(.horizontal, 24) - .padding(.vertical, 24) } } } @@ -144,7 +197,7 @@ struct CategoryListView: View { let result: PaginatedResult switch categoryType { case .movies: - result = try await TMDBService.shared.getPopularMovies(language: language, page: 1) + result = try await loadMoviesForSubcategory(language: language, page: 1) case .tvSeries: result = try await TMDBService.shared.getPopularTVSeries(language: language, page: 1) case .animes: @@ -162,6 +215,23 @@ struct CategoryListView: View { isLoading = false } + private func loadMoviesForSubcategory(language: String, page: Int) async throws -> PaginatedResult + { + switch selectedMovieSubcategory { + case .nowPlaying: + return try await TMDBService.shared.getNowPlayingMovies(language: language, page: page) + case .popular: + return try await TMDBService.shared.getPopularMovies(language: language, page: page) + case .topRated: + return try await TMDBService.shared.getTopRatedMovies(language: language, page: page) + case .upcoming: + return try await TMDBService.shared.getUpcomingMovies(language: language, page: page) + case .discover: + // Discover is disabled, fallback to popular + return try await TMDBService.shared.getPopularMovies(language: language, page: page) + } + } + private func loadMoreItems() async { guard hasMorePages && !isLoadingMore else { return } @@ -173,7 +243,7 @@ struct CategoryListView: View { let result: PaginatedResult switch categoryType { case .movies: - result = try await TMDBService.shared.getPopularMovies(language: language, page: nextPage) + result = try await loadMoviesForSubcategory(language: language, page: nextPage) case .tvSeries: result = try await TMDBService.shared.getPopularTVSeries(language: language, page: nextPage) case .animes: @@ -225,5 +295,6 @@ struct CategoryPosterCard: View { } .aspectRatio(2 / 3, contentMode: .fit) .clipShape(RoundedRectangle(cornerRadius: 16)) + .shadow(color: Color.black.opacity(0.15), radius: 4, x: 0, y: 2) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift index 4422bf63..73664fda 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift @@ -126,11 +126,11 @@ struct HomeSectionView: View { } label: { HStack(spacing: 6) { Text(title) - .font(.title3.bold()) + .font(.headline) .foregroundColor(.appForegroundAdaptive) Image(systemName: "chevron.right") - .font(.system(size: 14, weight: .semibold)) + .font(.system(size: 12, weight: .semibold)) .foregroundColor(.appForegroundAdaptive) Spacer() From 83f32bb1e79b585bac705b4d9472cc863048e8bd Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 22:01:09 -0300 Subject: [PATCH 24/77] refactor(home): update CategoryListView to use ScrollViewReader for improved scrolling behavior and adjust padding in HomeTabView for better layout --- .../Views/Home/CategoryListView.swift | 104 ++++++++++-------- .../Plotwist/Views/Home/HomeTabView.swift | 2 +- 2 files changed, 58 insertions(+), 48 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift index fbd314bc..4475d4aa 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift @@ -62,16 +62,18 @@ struct CategoryListView: View { currentPage < totalPages } - private var stickyTabBar: some View { + private func stickyTabBar(scrollProxy: ScrollViewProxy) -> some View { SegmentedTabBar(selectedTab: $selectedMovieSubcategory) { + withAnimation { + scrollProxy.scrollTo("content-top", anchor: .top) + } Task { await loadItems() } } - .padding(.vertical, 16) + .id("content-top") + .padding(.vertical, 12) .padding(.horizontal, 24) - .frame(maxWidth: .infinity) - .background(Color.appBackgroundAdaptive) } private let columns = [ @@ -118,61 +120,69 @@ struct CategoryListView: View { // Content if isLoading && items.isEmpty { - ScrollView { - LazyVStack(spacing: 0, pinnedViews: categoryType == .movies ? [.sectionHeaders] : []) { - Section { - LazyVGrid(columns: columns, spacing: 16) { - ForEach(0..<12, id: \.self) { _ in - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() + ScrollViewReader { proxy in + ScrollView { + LazyVStack(spacing: 0, pinnedViews: categoryType == .movies ? [.sectionHeaders] : []) + { + Section { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(0..<12, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() + } + } + .padding(.horizontal, 24) + .padding(.top, 16) + .padding(.bottom, 24) + } header: { + if categoryType == .movies { + stickyTabBar(scrollProxy: proxy) } - } - .padding(.horizontal, 24) - .padding(.vertical, 24) - } header: { - if categoryType == .movies { - stickyTabBar } } } } } else { - ScrollView { - LazyVStack(spacing: 0, pinnedViews: categoryType == .movies ? [.sectionHeaders] : []) { - Section { - LazyVGrid(columns: columns, spacing: 16) { - ForEach(items) { item in - NavigationLink { - MediaDetailView(mediaId: item.id, mediaType: mediaType) - } label: { - CategoryPosterCard(item: item) - } - .buttonStyle(.plain) - .onAppear { - if item.id == items.suffix(6).first?.id && hasMorePages && !isLoadingMore { - Task { - await loadMoreItems() + ScrollViewReader { proxy in + ScrollView { + LazyVStack(spacing: 0, pinnedViews: categoryType == .movies ? [.sectionHeaders] : []) + { + Section { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(items) { item in + NavigationLink { + MediaDetailView(mediaId: item.id, mediaType: mediaType) + } label: { + CategoryPosterCard(item: item) + } + .buttonStyle(.plain) + .onAppear { + if item.id == items.suffix(6).first?.id && hasMorePages && !isLoadingMore { + Task { + await loadMoreItems() + } } } } - } - if isLoadingMore { - ForEach(0..<3, id: \.self) { _ in - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() + if isLoadingMore { + ForEach(0..<3, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() + } } } - } - .padding(.horizontal, 24) - .padding(.vertical, 24) - } header: { - if categoryType == .movies { - stickyTabBar + .padding(.horizontal, 24) + .padding(.top, 16) + .padding(.bottom, 24) + } header: { + if categoryType == .movies { + stickyTabBar(scrollProxy: proxy) + } } } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift index 73664fda..0b7ce933 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift @@ -120,7 +120,7 @@ struct HomeSectionView: View { let categoryType: HomeCategoryType var body: some View { - VStack(alignment: .leading, spacing: 16) { + VStack(alignment: .leading, spacing: 12) { NavigationLink { CategoryListView(categoryType: categoryType) } label: { From 328042983241a2727480dc3aa7545317e00b2712 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 22:55:12 -0300 Subject: [PATCH 25/77] feat(tvSeries): implement UnderlineTabBar and TV series subcategories in CategoryListView for enhanced navigation and content filtering --- .../Plotwist/Components/UnderlineTabBar.swift | 90 ++++++ .../Plotwist/Localization/Strings.swift | 32 ++- .../Plotwist/Services/TMDBService.swift | 123 +++++++- .../Views/Home/CategoryListView.swift | 266 +++++++++++------- 4 files changed, 403 insertions(+), 108 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Components/UnderlineTabBar.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/UnderlineTabBar.swift b/apps/ios/Plotwist/Plotwist/Components/UnderlineTabBar.swift new file mode 100644 index 00000000..0fd128b8 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/UnderlineTabBar.swift @@ -0,0 +1,90 @@ +// +// UnderlineTabBar.swift +// Plotwist +// + +import SwiftUI + +// MARK: - Underline Tab Bar +struct UnderlineTabBar: View where Tab.AllCases: RandomAccessCollection { + @Binding var selectedTab: Tab + var onTabChange: (() -> Void)? + @Namespace private var namespace + + var body: some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 0) { + ForEach(Array(Tab.allCases.enumerated()), id: \.element) { index, tab in + UnderlineTabItem( + title: tab.title, + isSelected: selectedTab == tab, + isDisabled: tab.isDisabled, + isFirst: index == 0, + namespace: namespace + ) { + if !tab.isDisabled { + withAnimation(.spring(response: 0.3, dampingFraction: 0.7)) { + selectedTab = tab + } + onTabChange?() + } + } + } + } + .padding(.leading, 24) + .padding(.trailing, 24) + } + .scrollClipDisabled() + .background( + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1), + alignment: .bottom + ) + } +} + +// MARK: - Underline Tab Item +struct UnderlineTabItem: View { + let title: String + let isSelected: Bool + let isDisabled: Bool + let isFirst: Bool + let namespace: Namespace.ID + let action: () -> Void + + var body: some View { + Button(action: action) { + VStack(spacing: 0) { + Text(title) + .font(.subheadline.weight(.medium)) + .foregroundColor(foregroundColor) + .padding(.leading, isFirst ? 0 : 16) + .padding(.trailing, 16) + .padding(.vertical, 12) + + // Indicator matching text width, attached to bottom border + // Only rounded at top + UnevenRoundedRectangle( + topLeadingRadius: 4, + bottomLeadingRadius: 0, + bottomTrailingRadius: 0, + topTrailingRadius: 4 + ) + .fill(isSelected ? Color.appForegroundAdaptive : Color.clear) + .frame(height: 4) + .padding(.leading, isFirst ? 0 : 16) + .padding(.trailing, 16) + .matchedGeometryEffect(id: "underline", in: namespace, isSource: isSelected) + } + } + .disabled(isDisabled) + } + + private var foregroundColor: Color { + if isDisabled { + return Color.appMutedForegroundAdaptive.opacity(0.5) + } + return isSelected ? .appForegroundAdaptive : .appMutedForegroundAdaptive + } +} diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 1d0ad49f..755e2c6f 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -96,7 +96,10 @@ enum L10n { popular: "Popular", topRated: "Top Rated", upcoming: "Upcoming", - discover: "Discover" + discover: "Discover", + // TV Series Categories + airingToday: "Airing Today", + onTheAir: "On The Air" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -180,7 +183,9 @@ enum L10n { popular: "Popular", topRated: "Mais Bem Avaliados", upcoming: "Em Breve", - discover: "Descobrir" + discover: "Descobrir", + airingToday: "No Ar Hoje", + onTheAir: "Em Exibição" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -264,7 +269,9 @@ enum L10n { popular: "Popular", topRated: "Mejor Valoradas", upcoming: "Próximamente", - discover: "Descubrir" + discover: "Descubrir", + airingToday: "En Emisión Hoy", + onTheAir: "En Emisión" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -348,7 +355,9 @@ enum L10n { popular: "Populaire", topRated: "Mieux Notés", upcoming: "Prochainement", - discover: "Découvrir" + discover: "Découvrir", + airingToday: "Diffusé Aujourd'hui", + onTheAir: "En Cours" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -432,7 +441,9 @@ enum L10n { popular: "Beliebt", topRated: "Bestbewertet", upcoming: "Demnächst", - discover: "Entdecken" + discover: "Entdecken", + airingToday: "Heute im TV", + onTheAir: "Auf Sendung" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -516,7 +527,9 @@ enum L10n { popular: "Popolari", topRated: "Più Votati", upcoming: "Prossimamente", - discover: "Scopri" + discover: "Scopri", + airingToday: "In Onda Oggi", + onTheAir: "In Onda" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -599,7 +612,9 @@ enum L10n { popular: "人気", topRated: "高評価", upcoming: "近日公開", - discover: "発見" + discover: "発見", + airingToday: "本日放送", + onTheAir: "放送中" ), ] } @@ -694,4 +709,7 @@ struct Strings { let topRated: String let upcoming: String let discover: String + // TV Series Categories + let airingToday: String + let onTheAir: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index f7c19b19..09030ed1 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -178,7 +178,94 @@ class TMDBService { ) } - // MARK: - Popular Animes (Animation genre from Japan) + // MARK: - Airing Today TV Series + func getAiringTodayTVSeries(language: String = "en-US", page: Int = 1) async throws + -> PaginatedResult + { + guard let url = URL(string: "\(baseURL)/tv/airing_today?language=\(language)&page=\(page)") + else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "tv") }, + page: result.page, + totalPages: result.totalPages + ) + } + + // MARK: - On The Air TV Series + func getOnTheAirTVSeries(language: String = "en-US", page: Int = 1) async throws + -> PaginatedResult + { + guard let url = URL(string: "\(baseURL)/tv/on_the_air?language=\(language)&page=\(page)") + else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "tv") }, + page: result.page, + totalPages: result.totalPages + ) + } + + // MARK: - Top Rated TV Series + func getTopRatedTVSeries(language: String = "en-US", page: Int = 1) async throws + -> PaginatedResult + { + guard let url = URL(string: "\(baseURL)/tv/top_rated?language=\(language)&page=\(page)") + else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "tv") }, + page: result.page, + totalPages: result.totalPages + ) + } + + // MARK: - Popular Animes TV (Animation genre from Japan) func getPopularAnimes(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult { // Genre 16 = Animation, origin_country = JP guard @@ -210,6 +297,40 @@ class TMDBService { ) } + // MARK: - Popular Anime Movies (Animation genre from Japan) + func getPopularAnimeMovies(language: String = "en-US", page: Int = 1) async throws + -> PaginatedResult + { + // Genre 16 = Animation, origin_country = JP + guard + let url = URL( + string: + "\(baseURL)/discover/movie?language=\(language)&sort_by=popularity.desc&with_genres=16&with_origin_country=JP&page=\(page)" + ) + else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "movie") }, + page: result.page, + totalPages: result.totalPages + ) + } + // MARK: - Popular Doramas (Korean dramas) func getPopularDoramas(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult { diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift index 4475d4aa..bbdf2dc2 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift @@ -29,6 +29,48 @@ enum MovieSubcategory: CaseIterable, SegmentedTab { } } +// MARK: - TV Series Subcategory +enum TVSeriesSubcategory: CaseIterable, SegmentedTab { + case airingToday + case onTheAir + case popular + case topRated + case discover + + var title: String { + let strings = L10n.current + switch self { + case .airingToday: return strings.airingToday + case .onTheAir: return strings.onTheAir + case .popular: return strings.popular + case .topRated: return strings.topRated + case .discover: return strings.discover + } + } + + var isDisabled: Bool { + self == .discover + } +} + +// MARK: - Anime Type +enum AnimeType: CaseIterable, SegmentedTab { + case tvSeries + case movies + + var title: String { + let strings = L10n.current + switch self { + case .tvSeries: return strings.tvSeries + case .movies: return strings.movies + } + } + + var isDisabled: Bool { + false + } +} + struct CategoryListView: View { let categoryType: HomeCategoryType @@ -40,6 +82,8 @@ struct CategoryListView: View { @State private var totalPages = 1 @State private var strings = L10n.current @State private var selectedMovieSubcategory: MovieSubcategory = .nowPlaying + @State private var selectedTVSeriesSubcategory: TVSeriesSubcategory = .airingToday + @State private var selectedAnimeType: AnimeType = .tvSeries @ObservedObject private var themeManager = ThemeManager.shared private var title: String { @@ -54,7 +98,8 @@ struct CategoryListView: View { private var mediaType: String { switch categoryType { case .movies: return "movie" - case .tvSeries, .animes, .doramas: return "tv" + case .tvSeries, .doramas: return "tv" + case .animes: return selectedAnimeType == .movies ? "movie" : "tv" } } @@ -62,20 +107,6 @@ struct CategoryListView: View { currentPage < totalPages } - private func stickyTabBar(scrollProxy: ScrollViewProxy) -> some View { - SegmentedTabBar(selectedTab: $selectedMovieSubcategory) { - withAnimation { - scrollProxy.scrollTo("content-top", anchor: .top) - } - Task { - await loadItems() - } - } - .id("content-top") - .padding(.vertical, 12) - .padding(.horizontal, 24) - } - private let columns = [ GridItem(.flexible(), spacing: 12), GridItem(.flexible(), spacing: 12), @@ -88,104 +119,112 @@ struct CategoryListView: View { VStack(spacing: 0) { // Header - HStack { - Button { - dismiss() - } label: { - Image(systemName: "chevron.left") - .font(.system(size: 18, weight: .semibold)) - .foregroundColor(.appForegroundAdaptive) - .frame(width: 40, height: 40) - .background(Color.appInputFilled) - .clipShape(Circle()) - } + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } - Spacer() + Spacer() - Text(title) - .font(.headline) - .foregroundColor(.appForegroundAdaptive) + Text(title) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) - Spacer() + Spacer() - Color.clear - .frame(width: 40, height: 40) + Color.clear + .frame(width: 40, height: 40) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + // Tabs in header + if categoryType == .movies { + UnderlineTabBar( + selectedTab: $selectedMovieSubcategory, + onTabChange: { + Task { + await loadItems() + } + } + ) + } else if categoryType == .tvSeries { + UnderlineTabBar( + selectedTab: $selectedTVSeriesSubcategory, + onTabChange: { + Task { + await loadItems() + } + } + ) + } else if categoryType == .animes { + UnderlineTabBar( + selectedTab: $selectedAnimeType, + onTabChange: { + Task { + await loadItems() + } + } + ) + } else { + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + } } - .padding(.horizontal, 24) - .padding(.vertical, 16) - - Rectangle() - .fill(Color.appBorderAdaptive) - .frame(height: 1) // Content if isLoading && items.isEmpty { - ScrollViewReader { proxy in - ScrollView { - LazyVStack(spacing: 0, pinnedViews: categoryType == .movies ? [.sectionHeaders] : []) - { - Section { - LazyVGrid(columns: columns, spacing: 16) { - ForEach(0..<12, id: \.self) { _ in - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() - } - } - .padding(.horizontal, 24) - .padding(.top, 16) - .padding(.bottom, 24) - } header: { - if categoryType == .movies { - stickyTabBar(scrollProxy: proxy) - } - } + ScrollView { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(0..<12, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() } } + .padding(.horizontal, 24) + .padding(.vertical, 24) } } else { - ScrollViewReader { proxy in - ScrollView { - LazyVStack(spacing: 0, pinnedViews: categoryType == .movies ? [.sectionHeaders] : []) - { - Section { - LazyVGrid(columns: columns, spacing: 16) { - ForEach(items) { item in - NavigationLink { - MediaDetailView(mediaId: item.id, mediaType: mediaType) - } label: { - CategoryPosterCard(item: item) - } - .buttonStyle(.plain) - .onAppear { - if item.id == items.suffix(6).first?.id && hasMorePages && !isLoadingMore { - Task { - await loadMoreItems() - } - } - } - } - - if isLoadingMore { - ForEach(0..<3, id: \.self) { _ in - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() - } + ScrollView { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(items) { item in + NavigationLink { + MediaDetailView(mediaId: item.id, mediaType: mediaType) + } label: { + CategoryPosterCard(item: item) + } + .buttonStyle(.plain) + .onAppear { + if item.id == items.suffix(6).first?.id && hasMorePages && !isLoadingMore { + Task { + await loadMoreItems() } } - .padding(.horizontal, 24) - .padding(.top, 16) - .padding(.bottom, 24) - } header: { - if categoryType == .movies { - stickyTabBar(scrollProxy: proxy) - } + } + } + + if isLoadingMore { + ForEach(0..<3, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() } } } + .padding(.horizontal, 24) + .padding(.vertical, 24) } } } @@ -209,9 +248,9 @@ struct CategoryListView: View { case .movies: result = try await loadMoviesForSubcategory(language: language, page: 1) case .tvSeries: - result = try await TMDBService.shared.getPopularTVSeries(language: language, page: 1) + result = try await loadTVSeriesForSubcategory(language: language, page: 1) case .animes: - result = try await TMDBService.shared.getPopularAnimes(language: language, page: 1) + result = try await loadAnimesForType(language: language, page: 1) case .doramas: result = try await TMDBService.shared.getPopularDoramas(language: language, page: 1) } @@ -242,6 +281,33 @@ struct CategoryListView: View { } } + private func loadTVSeriesForSubcategory(language: String, page: Int) async throws + -> PaginatedResult + { + switch selectedTVSeriesSubcategory { + case .airingToday: + return try await TMDBService.shared.getAiringTodayTVSeries(language: language, page: page) + case .onTheAir: + return try await TMDBService.shared.getOnTheAirTVSeries(language: language, page: page) + case .popular: + return try await TMDBService.shared.getPopularTVSeries(language: language, page: page) + case .topRated: + return try await TMDBService.shared.getTopRatedTVSeries(language: language, page: page) + case .discover: + // Discover is disabled, fallback to popular + return try await TMDBService.shared.getPopularTVSeries(language: language, page: page) + } + } + + private func loadAnimesForType(language: String, page: Int) async throws -> PaginatedResult { + switch selectedAnimeType { + case .tvSeries: + return try await TMDBService.shared.getPopularAnimes(language: language, page: page) + case .movies: + return try await TMDBService.shared.getPopularAnimeMovies(language: language, page: page) + } + } + private func loadMoreItems() async { guard hasMorePages && !isLoadingMore else { return } @@ -255,9 +321,9 @@ struct CategoryListView: View { case .movies: result = try await loadMoviesForSubcategory(language: language, page: nextPage) case .tvSeries: - result = try await TMDBService.shared.getPopularTVSeries(language: language, page: nextPage) + result = try await loadTVSeriesForSubcategory(language: language, page: nextPage) case .animes: - result = try await TMDBService.shared.getPopularAnimes(language: language, page: nextPage) + result = try await loadAnimesForType(language: language, page: nextPage) case .doramas: result = try await TMDBService.shared.getPopularDoramas(language: language, page: nextPage) } From d1d609f21ff2e323e48986a3019b43da57c33645 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 23:25:04 -0300 Subject: [PATCH 26/77] feat(media): implement image fetching and display in MediaDetailView and MediaImagesView, enhancing visual content presentation --- .../Plotwist/Localization/Strings.swift | 48 ++- .../Plotwist/Services/TMDBService.swift | 59 ++++ .../Views/Details/MediaDetailView.swift | 82 ++++- .../Views/Details/MediaImagesView.swift | 301 ++++++++++++++++++ 4 files changed, 470 insertions(+), 20 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 755e2c6f..4e1c6828 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -99,7 +99,12 @@ enum L10n { discover: "Discover", // TV Series Categories airingToday: "Airing Today", - onTheAir: "On The Air" + onTheAir: "On The Air", + // Images + images: "Images", + backdrops: "Backdrops", + posters: "Posters", + noImagesFound: "No images found." ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -185,7 +190,11 @@ enum L10n { upcoming: "Em Breve", discover: "Descobrir", airingToday: "No Ar Hoje", - onTheAir: "Em Exibição" + onTheAir: "Em Exibição", + images: "Imagens", + backdrops: "Backdrops", + posters: "Pôsteres", + noImagesFound: "Nenhuma imagem encontrada." ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -271,7 +280,11 @@ enum L10n { upcoming: "Próximamente", discover: "Descubrir", airingToday: "En Emisión Hoy", - onTheAir: "En Emisión" + onTheAir: "En Emisión", + images: "Imágenes", + backdrops: "Fondos", + posters: "Pósters", + noImagesFound: "No se encontraron imágenes." ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -357,7 +370,11 @@ enum L10n { upcoming: "Prochainement", discover: "Découvrir", airingToday: "Diffusé Aujourd'hui", - onTheAir: "En Cours" + onTheAir: "En Cours", + images: "Images", + backdrops: "Fonds d'écran", + posters: "Affiches", + noImagesFound: "Aucune image trouvée." ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -443,7 +460,11 @@ enum L10n { upcoming: "Demnächst", discover: "Entdecken", airingToday: "Heute im TV", - onTheAir: "Auf Sendung" + onTheAir: "Auf Sendung", + images: "Bilder", + backdrops: "Hintergründe", + posters: "Poster", + noImagesFound: "Keine Bilder gefunden." ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -529,7 +550,11 @@ enum L10n { upcoming: "Prossimamente", discover: "Scopri", airingToday: "In Onda Oggi", - onTheAir: "In Onda" + onTheAir: "In Onda", + images: "Immagini", + backdrops: "Sfondi", + posters: "Locandine", + noImagesFound: "Nessuna immagine trovata." ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -614,7 +639,11 @@ enum L10n { upcoming: "近日公開", discover: "発見", airingToday: "本日放送", - onTheAir: "放送中" + onTheAir: "放送中", + images: "画像", + backdrops: "背景", + posters: "ポスター", + noImagesFound: "画像が見つかりません。" ), ] } @@ -712,4 +741,9 @@ struct Strings { // TV Series Categories let airingToday: String let onTheAir: String + // Images + let images: String + let backdrops: String + let posters: String + let noImagesFound: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index 09030ed1..ab9b244d 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -405,6 +405,28 @@ class TMDBService { decoder.keyDecodingStrategy = .convertFromSnakeCase return try decoder.decode(MovieDetails.self, from: data) } + + // MARK: - Get Images + func getImages(id: Int, mediaType: String) async throws -> MediaImages { + let type = mediaType == "movie" ? "movie" : "tv" + guard let url = URL(string: "\(baseURL)/\(type)/\(id)/images") else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return try decoder.decode(MediaImages.self, from: data) + } } // MARK: - Movie Details Model @@ -554,3 +576,40 @@ enum TMDBError: LocalizedError { } } } + +// MARK: - Media Images +struct MediaImages: Codable { + let backdrops: [TMDBImage] + let posters: [TMDBImage] + + var sortedBackdrops: [TMDBImage] { + backdrops.sorted { $0.voteCount > $1.voteCount } + } + + var sortedPosters: [TMDBImage] { + posters.sorted { $0.voteCount > $1.voteCount } + } +} + +struct TMDBImage: Codable, Identifiable { + let aspectRatio: Double + let filePath: String + let height: Int + let width: Int + let voteAverage: Double + let voteCount: Int + + var id: String { filePath } + + var thumbnailURL: URL? { + URL(string: "https://image.tmdb.org/t/p/w500\(filePath)") + } + + var fullURL: URL? { + URL(string: "https://image.tmdb.org/t/p/original\(filePath)") + } + + var backdropURL: URL? { + URL(string: "https://image.tmdb.org/t/p/w1280\(filePath)") + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index f90eef17..b45122cf 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -15,6 +15,8 @@ struct MediaDetailView: View { @State private var userReview: Review? @State private var showReviewSheet = false @State private var reviewsRefreshId = UUID() + @State private var backdropImages: [TMDBImage] = [] + @State private var currentBackdropIndex = 0 @ObservedObject private var themeManager = ThemeManager.shared // Layout constants @@ -30,22 +32,66 @@ struct MediaDetailView: View { } else if let details { ScrollView(showsIndicators: false) { VStack(alignment: .leading, spacing: 0) { - // Backdrop + // Backdrop Carousel ZStack(alignment: .topLeading) { - AsyncImage(url: details.backdropURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appBorderAdaptive) + if backdropImages.isEmpty { + // Fallback to single backdrop + AsyncImage(url: details.backdropURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appBorderAdaptive) + } + } + .frame(height: 240) + .frame(maxWidth: .infinity) + .clipped() + } else { + // Carousel + ZStack(alignment: .bottomTrailing) { + NavigationLink( + destination: MediaImagesView(mediaId: mediaId, mediaType: mediaType) + ) { + TabView(selection: $currentBackdropIndex) { + ForEach(Array(backdropImages.prefix(10).enumerated()), id: \.element.id) { + index, backdrop in + AsyncImage(url: backdrop.backdropURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appBorderAdaptive) + } + } + .tag(index) + } + } + .tabViewStyle(.page(indexDisplayMode: .never)) + .frame(height: 240) + .frame(maxWidth: .infinity) + .clipped() + } + .buttonStyle(.plain) + + // Image counter + Text("\(currentBackdropIndex + 1)/\(min(backdropImages.count, 10))") + .font(.caption.weight(.semibold)) + .foregroundColor(.white) + .padding(.horizontal, 10) + .padding(.vertical, 6) + .background(Color.black.opacity(0.6)) + .clipShape(RoundedRectangle(cornerRadius: 6)) + .padding(.trailing, 16) + .padding(.bottom, 12) } } - .frame(height: 240) - .frame(maxWidth: .infinity) - .clipped() // Back button Button { @@ -176,6 +222,7 @@ struct MediaDetailView: View { } .task { await loadDetails() + await loadImages() if AuthService.shared.isAuthenticated { await loadUserReview() } @@ -222,6 +269,15 @@ struct MediaDetailView: View { userReview = nil } } + + private func loadImages() async { + do { + let images = try await TMDBService.shared.getImages(id: mediaId, mediaType: mediaType) + backdropImages = images.sortedBackdrops + } catch { + backdropImages = [] + } + } } // MARK: - Rating Section (Airbnb style) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift new file mode 100644 index 00000000..2fa41887 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift @@ -0,0 +1,301 @@ +// +// MediaImagesView.swift +// Plotwist +// + +import SwiftUI + +struct MediaImagesView: View { + let mediaId: Int + let mediaType: String + + @Environment(\.dismiss) private var dismiss + @State private var images: MediaImages? + @State private var isLoading = true + @State private var selectedImage: TMDBImage? + @ObservedObject private var themeManager = ThemeManager.shared + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header (same as CategoryListView) + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(L10n.current.images) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + Color.clear + .frame(width: 40, height: 40) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + } + + // Content + if isLoading { + Spacer() + ProgressView() + Spacer() + } else if let images, !images.backdrops.isEmpty || !images.posters.isEmpty { + ScrollView(showsIndicators: false) { + // Masonry layout with all images + ImageMasonryView( + images: allImages, + onImageTap: { image in + selectedImage = image + } + ) + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + } else { + Spacer() + VStack(spacing: 12) { + Image(systemName: "photo.on.rectangle.angled") + .font(.system(size: 48)) + .foregroundColor(.appMutedForegroundAdaptive) + Text(L10n.current.noImagesFound) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } + Spacer() + } + } + } + .navigationBarHidden(true) + .preferredColorScheme(themeManager.current.colorScheme) + .fullScreenCover(item: $selectedImage) { image in + ImageFullScreenView(image: image) + } + .task { + await loadImages() + } + } + + private var allImages: [TMDBImage] { + guard let images else { return [] } + // Combine all images and sort by vote count for better distribution + return (images.backdrops + images.posters).sorted { $0.voteCount > $1.voteCount } + } + + private func loadImages() async { + isLoading = true + defer { isLoading = false } + + do { + images = try await TMDBService.shared.getImages(id: mediaId, mediaType: mediaType) + } catch { + images = nil + } + } +} + +// MARK: - Image Masonry View +struct ImageMasonryView: View { + let images: [TMDBImage] + let onImageTap: (TMDBImage) -> Void + + private let spacing: CGFloat = 8 + + var body: some View { + GeometryReader { geometry in + let columnWidth = (geometry.size.width - spacing) / 2 + + HStack(alignment: .top, spacing: spacing) { + // Left column + LazyVStack(spacing: spacing) { + ForEach(leftColumnImages) { image in + MasonryImageCell( + image: image, + width: columnWidth, + onTap: { onImageTap(image) } + ) + } + } + + // Right column + LazyVStack(spacing: spacing) { + ForEach(rightColumnImages) { image in + MasonryImageCell( + image: image, + width: columnWidth, + onTap: { onImageTap(image) } + ) + } + } + } + } + .frame(height: calculateTotalHeight()) + } + + private var leftColumnImages: [TMDBImage] { + images.enumerated().filter { $0.offset % 2 == 0 }.map { $0.element } + } + + private var rightColumnImages: [TMDBImage] { + images.enumerated().filter { $0.offset % 2 == 1 }.map { $0.element } + } + + private func calculateTotalHeight() -> CGFloat { + let screenWidth = UIScreen.main.bounds.width - 48 // 24 padding on each side + let columnWidth = (screenWidth - spacing) / 2 + + var leftHeight: CGFloat = 0 + var rightHeight: CGFloat = 0 + + for (index, image) in images.enumerated() { + let imageHeight = columnWidth / image.aspectRatio + if index % 2 == 0 { + leftHeight += imageHeight + spacing + } else { + rightHeight += imageHeight + spacing + } + } + + return max(leftHeight, rightHeight) + } +} + +// MARK: - Masonry Image Cell +struct MasonryImageCell: View { + let image: TMDBImage + let width: CGFloat + let onTap: () -> Void + + private var height: CGFloat { + width / image.aspectRatio + } + + var body: some View { + Button(action: onTap) { + AsyncImage(url: image.thumbnailURL) { phase in + switch phase { + case .success(let loadedImage): + loadedImage + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appBorderAdaptive) + } + } + .frame(width: width, height: height) + .clipShape(RoundedRectangle(cornerRadius: 12)) + } + .buttonStyle(.plain) + } +} + +// MARK: - Full Screen Image View +struct ImageFullScreenView: View { + let image: TMDBImage + + @Environment(\.dismiss) private var dismiss + @State private var scale: CGFloat = 1.0 + @State private var lastScale: CGFloat = 1.0 + @State private var offset: CGSize = .zero + @State private var lastOffset: CGSize = .zero + + var body: some View { + ZStack { + Color.black.ignoresSafeArea() + + AsyncImage(url: image.fullURL) { phase in + switch phase { + case .success(let loadedImage): + loadedImage + .resizable() + .aspectRatio(contentMode: .fit) + .scaleEffect(scale) + .offset(offset) + .gesture( + MagnificationGesture() + .onChanged { value in + let delta = value / lastScale + lastScale = value + scale = min(max(scale * delta, 1), 4) + } + .onEnded { _ in + lastScale = 1.0 + if scale < 1 { + withAnimation { + scale = 1 + } + } + } + ) + .gesture( + DragGesture() + .onChanged { value in + if scale > 1 { + offset = CGSize( + width: lastOffset.width + value.translation.width, + height: lastOffset.height + value.translation.height + ) + } + } + .onEnded { _ in + lastOffset = offset + } + ) + .onTapGesture(count: 2) { + withAnimation { + if scale > 1 { + scale = 1 + offset = .zero + lastOffset = .zero + } else { + scale = 2 + } + } + } + default: + ProgressView() + .tint(.white) + } + } + + // Close button + VStack { + HStack { + Spacer() + Button { + dismiss() + } label: { + Image(systemName: "xmark") + .font(.system(size: 16, weight: .semibold)) + .foregroundColor(.white) + .frame(width: 36, height: 36) + .background(.ultraThinMaterial) + .clipShape(Circle()) + } + .padding(.trailing, 20) + .padding(.top, 60) + } + Spacer() + } + } + } +} From 9d456e08a9cee8cb4e2c9a7149fc1e9f5a808757 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 23:27:50 -0300 Subject: [PATCH 27/77] feat(media): add background image preloading in MediaDetailView for improved performance and user experience --- .../Views/Details/MediaDetailView.swift | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index b45122cf..5b020f62 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -274,10 +274,30 @@ struct MediaDetailView: View { do { let images = try await TMDBService.shared.getImages(id: mediaId, mediaType: mediaType) backdropImages = images.sortedBackdrops + + // Preload backdrop images in background + await preloadBackdropImages() } catch { backdropImages = [] } } + + private func preloadBackdropImages() async { + let imagesToPreload = Array(backdropImages.prefix(10)) + + await withTaskGroup(of: Void.self) { group in + for image in imagesToPreload { + guard let url = image.backdropURL else { continue } + group.addTask { + do { + let (_, _) = try await URLSession.shared.data(from: url) + } catch { + // Silently ignore preload failures + } + } + } + } + } } // MARK: - Rating Section (Airbnb style) From aa761a593ba4bbedbd50d168a3dfb36fac6d0ecf Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 23:40:07 -0300 Subject: [PATCH 28/77] fix(media): adjust frame heights and opacity in MediaDetailView for improved layout and visual consistency --- .../Views/Details/MediaDetailView.swift | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 5b020f62..b049183a 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -47,7 +47,7 @@ struct MediaDetailView: View { .fill(Color.appBorderAdaptive) } } - .frame(height: 240) + .frame(height: 300) .frame(maxWidth: .infinity) .clipped() } else { @@ -74,7 +74,7 @@ struct MediaDetailView: View { } } .tabViewStyle(.page(indexDisplayMode: .never)) - .frame(height: 240) + .frame(height: 300) .frame(maxWidth: .infinity) .clipped() } @@ -109,7 +109,7 @@ struct MediaDetailView: View { } .overlay( Rectangle() - .fill(Color.appBorderAdaptive) + .fill(Color.appBorderAdaptive.opacity(0.5)) .frame(height: 1), alignment: .bottom ) @@ -187,16 +187,20 @@ struct MediaDetailView: View { .offset(y: contentOffset) Spacer() - .frame(height: 24) + .frame(height: 32) .offset(y: contentOffset) // Divider Rectangle() - .fill(Color.appBorderAdaptive) + .fill(Color.appBorderAdaptive.opacity(0.5)) .frame(height: 1) .padding(.horizontal, 24) .offset(y: contentOffset) + Spacer() + .frame(height: 16) + .offset(y: contentOffset) + // Rating Section (Airbnb style) RatingSectionView( mediaId: mediaId, @@ -341,7 +345,6 @@ struct RatingSectionView: View { .frame(width: 100, height: 16) } .shimmer() - .padding(.vertical, 24) } else if reviews.isEmpty { // Empty state - tappable to open review sheet Button(action: { @@ -365,7 +368,6 @@ struct RatingSectionView: View { } .buttonStyle(.plain) .padding(.horizontal, 24) - .padding(.top, 24) } else if isFeaturedRating { // Featured rating display with film strips (10+ reviews AND rating >= 4.5) HStack(spacing: 8) { @@ -458,7 +460,7 @@ struct RatingSectionView: View { // Vertical divider (except for last item) if index < reviewsWithText.count - 1 { Rectangle() - .fill(Color.appBorderAdaptive) + .fill(Color.appBorderAdaptive.opacity(0.5)) .frame(width: 1) .frame(height: 160) .padding(.horizontal, 24) @@ -467,7 +469,6 @@ struct RatingSectionView: View { } } } - .padding(.top, 8) // See all button (only show if 10+ reviews) if reviews.count >= 10 { @@ -485,7 +486,6 @@ struct RatingSectionView: View { .disabled(true) .opacity(0.5) .padding(.horizontal, 24) - .padding(.top, 16) } } } From 3098aee070d4ad452d0e98cb7422295569c8aade Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Thu, 15 Jan 2026 23:46:51 -0300 Subject: [PATCH 29/77] refactor(media): enhance layout and responsiveness in MediaDetailView by adjusting backdrop height and improving button styles --- .../Views/Details/MediaDetailView.swift | 317 +++++++++--------- 1 file changed, 161 insertions(+), 156 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index b049183a..ada3f428 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -30,193 +30,198 @@ struct MediaDetailView: View { if isLoading { ProgressView() } else if let details { - ScrollView(showsIndicators: false) { - VStack(alignment: .leading, spacing: 0) { - // Backdrop Carousel - ZStack(alignment: .topLeading) { - if backdropImages.isEmpty { - // Fallback to single backdrop - AsyncImage(url: details.backdropURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appBorderAdaptive) + GeometryReader { geometry in + let backdropHeight = geometry.size.height * 0.40 + + ScrollView(showsIndicators: false) { + VStack(alignment: .leading, spacing: 0) { + // Backdrop Carousel + ZStack(alignment: .topLeading) { + if backdropImages.isEmpty { + // Fallback to single backdrop + AsyncImage(url: details.backdropURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appBorderAdaptive) + } } - } - .frame(height: 300) - .frame(maxWidth: .infinity) - .clipped() - } else { - // Carousel - ZStack(alignment: .bottomTrailing) { - NavigationLink( - destination: MediaImagesView(mediaId: mediaId, mediaType: mediaType) - ) { - TabView(selection: $currentBackdropIndex) { - ForEach(Array(backdropImages.prefix(10).enumerated()), id: \.element.id) { - index, backdrop in - AsyncImage(url: backdrop.backdropURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appBorderAdaptive) + .frame(height: backdropHeight) + .frame(maxWidth: .infinity) + .clipped() + } else { + // Carousel + ZStack(alignment: .bottomTrailing) { + NavigationLink( + destination: MediaImagesView(mediaId: mediaId, mediaType: mediaType) + ) { + TabView(selection: $currentBackdropIndex) { + ForEach(Array(backdropImages.prefix(10).enumerated()), id: \.element.id) { + index, backdrop in + AsyncImage(url: backdrop.backdropURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appBorderAdaptive) + } } + .tag(index) } - .tag(index) } + .tabViewStyle(.page(indexDisplayMode: .never)) + .frame(height: backdropHeight) + .frame(maxWidth: .infinity) + .clipped() } - .tabViewStyle(.page(indexDisplayMode: .never)) - .frame(height: 300) - .frame(maxWidth: .infinity) - .clipped() + .buttonStyle(.plain) + + // Image counter + Text("\(currentBackdropIndex + 1)/\(min(backdropImages.count, 10))") + .font(.caption.weight(.semibold)) + .foregroundColor(.white) + .padding(.horizontal, 10) + .padding(.vertical, 6) + .background(Color.black.opacity(0.6)) + .clipShape(RoundedRectangle(cornerRadius: 6)) + .padding(.trailing, 16) + .padding(.bottom, 12) } - .buttonStyle(.plain) + } - // Image counter - Text("\(currentBackdropIndex + 1)/\(min(backdropImages.count, 10))") - .font(.caption.weight(.semibold)) + // Back button + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) .foregroundColor(.white) - .padding(.horizontal, 10) - .padding(.vertical, 6) - .background(Color.black.opacity(0.6)) - .clipShape(RoundedRectangle(cornerRadius: 6)) - .padding(.trailing, 16) - .padding(.bottom, 12) + .frame(width: 40, height: 40) + .background(.ultraThinMaterial) + .clipShape(Circle()) } + .padding(.top, 60) + .padding(.leading, 24) } + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1), + alignment: .bottom + ) - // Back button - Button { - dismiss() - } label: { - Image(systemName: "chevron.left") - .font(.system(size: 18, weight: .semibold)) - .foregroundColor(.white) - .frame(width: 40, height: 40) - .background(.ultraThinMaterial) - .clipShape(Circle()) - } - .padding(.top, 60) - .padding(.leading, 24) - } - .overlay( - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1), - alignment: .bottom - ) - - // Content with poster overlap - HStack(alignment: .bottom, spacing: 16) { - // Poster - AsyncImage(url: details.posterURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) + // Content with poster overlap + HStack(alignment: .bottom, spacing: 16) { + // Poster + AsyncImage(url: details.posterURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + } } - } - .frame(width: 140, height: 210) - .clipShape(RoundedRectangle(cornerRadius: 16)) - .posterShadow() - - // Info - VStack(alignment: .leading, spacing: 4) { - if let releaseDate = details.formattedReleaseDate(locale: Language.current.rawValue) - { - Text(releaseDate) - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: 140, height: 210) + .clipShape(RoundedRectangle(cornerRadius: 16)) + .posterShadow() + + // Info + VStack(alignment: .leading, spacing: 4) { + if let releaseDate = details.formattedReleaseDate( + locale: Language.current.rawValue) + { + Text(releaseDate) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + + Text(details.displayTitle) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) } - Text(details.displayTitle) - .font(.headline) - .foregroundColor(.appForegroundAdaptive) + Spacer() } + .padding(.horizontal, 24) + .offset(y: posterOverlapOffset) - Spacer() - } - .padding(.horizontal, 24) - .offset(y: posterOverlapOffset) - - // Content Section - VStack(alignment: .leading, spacing: 20) { - // Review Button - if AuthService.shared.isAuthenticated { - HStack { - ReviewButton(hasReview: userReview != nil) { - showReviewSheet = true - } + // Content Section + VStack(alignment: .leading, spacing: 20) { + // Review Button + if AuthService.shared.isAuthenticated { + HStack { + ReviewButton(hasReview: userReview != nil) { + showReviewSheet = true + } - Spacer() + Spacer() + } } - } - // Overview - if let overview = details.overview, !overview.isEmpty { - Text(overview) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .lineSpacing(4) - } + // Overview + if let overview = details.overview, !overview.isEmpty { + Text(overview) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .lineSpacing(4) + } - // Genres Badges - if let genres = details.genres, !genres.isEmpty { - ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 8) { - ForEach(genres) { genre in - BadgeView(text: genre.name) + // Genres Badges + if let genres = details.genres, !genres.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 8) { + ForEach(genres) { genre in + BadgeView(text: genre.name) + } } } } } - } - .padding(.horizontal, 24) - .offset(y: contentOffset) - - Spacer() - .frame(height: 32) - .offset(y: contentOffset) - - // Divider - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1) .padding(.horizontal, 24) .offset(y: contentOffset) - Spacer() - .frame(height: 16) - .offset(y: contentOffset) + Spacer() + .frame(height: 32) + .offset(y: contentOffset) - // Rating Section (Airbnb style) - RatingSectionView( - mediaId: mediaId, - mediaType: mediaType, - refreshId: reviewsRefreshId, - onEmptyStateTapped: { - if AuthService.shared.isAuthenticated { - showReviewSheet = true + // Divider + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .offset(y: contentOffset) + + Spacer() + .frame(height: 16) + .offset(y: contentOffset) + + // Rating Section (Airbnb style) + RatingSectionView( + mediaId: mediaId, + mediaType: mediaType, + refreshId: reviewsRefreshId, + onEmptyStateTapped: { + if AuthService.shared.isAuthenticated { + showReviewSheet = true + } } - } - ) - .offset(y: contentOffset) + ) + .offset(y: contentOffset) + } + .padding(.bottom, 80) } - .padding(.bottom, 80) + .ignoresSafeArea(edges: .top) } - .ignoresSafeArea(edges: .top) } } .navigationBarHidden(true) From 7c7418b5eb63609250ee88752131a00534a807ee Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 17 Jan 2026 16:30:03 -0300 Subject: [PATCH 30/77] refactor(auth): streamline layout and improve password visibility toggle in LoginView and SignUpView, enhance language switcher positioning --- .../Plotwist/Views/Auth/LoginView.swift | 105 +++++++++--------- .../Plotwist/Views/Auth/SignUpView.swift | 85 ++++++++------ .../Plotwist/Views/Home/HomeTabView.swift | 92 ++------------- .../Plotwist/Views/Home/SearchTabView.swift | 73 +++++++++--- 4 files changed, 169 insertions(+), 186 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift index 03a49d7c..df69814e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift @@ -11,49 +11,48 @@ struct LoginView: View { @State private var showPassword = false @State private var isLoading = false @State private var error: String? - @State private var strings = L10n.current + @State private var strings = L10n.current var body: some View { NavigationView { ZStack { Color.appBackgroundAdaptive.ignoresSafeArea() - VStack(spacing: 24) { - // Temporary Language Switcher - HStack { - Spacer() - Menu { - ForEach(Language.allCases, id: \.self) { lang in - Button { - Language.current = lang - } label: { - HStack { - Text(lang.displayName) - if Language.current == lang { - Image(systemName: "checkmark") - } - } - } - } - } label: { - HStack(spacing: 6) { - Image(systemName: "globe") - Text(Language.current.displayName) - .font(.subheadline) - } - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.horizontal, 12) - .padding(.vertical, 8) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) - } - } - - Spacer() + VStack(spacing: 0) { + // Language Switcher at top (centered) + Menu { + ForEach(Language.allCases, id: \.self) { lang in + Button { + Language.current = lang + } label: { + HStack { + Text(lang.displayName) + if Language.current == lang { + Image(systemName: "checkmark") + } + } + } + } + } label: { + HStack(spacing: 6) { + Image(systemName: "globe") + Text(Language.current.displayName) + .font(.subheadline) + } + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 12) + .padding(.vertical, 8) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + .padding(.top, 16) + Spacer() + + // Centered form content VStack(spacing: 16) { // Login Field VStack(alignment: .leading, spacing: 6) { @@ -75,12 +74,11 @@ struct LoginView: View { Text(strings.passwordLabel) .font(.subheadline.weight(.medium)) HStack(spacing: 8) { - Group { - if showPassword { - TextField(strings.passwordPlaceholder, text: $password) - } else { - SecureField(strings.passwordPlaceholder, text: $password) - } + ZStack { + TextField(strings.passwordPlaceholder, text: $password) + .opacity(showPassword ? 1 : 0) + SecureField(strings.passwordPlaceholder, text: $password) + .opacity(showPassword ? 0 : 1) } .textInputAutocapitalization(.never) .autocorrectionDisabled() @@ -92,9 +90,7 @@ struct LoginView: View { ) Button { - withAnimation(.none) { - showPassword.toggle() - } + showPassword.toggle() } label: { Image(systemName: showPassword ? "eye" : "eye.slash") .foregroundColor(.appMutedForegroundAdaptive) @@ -105,7 +101,7 @@ struct LoginView: View { .stroke(Color.appBorderAdaptive, lineWidth: 1) ) } - .transaction { $0.animation = nil } + .buttonStyle(.plain) } } @@ -136,18 +132,19 @@ struct LoginView: View { SocialButton(strings.continueWithGoogle, icon: "globe", isDisabled: true) {} SocialButton(strings.continueWithApple, icon: "apple.logo", isDisabled: true) {} } + .padding(.horizontal, 24) + .frame(maxWidth: 400) Spacer() - NavigationLink(destination: SignUpView()) { - Text("\(strings.doNotHaveAccount) \(strings.createNow)") - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - } - .padding(.bottom, 16) + // Bottom link + NavigationLink(destination: SignUpView()) { + Text("\(strings.doNotHaveAccount) \(strings.createNow)") + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + .padding(.bottom, 32) } - .padding(.horizontal, 24) - .frame(maxWidth: 400) } .navigationBarHidden(true) } diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift index 3a19b8cf..644667a6 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift @@ -17,13 +17,32 @@ struct SignUpView: View { @State private var strings = L10n.current var body: some View { - NavigationView { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header with back button (same as CategoryListView) + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } - VStack(spacing: 24) { Spacer() + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + Spacer() + + // Centered form content + VStack(spacing: 24) { // Header VStack(spacing: 8) { Text(strings.startNow) @@ -56,12 +75,11 @@ struct SignUpView: View { Text(strings.passwordLabel) .font(.subheadline.weight(.medium)) HStack(spacing: 8) { - Group { - if showPassword { - TextField(strings.passwordPlaceholder, text: $password) - } else { - SecureField(strings.passwordPlaceholder, text: $password) - } + ZStack { + TextField(strings.passwordPlaceholder, text: $password) + .opacity(showPassword ? 1 : 0) + SecureField(strings.passwordPlaceholder, text: $password) + .opacity(showPassword ? 0 : 1) } .textInputAutocapitalization(.never) .autocorrectionDisabled() @@ -72,18 +90,19 @@ struct SignUpView: View { .stroke(Color.appBorderAdaptive, lineWidth: 1) ) - Button { - showPassword.toggle() - } label: { - Image(systemName: showPassword ? "eye" : "eye.slash") - .foregroundColor(.appMutedForegroundAdaptive) - .frame(width: 48, height: 48) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) - } + Button { + showPassword.toggle() + } label: { + Image(systemName: showPassword ? "eye" : "eye.slash") + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: 48, height: 48) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + } + .buttonStyle(.plain) } } @@ -97,21 +116,23 @@ struct SignUpView: View { Task { await checkEmailAndContinue() } } } + } + .padding(.horizontal, 24) - Spacer() + Spacer() - NavigationLink(destination: LoginView()) { - Text("\(strings.alreadyHaveAccount) \(strings.accessNow)") - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - } - .padding(.bottom, 16) + // Bottom link + Button { + dismiss() + } label: { + Text("\(strings.alreadyHaveAccount) \(strings.accessNow)") + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) } - .padding(.horizontal, 24) - .frame(maxWidth: 400) + .padding(.bottom, 32) } - .navigationBarHidden(true) } + .navigationBarHidden(true) .sheet(isPresented: $showUsernameSheet) { UsernameSheetView( username: $username, diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift index 0b7ce933..b9651998 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift @@ -6,101 +6,25 @@ import SwiftUI struct HomeTabView: View { - @State private var popularMovies: [SearchResult] = [] - @State private var popularTVSeries: [SearchResult] = [] - @State private var popularAnimes: [SearchResult] = [] - @State private var popularDoramas: [SearchResult] = [] - @State private var isLoading = true - @State private var strings = L10n.current - var body: some View { NavigationView { ZStack { Color.appBackgroundAdaptive.ignoresSafeArea() - if isLoading { - ScrollView { - VStack(spacing: 32) { - HomeSectionSkeleton() - HomeSectionSkeleton() - HomeSectionSkeleton() - HomeSectionSkeleton() - } - .padding(.top, 24) - .padding(.bottom, 80) - } - } else { - ScrollView(showsIndicators: false) { - VStack(spacing: 32) { - HomeSectionView( - title: strings.popularMovies, - items: popularMovies, - mediaType: "movie", - categoryType: .movies - ) - - HomeSectionView( - title: strings.popularTVSeries, - items: popularTVSeries, - mediaType: "tv", - categoryType: .tvSeries - ) + VStack(spacing: 24) { + Spacer() - HomeSectionView( - title: strings.popularAnimes, - items: popularAnimes, - mediaType: "tv", - categoryType: .animes - ) + Image("logo-white") + .resizable() + .scaledToFit() + .frame(width: 120, height: 120) + .opacity(0.3) - HomeSectionView( - title: strings.popularDoramas, - items: popularDoramas, - mediaType: "tv", - categoryType: .doramas - ) - } - .padding(.top, 24) - .padding(.bottom, 80) - } + Spacer() } } .navigationBarHidden(true) } - .task { - await loadContent() - } - .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in - strings = L10n.current - Task { - await loadContent() - } - } - } - - private func loadContent() async { - isLoading = true - defer { isLoading = false } - - let language = Language.current.rawValue - - async let moviesTask = TMDBService.shared.getPopularMovies(language: language) - async let tvTask = TMDBService.shared.getPopularTVSeries(language: language) - async let animesTask = TMDBService.shared.getPopularAnimes(language: language) - async let doramasTask = TMDBService.shared.getPopularDoramas(language: language) - - do { - let (movies, tv, animes, doramas) = try await (moviesTask, tvTask, animesTask, doramasTask) - popularMovies = movies.results - popularTVSeries = tv.results - popularAnimes = animes.results - popularDoramas = doramas.results - } catch { - popularMovies = [] - popularTVSeries = [] - popularAnimes = [] - popularDoramas = [] - } } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift index 8297ec69..421b40bc 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift @@ -10,6 +10,8 @@ struct SearchTabView: View { @State private var results: [SearchResult] = [] @State private var popularMovies: [SearchResult] = [] @State private var popularTVSeries: [SearchResult] = [] + @State private var popularAnimes: [SearchResult] = [] + @State private var popularDoramas: [SearchResult] = [] @State private var isLoading = false @State private var isLoadingPopular = true @State private var strings = L10n.current @@ -76,7 +78,7 @@ struct SearchTabView: View { } // Results - if isLoading || isLoadingPopular { + if isLoading { ScrollView { LazyVStack(alignment: .leading, spacing: 24) { SearchSkeletonSection() @@ -110,22 +112,52 @@ struct SearchTabView: View { .padding(.vertical, 24) } } + } else if isLoadingPopular { + // Show skeleton for popular content + ScrollView(showsIndicators: false) { + VStack(spacing: 32) { + HomeSectionSkeleton() + HomeSectionSkeleton() + HomeSectionSkeleton() + HomeSectionSkeleton() + } + .padding(.top, 24) + .padding(.bottom, 80) + } } else { - // Show popular content - ScrollView { - LazyVStack(alignment: .leading, spacing: 24) { - if !popularMovies.isEmpty { - SearchSection( - title: strings.popularMovies, results: popularMovies) - } - - if !popularTVSeries.isEmpty { - SearchSection( - title: strings.popularTVSeries, results: popularTVSeries) - } + // Show popular content with horizontal scroll sections + ScrollView(showsIndicators: false) { + VStack(spacing: 32) { + HomeSectionView( + title: strings.popularMovies, + items: popularMovies, + mediaType: "movie", + categoryType: .movies + ) + + HomeSectionView( + title: strings.popularTVSeries, + items: popularTVSeries, + mediaType: "tv", + categoryType: .tvSeries + ) + + HomeSectionView( + title: strings.popularAnimes, + items: popularAnimes, + mediaType: "tv", + categoryType: .animes + ) + + HomeSectionView( + title: strings.popularDoramas, + items: popularDoramas, + mediaType: "tv", + categoryType: .doramas + ) } - .padding(.horizontal, 24) - .padding(.vertical, 24) + .padding(.top, 24) + .padding(.bottom, 80) } } } @@ -145,6 +177,9 @@ struct SearchTabView: View { } .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current + Task { + await loadPopularContent() + } } } @@ -156,14 +191,20 @@ struct SearchTabView: View { async let moviesTask = TMDBService.shared.getPopularMovies(language: language) async let tvTask = TMDBService.shared.getPopularTVSeries(language: language) + async let animesTask = TMDBService.shared.getPopularAnimes(language: language) + async let doramasTask = TMDBService.shared.getPopularDoramas(language: language) do { - let (movies, tv) = try await (moviesTask, tvTask) + let (movies, tv, animes, doramas) = try await (moviesTask, tvTask, animesTask, doramasTask) popularMovies = movies.results popularTVSeries = tv.results + popularAnimes = animes.results + popularDoramas = doramas.results } catch { popularMovies = [] popularTVSeries = [] + popularAnimes = [] + popularDoramas = [] } } From e2cf0b887d183f0fedc8e71b93c2c980a7831353 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 17 Jan 2026 17:02:11 -0300 Subject: [PATCH 31/77] feat(reviews): introduce ReviewSectionView for displaying reviews, refactor MediaDetailView to replace RatingSectionView with ReviewSectionView, and enhance skeleton loading states across various views for improved user experience --- apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 10 + .../Views/Details/MediaDetailView.swift | 405 +----------------- .../Views/Details/ReviewListView.swift | 23 +- .../Views/Home/CategoryListView.swift | 6 +- .../Plotwist/Views/Home/HomeTabView.swift | 6 +- .../Plotwist/Views/Home/SearchTabView.swift | 56 +-- .../Views/Reviews/ReviewSectionView.swift | 370 ++++++++++++++++ 7 files changed, 400 insertions(+), 476 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift index eede1123..395a3f3f 100644 --- a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -56,6 +56,16 @@ extension Color { } static let appDestructive = Color(hue: 0, saturation: 0.842, brightness: 0.602) + + // #222224 for dark mode, light gray for light mode - used for skeletons + static var appSkeletonAdaptive: Color { + Color( + UIColor { + $0.userInterfaceStyle == .dark + ? UIColor(red: 34 / 255, green: 34 / 255, blue: 36 / 255, alpha: 1) // #222224 + : UIColor(red: 229 / 255, green: 231 / 255, blue: 235 / 255, alpha: 1) // #E5E7EB + }) + } } // MARK: - Layered Shadow Modifier diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index ada3f428..5584a857 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -205,8 +205,8 @@ struct MediaDetailView: View { .frame(height: 16) .offset(y: contentOffset) - // Rating Section (Airbnb style) - RatingSectionView( + // Review Section + ReviewSectionView( mediaId: mediaId, mediaType: mediaType, refreshId: reviewsRefreshId, @@ -309,407 +309,6 @@ struct MediaDetailView: View { } } -// MARK: - Rating Section (Airbnb style) -struct RatingSectionView: View { - let mediaId: Int - let mediaType: String - let refreshId: UUID - var onEmptyStateTapped: (() -> Void)? - - @State private var reviews: [ReviewListItem] = [] - @State private var isLoading = true - @State private var error: String? - - private var averageRating: Double { - guard !reviews.isEmpty else { return 0 } - let total = reviews.reduce(0) { $0 + $1.rating } - return total / Double(reviews.count) - } - - private var reviewsWithText: [ReviewListItem] { - reviews.filter { !$0.review.isEmpty } - } - - // Show featured rating (with film strips) only for highly rated content with many reviews - private var isFeaturedRating: Bool { - reviews.count >= 10 && averageRating >= 4.5 - } - - var body: some View { - VStack(spacing: 0) { - // Rating Header - VStack(spacing: 16) { - if isLoading { - // Loading skeleton - VStack(spacing: 8) { - RoundedRectangle(cornerRadius: 8) - .fill(Color.appInputFilled) - .frame(width: 80, height: 48) - RoundedRectangle(cornerRadius: 4) - .fill(Color.appInputFilled) - .frame(width: 100, height: 16) - } - .shimmer() - } else if reviews.isEmpty { - // Empty state - tappable to open review sheet - Button(action: { - onEmptyStateTapped?() - }) { - VStack(spacing: 8) { - Text(L10n.current.beFirstToReview) - .font(.subheadline) - .foregroundColor(.appForegroundAdaptive) - Text(L10n.current.shareYourOpinion) - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - } - .frame(maxWidth: .infinity) - .padding(.vertical, 32) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(style: StrokeStyle(lineWidth: 1, dash: [5])) - .foregroundColor(.appBorderAdaptive) - ) - } - .buttonStyle(.plain) - .padding(.horizontal, 24) - } else if isFeaturedRating { - // Featured rating display with film strips (10+ reviews AND rating >= 4.5) - HStack(spacing: 8) { - // Left film strip - Image("FilmStrip") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(height: 140) - .shadow(color: Color.black.opacity(0.1), radius: 3, x: 0, y: 3) - .shadow(color: Color.black.opacity(0.06), radius: 6, x: 0, y: 6) - - // Rating content - VStack(spacing: 4) { - // Large rating number - Text(String(format: "%.1f", averageRating)) - .font(.system(size: 56, weight: .semibold, design: .rounded)) - .foregroundColor(.appForegroundAdaptive) - - // Stars - HStack(spacing: 4) { - ForEach(1...5, id: \.self) { index in - Image(systemName: starIcon(for: index)) - .font(.system(size: 14)) - .foregroundColor(starColor(for: index)) - } - } - - // Reviews count - Text( - "\(reviews.count) \(reviews.count == 1 ? L10n.current.review.lowercased() : L10n.current.tabReviews.lowercased())" - ) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.top, 4) - } - - // Right film strip (mirrored) - Image("FilmStrip") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(height: 140) - .scaleEffect(x: -1, y: 1) - .shadow(color: Color.black.opacity(0.1), radius: 3, x: 0, y: 3) - .shadow(color: Color.black.opacity(0.06), radius: 6, x: 0, y: 6) - } - .frame(maxWidth: .infinity) - .padding(.vertical, 24) - } else { - // Simple rating display (star + rating + dot + reviews count) - HStack(spacing: 6) { - Image(systemName: "star.fill") - .font(.system(size: 16)) - .foregroundColor(.appForegroundAdaptive) - - Text(String(format: "%.1f", averageRating)) - .font(.system(size: 18, weight: .semibold, design: .rounded)) - .foregroundColor(.appForegroundAdaptive) - - Circle() - .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) - .frame(width: 4, height: 4) - - Text( - "\(reviews.count) \(reviews.count == 1 ? L10n.current.review.lowercased() : L10n.current.tabReviews.lowercased())" - ) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - } - .frame(maxWidth: .infinity, alignment: .leading) - .padding(.horizontal, 24) - .padding(.vertical, 16) - } - } - - // Horizontal scrolling reviews - if !isLoading && !reviewsWithText.isEmpty { - ScrollView(.horizontal, showsIndicators: false) { - HStack(alignment: .top, spacing: 0) { - ForEach(Array(reviewsWithText.enumerated()), id: \.element.id) { index, review in - HStack(alignment: .top, spacing: 0) { - // Gap before first item - if index == 0 { - Spacer() - .frame(width: 24) - } - - ReviewCardView(review: review) - .frame(width: UIScreen.main.bounds.width * 0.75) - - // Vertical divider (except for last item) - if index < reviewsWithText.count - 1 { - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(width: 1) - .frame(height: 160) - .padding(.horizontal, 24) - } - } - } - } - } - - // See all button (only show if 10+ reviews) - if reviews.count >= 10 { - Button(action: { - // TODO: Navigate to all reviews - }) { - Text(L10n.current.seeAll) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appMutedForegroundAdaptive) - .frame(maxWidth: .infinity) - .padding(.vertical, 14) - .background(Color.appInputFilled) - .cornerRadius(12) - } - .disabled(true) - .opacity(0.5) - .padding(.horizontal, 24) - } - } - } - .task { - await loadReviews() - } - .onChange(of: refreshId) { _, _ in - Task { - await loadReviews() - } - } - } - - private func loadReviews() async { - isLoading = true - error = nil - - do { - let apiMediaType = mediaType == "movie" ? "MOVIE" : "TV_SHOW" - reviews = try await ReviewService.shared.getReviews( - tmdbId: mediaId, - mediaType: apiMediaType - ) - isLoading = false - } catch { - self.error = error.localizedDescription - isLoading = false - } - } - - private func starIcon(for index: Int) -> String { - if Double(index) <= averageRating { - return "star.fill" - } else if Double(index) - 0.5 <= averageRating { - return "star.leadinghalf.filled" - } else { - return "star" - } - } - - private func starColor(for index: Int) -> Color { - if Double(index) <= averageRating || Double(index) - 0.5 <= averageRating { - return .appForegroundAdaptive - } else { - return .gray.opacity(0.3) - } - } -} - -// MARK: - Review Card (for horizontal scroll) -struct ReviewCardView: View { - let review: ReviewListItem - - // Fixed height for review card content - private let cardHeight: CGFloat = 180 - private let maxTextLines: Int = 3 - - private var usernameInitial: String { - review.user.username.first?.uppercased() ?? "?" - } - - private var timeAgo: String { - let formatter = RelativeDateTimeFormatter() - formatter.unitsStyle = .abbreviated - - let dateFormatter = ISO8601DateFormatter() - dateFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] - - if let date = dateFormatter.date(from: review.createdAt) { - return formatter.localizedString(for: date, relativeTo: Date()) - } - return "" - } - - private var userRank: String { - // Fictional rank based on review count or rating - let ranks = ["Cinéfilo", "Crítico", "Entusiasta", "Maratonista", "Expert"] - let index = abs(review.user.id.hashValue) % ranks.count - return ranks[index] - } - - // Check if text is likely truncated (rough estimate) - private var isTextLong: Bool { - review.review.count > 150 - } - - var body: some View { - VStack(alignment: .leading, spacing: 8) { - // Header: Avatar + Username + Badge - HStack(spacing: 10) { - // Avatar - if let avatarUrl = review.user.avatarUrl, - let url = URL(string: avatarUrl) - { - AsyncImage(url: url) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - avatarFallback - } - } - .frame(width: 40, height: 40) - .clipShape(Circle()) - } else { - avatarFallback - } - - VStack(alignment: .leading, spacing: 2) { - Text(review.user.username) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appForegroundAdaptive) - - // Rank badge - Text(userRank) - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - } - - Spacer() - } - - // Stars + Time - HStack(spacing: 6) { - // Stars - HStack(spacing: 2) { - ForEach(1...5, id: \.self) { index in - Image(systemName: ratingIcon(for: index)) - .font(.system(size: 10)) - .foregroundColor(ratingColor(for: index)) - } - } - - Circle() - .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) - .frame(width: 3, height: 3) - - Text(timeAgo) - .font(.caption2) - .foregroundColor(.appMutedForegroundAdaptive) - - Spacer() - } - - // Review text - if !review.review.isEmpty { - Text(review.review) - .font(.callout) - .foregroundColor(.appForegroundAdaptive) - .lineSpacing(4) - .lineLimit(maxTextLines) - .frame(maxWidth: .infinity, alignment: .leading) - .blur(radius: review.hasSpoilers ? 6 : 0) - .overlay( - review.hasSpoilers - ? Text(L10n.current.containSpoilers) - .font(.caption.weight(.medium)) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.horizontal, 8) - .padding(.vertical, 4) - .background(Color.appInputFilled) - .cornerRadius(6) - : nil - ) - } - - // Show more button (if text is long) - if isTextLong && !review.hasSpoilers { - Button(action: { - // TODO: Expand review - }) { - Text(L10n.current.showMore) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appMutedForegroundAdaptive) - .underline() - } - .disabled(true) - } - - Spacer(minLength: 0) - } - .frame(height: cardHeight) - .frame(maxWidth: .infinity, alignment: .leading) - } - - private var avatarFallback: some View { - Circle() - .fill(Color.appInputFilled) - .frame(width: 40, height: 40) - .overlay( - Text(usernameInitial) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appForegroundAdaptive) - ) - } - - private func ratingIcon(for index: Int) -> String { - let rating = review.rating - if Double(index) <= rating { - return "star.fill" - } else if Double(index) - 0.5 <= rating { - return "star.leadinghalf.filled" - } else { - return "star" - } - } - - private func ratingColor(for index: Int) -> Color { - let rating = review.rating - if Double(index) <= rating || Double(index) - 0.5 <= rating { - return .yellow - } else { - return .gray.opacity(0.3) - } - } -} - // MARK: - Badge View struct BadgeView: View { let text: String diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift index 91864bdb..4efe3f66 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift @@ -102,46 +102,45 @@ struct ReviewItemSkeleton: View { HStack(alignment: .top, spacing: 12) { // Avatar skeleton Circle() - .fill(Color.appInputFilled) + .fill(Color.appSkeletonAdaptive) .frame(width: 40, height: 40) - + VStack(alignment: .leading, spacing: 0) { // Header: username + time HStack { RoundedRectangle(cornerRadius: 4) - .fill(Color.appInputFilled) + .fill(Color.appSkeletonAdaptive) .frame(width: 100, height: 14) - + Spacer() - + RoundedRectangle(cornerRadius: 4) - .fill(Color.appInputFilled) + .fill(Color.appSkeletonAdaptive) .frame(width: 40, height: 12) } - + // Stars skeleton HStack(spacing: 2) { ForEach(0..<5, id: \.self) { _ in RoundedRectangle(cornerRadius: 2) - .fill(Color.appInputFilled) + .fill(Color.appSkeletonAdaptive) .frame(width: 14, height: 14) } } .padding(.top, 4) - + // Review text skeleton VStack(alignment: .leading, spacing: 4) { RoundedRectangle(cornerRadius: 4) - .fill(Color.appInputFilled) + .fill(Color.appSkeletonAdaptive) .frame(height: 14) RoundedRectangle(cornerRadius: 4) - .fill(Color.appInputFilled) + .fill(Color.appSkeletonAdaptive) .frame(width: 200, height: 14) } .padding(.top, 8) } } - .shimmer() } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift index bbdf2dc2..a949851c 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift @@ -187,9 +187,8 @@ struct CategoryListView: View { LazyVGrid(columns: columns, spacing: 16) { ForEach(0..<12, id: \.self) { _ in RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) + .fill(Color.appSkeletonAdaptive) .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() } } .padding(.horizontal, 24) @@ -217,9 +216,8 @@ struct CategoryListView: View { if isLoadingMore { ForEach(0..<3, id: \.self) { _ in RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) + .fill(Color.appSkeletonAdaptive) .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() } } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift index b9651998..15fac62c 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift @@ -121,18 +121,16 @@ struct HomeSectionSkeleton: View { var body: some View { VStack(alignment: .leading, spacing: 16) { RoundedRectangle(cornerRadius: 4) - .fill(Color.appBorderAdaptive) + .fill(Color.appSkeletonAdaptive) .frame(width: 140, height: 20) .padding(.horizontal, 24) - .shimmer() ScrollView(.horizontal, showsIndicators: false) { HStack(spacing: 12) { ForEach(0..<5, id: \.self) { _ in RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) + .fill(Color.appSkeletonAdaptive) .frame(width: 120, height: 180) - .shimmer() } } .padding(.horizontal, 24) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift index 421b40bc..110c03f0 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift @@ -78,7 +78,7 @@ struct SearchTabView: View { } // Results - if isLoading { + if isLoading || isLoadingPopular { ScrollView { LazyVStack(alignment: .leading, spacing: 24) { SearchSkeletonSection() @@ -112,18 +112,6 @@ struct SearchTabView: View { .padding(.vertical, 24) } } - } else if isLoadingPopular { - // Show skeleton for popular content - ScrollView(showsIndicators: false) { - VStack(spacing: 32) { - HomeSectionSkeleton() - HomeSectionSkeleton() - HomeSectionSkeleton() - HomeSectionSkeleton() - } - .padding(.top, 24) - .padding(.bottom, 80) - } } else { // Show popular content with horizontal scroll sections ScrollView(showsIndicators: false) { @@ -310,9 +298,8 @@ struct SearchSkeletonSection: View { var body: some View { VStack(alignment: .leading, spacing: 12) { RoundedRectangle(cornerRadius: 4) - .fill(Color.appBorderAdaptive) + .fill(Color.appSkeletonAdaptive) .frame(width: 80, height: 16) - .shimmer() LazyVGrid(columns: columns, spacing: 12) { ForEach(0..<6, id: \.self) { _ in @@ -326,44 +313,7 @@ struct SearchSkeletonSection: View { struct PosterSkeletonCard: View { var body: some View { RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) + .fill(Color.appSkeletonAdaptive) .aspectRatio(2 / 3, contentMode: .fit) - .shimmer() - } -} - -// MARK: - Shimmer Effect -struct ShimmerModifier: ViewModifier { - @State private var phase: CGFloat = 0 - - func body(content: Content) -> some View { - content - .overlay( - GeometryReader { geometry in - LinearGradient( - gradient: Gradient(colors: [ - Color.clear, - Color.white.opacity(0.3), - Color.clear, - ]), - startPoint: .leading, - endPoint: .trailing - ) - .frame(width: geometry.size.width * 2) - .offset(x: -geometry.size.width + (geometry.size.width * 2 * phase)) - } - .mask(content) - ) - .onAppear { - withAnimation(.linear(duration: 1.5).repeatForever(autoreverses: false)) { - phase = 1 - } - } - } -} - -extension View { - func shimmer() -> some View { - modifier(ShimmerModifier()) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift new file mode 100644 index 00000000..69316597 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift @@ -0,0 +1,370 @@ +// +// ReviewSectionView.swift +// Plotwist +// + +import SwiftUI + +// MARK: - Review Section +struct ReviewSectionView: View { + let mediaId: Int + let mediaType: String + let refreshId: UUID + var onEmptyStateTapped: (() -> Void)? + + @State private var reviews: [ReviewListItem] = [] + @State private var isLoading = true + @State private var error: String? + + private var averageRating: Double { + guard !reviews.isEmpty else { return 0 } + let total = reviews.reduce(0) { $0 + $1.rating } + return total / Double(reviews.count) + } + + private var reviewsWithText: [ReviewListItem] { + reviews.filter { !$0.review.isEmpty } + } + + // Show featured rating (with film strips) only for highly rated content with many reviews + private var isFeaturedRating: Bool { + reviews.count >= 10 && averageRating >= 4.5 + } + + var body: some View { + VStack(spacing: 16) { + // Rating Header + if isLoading { + // Loading skeleton + HStack(spacing: 6) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 16, height: 16) + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 30, height: 18) + Circle() + .fill(Color.appSkeletonAdaptive) + .frame(width: 4, height: 4) + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 80, height: 14) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) + } else if reviews.isEmpty { + // Empty state - tappable to open review sheet + Button(action: { + onEmptyStateTapped?() + }) { + VStack(spacing: 8) { + Text(L10n.current.beFirstToReview) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + Text(L10n.current.shareYourOpinion) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 32) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(style: StrokeStyle(lineWidth: 1, dash: [5])) + .foregroundColor(.appBorderAdaptive) + ) + } + .buttonStyle(.plain) + .padding(.horizontal, 24) + } else if isFeaturedRating { + // Featured rating display with film strips (10+ reviews AND rating >= 4.5) + HStack(spacing: 8) { + // Left film strip + Image("FilmStrip") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(height: 140) + .shadow(color: Color.black.opacity(0.1), radius: 3, x: 0, y: 3) + .shadow(color: Color.black.opacity(0.06), radius: 6, x: 0, y: 6) + + // Rating content + VStack(spacing: 4) { + // Large rating number + Text(String(format: "%.1f", averageRating)) + .font(.system(size: 56, weight: .semibold, design: .rounded)) + .foregroundColor(.appForegroundAdaptive) + + // Stars + HStack(spacing: 4) { + ForEach(1...5, id: \.self) { index in + Image(systemName: starIcon(for: index)) + .font(.system(size: 14)) + .foregroundColor(starColor(for: index)) + } + } + + // Reviews count + Text( + "\(reviews.count) \(reviews.count == 1 ? L10n.current.review.lowercased() : L10n.current.tabReviews.lowercased())" + ) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 4) + } + + // Right film strip (mirrored) + Image("FilmStrip") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(height: 140) + .scaleEffect(x: -1, y: 1) + .shadow(color: Color.black.opacity(0.1), radius: 3, x: 0, y: 3) + .shadow(color: Color.black.opacity(0.06), radius: 6, x: 0, y: 6) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 24) + } else { + // Simple rating display (star + rating + dot + reviews count) + HStack(spacing: 6) { + Image(systemName: "star.fill") + .font(.system(size: 16)) + .foregroundColor(.appForegroundAdaptive) + + Text(String(format: "%.1f", averageRating)) + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + + Circle() + .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) + .frame(width: 4, height: 4) + + Text( + "\(reviews.count) \(reviews.count == 1 ? L10n.current.review.lowercased() : L10n.current.tabReviews.lowercased())" + ) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) + } + + // Horizontal scrolling reviews + if !isLoading && !reviewsWithText.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { + HStack(alignment: .top, spacing: 0) { + ForEach(Array(reviewsWithText.enumerated()), id: \.element.id) { index, review in + HStack(alignment: .top, spacing: 0) { + ReviewCardView(review: review) + .frame(width: min(UIScreen.main.bounds.width * 0.75, 300)) + .padding(.leading, index == 0 ? 24 : 0) + .padding(.trailing, 24) + + // Vertical divider (except for last item) + if index < reviewsWithText.count - 1 { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(width: 1) + .frame(height: 140) + } + } + } + } + } + } + + // See all button (show if 3+ reviews) + if !isLoading && reviews.count >= 3 { + Button(action: { + // TODO: Navigate to all reviews + }) { + Text(L10n.current.seeAll) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(maxWidth: .infinity) + .padding(.vertical, 14) + .background(Color.appInputFilled) + .cornerRadius(12) + } + .disabled(true) + .opacity(0.5) + .padding(.horizontal, 24) + } + } + .padding(.bottom, 80) + .task { + await loadReviews() + } + .onChange(of: refreshId) { _, _ in + Task { + await loadReviews() + } + } + } + + private func loadReviews() async { + isLoading = true + error = nil + + do { + let apiMediaType = mediaType == "movie" ? "MOVIE" : "TV_SHOW" + reviews = try await ReviewService.shared.getReviews( + tmdbId: mediaId, + mediaType: apiMediaType + ) + isLoading = false + } catch { + self.error = error.localizedDescription + isLoading = false + } + } + + private func starIcon(for index: Int) -> String { + if Double(index) <= averageRating { + return "star.fill" + } else if Double(index) - 0.5 <= averageRating { + return "star.leadinghalf.filled" + } else { + return "star" + } + } + + private func starColor(for index: Int) -> Color { + if Double(index) <= averageRating || Double(index) - 0.5 <= averageRating { + return .appForegroundAdaptive + } else { + return .gray.opacity(0.3) + } + } +} + +// MARK: - Review Card +struct ReviewCardView: View { + let review: ReviewListItem + + private var usernameInitial: String { + review.user.username.first?.uppercased() ?? "?" + } + + private var timeAgo: String { + let formatter = RelativeDateTimeFormatter() + formatter.unitsStyle = .abbreviated + + let dateFormatter = ISO8601DateFormatter() + dateFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + + if let date = dateFormatter.date(from: review.createdAt) { + return formatter.localizedString(for: date, relativeTo: Date()) + } + return "" + } + + private var userRank: String { + let ranks = ["Cinéfilo", "Crítico", "Entusiasta", "Maratonista", "Expert"] + let index = abs(review.user.id.hashValue) % ranks.count + return ranks[index] + } + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + // Header: Avatar + Username + Rank + HStack(spacing: 12) { + // Avatar + if let avatarUrl = review.user.avatarUrl, + let url = URL(string: avatarUrl) + { + AsyncImage(url: url) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + avatarFallback + } + } + .frame(width: 40, height: 40) + .clipShape(Circle()) + } else { + avatarFallback + } + + VStack(alignment: .leading, spacing: 2) { + Text(review.user.username) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + + Text(userRank) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + } + + // Stars + Time + HStack(spacing: 8) { + HStack(spacing: 2) { + ForEach(1...5, id: \.self) { index in + Image(systemName: ratingIcon(for: index)) + .font(.system(size: 14)) + .foregroundColor(ratingColor(for: index)) + } + } + + Text(timeAgo) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + + // Review text + if !review.review.isEmpty { + Text(review.review) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .lineLimit(3) + .frame(maxWidth: .infinity, alignment: .leading) + .blur(radius: review.hasSpoilers ? 6 : 0) + .overlay( + review.hasSpoilers + ? Text(L10n.current.containSpoilers) + .font(.caption.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background(Color.appInputFilled) + .cornerRadius(6) + : nil + ) + } + } + .frame(maxWidth: .infinity, alignment: .leading) + } + + private var avatarFallback: some View { + Circle() + .fill(Color.appInputFilled) + .frame(width: 40, height: 40) + .overlay( + Text(usernameInitial) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + ) + } + + private func ratingIcon(for index: Int) -> String { + let rating = review.rating + if Double(index) <= rating { + return "star.fill" + } else if Double(index) - 0.5 <= rating { + return "star.leadinghalf.filled" + } else { + return "star" + } + } + + private func ratingColor(for index: Int) -> Color { + let rating = review.rating + if Double(index) <= rating || Double(index) - 0.5 <= rating { + return .appForegroundAdaptive + } else { + return .appMutedForegroundAdaptive.opacity(0.3) + } + } +} From 90db7df672d8b71758a0574c15bcf9dff216c9f7 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 17 Jan 2026 17:04:14 -0300 Subject: [PATCH 32/77] refactor(reviews): update star color to yellow in ReviewSectionView and ReviewCardView, and adjust padding for improved layout --- .../Plotwist/Views/Reviews/ReviewSectionView.swift | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift index 69316597..9f77cf8c 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift @@ -127,7 +127,7 @@ struct ReviewSectionView: View { HStack(spacing: 6) { Image(systemName: "star.fill") .font(.system(size: 16)) - .foregroundColor(.appForegroundAdaptive) + .foregroundColor(.yellow) Text(String(format: "%.1f", averageRating)) .font(.system(size: 18, weight: .semibold)) @@ -164,6 +164,7 @@ struct ReviewSectionView: View { .fill(Color.appBorderAdaptive.opacity(0.5)) .frame(width: 1) .frame(height: 140) + .padding(.trailing, 24) } } } @@ -229,7 +230,7 @@ struct ReviewSectionView: View { private func starColor(for index: Int) -> Color { if Double(index) <= averageRating || Double(index) - 0.5 <= averageRating { - return .appForegroundAdaptive + return .yellow } else { return .gray.opacity(0.3) } @@ -362,7 +363,7 @@ struct ReviewCardView: View { private func ratingColor(for index: Int) -> Color { let rating = review.rating if Double(index) <= rating || Double(index) - 0.5 <= rating { - return .appForegroundAdaptive + return .yellow } else { return .appMutedForegroundAdaptive.opacity(0.3) } From 82fb68444d59c5b279bfb8c5005eab02a2bf2649 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 17 Jan 2026 17:08:02 -0300 Subject: [PATCH 33/77] feat(search): implement immediate loading state in SearchTabView based on user input to enhance responsiveness --- apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift index 110c03f0..83517c60 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift @@ -157,6 +157,13 @@ struct SearchTabView: View { } .onChange(of: searchText) { newValue in searchTask?.cancel() + + if !newValue.isEmpty { + isLoading = true // Show skeleton immediately when user types + } else { + isLoading = false + } + searchTask = Task { try? await Task.sleep(nanoseconds: 500_000_000) // 500ms debounce guard !Task.isCancelled else { return } From f2d0356bbf7ab83038c82619c8fe72a1bd54f7b6 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 17 Jan 2026 17:13:02 -0300 Subject: [PATCH 34/77] feat(reviews): add delete review functionality and enhance localization for review-related strings --- .../Plotwist/Localization/Strings.swift | 39 +++++++++-- .../Views/Details/ReviewListView.swift | 69 ++++++++++++++++++- .../Plotwist/Views/Details/ReviewSheet.swift | 67 ++++++++++++++++-- .../Views/Reviews/ReviewSectionView.swift | 54 +++++++++++++-- 4 files changed, 212 insertions(+), 17 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 4e1c6828..5f499029 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -104,7 +104,10 @@ enum L10n { images: "Images", backdrops: "Backdrops", posters: "Posters", - noImagesFound: "No images found." + noImagesFound: "No images found.", + deleteReview: "Delete Review", + deleteReviewConfirmation: "Are you sure you want to delete this review?", + delete: "Delete" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -194,7 +197,10 @@ enum L10n { images: "Imagens", backdrops: "Backdrops", posters: "Pôsteres", - noImagesFound: "Nenhuma imagem encontrada." + noImagesFound: "Nenhuma imagem encontrada.", + deleteReview: "Excluir Avaliação", + deleteReviewConfirmation: "Tem certeza que deseja excluir esta avaliação?", + delete: "Excluir" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -284,7 +290,10 @@ enum L10n { images: "Imágenes", backdrops: "Fondos", posters: "Pósters", - noImagesFound: "No se encontraron imágenes." + noImagesFound: "No se encontraron imágenes.", + deleteReview: "Eliminar Reseña", + deleteReviewConfirmation: "¿Estás seguro de que deseas eliminar esta reseña?", + delete: "Eliminar" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -374,7 +383,10 @@ enum L10n { images: "Images", backdrops: "Fonds d'écran", posters: "Affiches", - noImagesFound: "Aucune image trouvée." + noImagesFound: "Aucune image trouvée.", + deleteReview: "Supprimer l'avis", + deleteReviewConfirmation: "Êtes-vous sûr de vouloir supprimer cet avis?", + delete: "Supprimer" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -464,7 +476,10 @@ enum L10n { images: "Bilder", backdrops: "Hintergründe", posters: "Poster", - noImagesFound: "Keine Bilder gefunden." + noImagesFound: "Keine Bilder gefunden.", + deleteReview: "Bewertung löschen", + deleteReviewConfirmation: "Möchten Sie diese Bewertung wirklich löschen?", + delete: "Löschen" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -554,7 +569,10 @@ enum L10n { images: "Immagini", backdrops: "Sfondi", posters: "Locandine", - noImagesFound: "Nessuna immagine trovata." + noImagesFound: "Nessuna immagine trovata.", + deleteReview: "Elimina recensione", + deleteReviewConfirmation: "Sei sicuro di voler eliminare questa recensione?", + delete: "Elimina" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -643,7 +661,10 @@ enum L10n { images: "画像", backdrops: "背景", posters: "ポスター", - noImagesFound: "画像が見つかりません。" + noImagesFound: "画像が見つかりません。", + deleteReview: "レビューを削除", + deleteReviewConfirmation: "このレビューを削除してもよろしいですか?", + delete: "削除" ), ] } @@ -746,4 +767,8 @@ struct Strings { let backdrops: String let posters: String let noImagesFound: String + // Delete Review + let deleteReview: String + let deleteReviewConfirmation: String + let delete: String } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift index 4efe3f66..4bc49cbb 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift @@ -12,6 +12,9 @@ struct ReviewListView: View { @State private var reviews: [ReviewListItem] = [] @State private var isLoading = true @State private var error: String? + @State private var currentUserId: String? + @State private var selectedReview: ReviewListItem? + @State private var showEditSheet = false var body: some View { VStack(spacing: 0) { @@ -59,8 +62,19 @@ struct ReviewListView: View { LazyVStack(spacing: 0) { ForEach(Array(reviews.filter { !$0.review.isEmpty }.enumerated()), id: \.element.id) { index, review in VStack(spacing: 0) { - ReviewItemView(review: review) - .padding(.vertical, 16) + // Make tappable only if it's the current user's review + if review.userId == currentUserId { + ReviewItemView(review: review) + .padding(.vertical, 16) + .contentShape(Rectangle()) + .onTapGesture { + selectedReview = review + showEditSheet = true + } + } else { + ReviewItemView(review: review) + .padding(.vertical, 16) + } // Divider (except for last item) if index < reviews.filter({ !$0.review.isEmpty }).count - 1 { @@ -74,8 +88,40 @@ struct ReviewListView: View { } } .task { + await loadCurrentUser() await loadReviews() } + .sheet(isPresented: $showEditSheet) { + if let review = selectedReview { + ReviewSheet( + mediaId: mediaId, + mediaType: mediaType, + existingReview: review.toReview(), + onDeleted: { + Task { + await loadReviews() + } + } + ) + } + } + .onChange(of: showEditSheet) { _, isShowing in + if !isShowing { + // Reload reviews when sheet is dismissed (in case of edit) + Task { + await loadReviews() + } + } + } + } + + private func loadCurrentUser() async { + do { + let user = try await AuthService.shared.getCurrentUser() + currentUserId = user.id + } catch { + currentUserId = nil + } } private func loadReviews() async { @@ -96,6 +142,25 @@ struct ReviewListView: View { } } +// MARK: - ReviewListItem Extension +extension ReviewListItem { + func toReview() -> Review { + Review( + id: id, + userId: userId, + tmdbId: tmdbId, + mediaType: mediaType, + review: review, + rating: rating, + hasSpoilers: hasSpoilers, + seasonNumber: seasonNumber, + episodeNumber: episodeNumber, + language: language, + createdAt: createdAt + ) + } +} + // MARK: - Skeleton struct ReviewItemSkeleton: View { var body: some View { diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift index fe5ad94f..f5342d9c 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift @@ -9,6 +9,7 @@ struct ReviewSheet: View { let mediaId: Int let mediaType: String let existingReview: Review? + let onDeleted: (() -> Void)? @Environment(\.dismiss) private var dismiss @ObservedObject private var themeManager = ThemeManager.shared @@ -16,13 +17,16 @@ struct ReviewSheet: View { @State private var reviewText: String = "" @State private var hasSpoilers: Bool = false @State private var isLoading: Bool = false + @State private var isDeleting: Bool = false @State private var showErrorAlert: Bool = false + @State private var showDeleteConfirmation: Bool = false @State private var errorMessage: String = "" - init(mediaId: Int, mediaType: String, existingReview: Review? = nil) { + init(mediaId: Int, mediaType: String, existingReview: Review? = nil, onDeleted: (() -> Void)? = nil) { self.mediaId = mediaId self.mediaType = mediaType self.existingReview = existingReview + self.onDeleted = onDeleted if let existingReview = existingReview { _rating = State(initialValue: existingReview.rating) @@ -112,15 +116,38 @@ struct ReviewSheet: View { .foregroundColor(.appBackgroundAdaptive) .cornerRadius(12) } - .disabled(!isFormValid || isLoading) - .opacity(!isFormValid || isLoading ? 0.5 : 1) + .disabled(!isFormValid || isLoading || isDeleting) + .opacity(!isFormValid || isLoading || isDeleting ? 0.5 : 1) + + // Delete Button (only when editing) + if existingReview != nil { + Button(action: { showDeleteConfirmation = true }) { + Group { + if isDeleting { + ProgressView() + .tint(.red) + } else { + HStack(spacing: 8) { + Image(systemName: "trash") + Text(L10n.current.deleteReview) + .fontWeight(.semibold) + } + } + } + .frame(maxWidth: .infinity) + .frame(height: 48) + .foregroundColor(.red) + } + .disabled(isLoading || isDeleting) + .opacity(isLoading || isDeleting ? 0.5 : 1) + } } .padding(.horizontal, 24) .padding(.bottom, 16) } } } - .presentationDetents([.height(420)]) + .presentationDetents([.height(existingReview != nil ? 480 : 420)]) .presentationCornerRadius(24) .presentationDragIndicator(.hidden) .preferredColorScheme(themeManager.current.colorScheme) @@ -129,6 +156,14 @@ struct ReviewSheet: View { } message: { Text(errorMessage) } + .alert(L10n.current.deleteReview, isPresented: $showDeleteConfirmation) { + Button(L10n.current.cancel, role: .cancel) {} + Button(L10n.current.delete, role: .destructive) { + deleteReview() + } + } message: { + Text(L10n.current.deleteReviewConfirmation) + } } private var isFormValid: Bool { @@ -176,6 +211,30 @@ struct ReviewSheet: View { } } } + + private func deleteReview() { + guard let existingReview = existingReview else { return } + + isDeleting = true + + Task { + do { + try await ReviewService.shared.deleteReview(id: existingReview.id) + + await MainActor.run { + isDeleting = false + onDeleted?() + dismiss() + } + } catch { + await MainActor.run { + isDeleting = false + errorMessage = error.localizedDescription + showErrorAlert = true + } + } + } + } } // MARK: - Preview diff --git a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift index 9f77cf8c..8d124274 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift @@ -15,6 +15,9 @@ struct ReviewSectionView: View { @State private var reviews: [ReviewListItem] = [] @State private var isLoading = true @State private var error: String? + @State private var currentUserId: String? + @State private var selectedReview: ReviewListItem? + @State private var showEditSheet = false private var averageRating: Double { guard !reviews.isEmpty else { return 0 } @@ -153,10 +156,21 @@ struct ReviewSectionView: View { HStack(alignment: .top, spacing: 0) { ForEach(Array(reviewsWithText.enumerated()), id: \.element.id) { index, review in HStack(alignment: .top, spacing: 0) { - ReviewCardView(review: review) - .frame(width: min(UIScreen.main.bounds.width * 0.75, 300)) - .padding(.leading, index == 0 ? 24 : 0) - .padding(.trailing, 24) + Group { + if review.userId == currentUserId { + ReviewCardView(review: review) + .contentShape(Rectangle()) + .onTapGesture { + selectedReview = review + showEditSheet = true + } + } else { + ReviewCardView(review: review) + } + } + .frame(width: min(UIScreen.main.bounds.width * 0.75, 300)) + .padding(.leading, index == 0 ? 24 : 0) + .padding(.trailing, 24) // Vertical divider (except for last item) if index < reviewsWithText.count - 1 { @@ -192,6 +206,7 @@ struct ReviewSectionView: View { } .padding(.bottom, 80) .task { + await loadCurrentUser() await loadReviews() } .onChange(of: refreshId) { _, _ in @@ -199,6 +214,37 @@ struct ReviewSectionView: View { await loadReviews() } } + .sheet(isPresented: $showEditSheet) { + if let review = selectedReview { + ReviewSheet( + mediaId: mediaId, + mediaType: mediaType, + existingReview: review.toReview(), + onDeleted: { + Task { + await loadReviews() + } + } + ) + } + } + .onChange(of: showEditSheet) { _, isShowing in + if !isShowing { + // Reload reviews when sheet is dismissed (in case of edit) + Task { + await loadReviews() + } + } + } + } + + private func loadCurrentUser() async { + do { + let user = try await AuthService.shared.getCurrentUser() + currentUserId = user.id + } catch { + currentUserId = nil + } } private func loadReviews() async { From 9d28d608a21e99a7e462c367ebb19e63f7b92c52 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 17 Jan 2026 17:23:29 -0300 Subject: [PATCH 35/77] feat(reviews): enhance ReviewSheet layout with spoilers toggle and adjust padding for improved usability --- .../Plotwist/Views/Details/ReviewSheet.swift | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift index f5342d9c..91d4db50 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift @@ -60,13 +60,14 @@ struct ReviewSheet: View { StarRatingView(rating: $rating, size: 36) .frame(maxWidth: .infinity) - // Review Text - VStack(alignment: .leading, spacing: 8) { + // Review Text with Spoilers Toggle + ZStack(alignment: .bottomTrailing) { ZStack(alignment: .topLeading) { TextEditor(text: $reviewText) .frame(height: 120) .padding(.horizontal, 12) - .padding(.vertical, 8) + .padding(.top, 8) + .padding(.bottom, 36) .background(Color.appInputFilled) .cornerRadius(12) .foregroundColor(.appForegroundAdaptive) @@ -80,24 +81,22 @@ struct ReviewSheet: View { .allowsHitTesting(false) } } - } - - // Spoilers Checkbox - HStack(spacing: 12) { + + // Spoilers Toggle inside the text field Button(action: { hasSpoilers.toggle() }) { - HStack(spacing: 8) { + HStack(spacing: 6) { Image(systemName: hasSpoilers ? "checkmark.square.fill" : "square") - .font(.system(size: 20)) - .foregroundColor(hasSpoilers ? .accentColor : .gray) + .font(.system(size: 16)) + .foregroundColor(hasSpoilers ? .appForegroundAdaptive : .gray) Text(L10n.current.containSpoilers) - .font(.subheadline) + .font(.caption) .foregroundColor(.appMutedForegroundAdaptive) } + .padding(.horizontal, 12) + .padding(.vertical, 8) } - .frame(maxWidth: .infinity) } - .padding(.vertical, 4) // Submit Button Button(action: submitReview) { @@ -147,7 +146,7 @@ struct ReviewSheet: View { } } } - .presentationDetents([.height(existingReview != nil ? 480 : 420)]) + .presentationDetents([.height(existingReview != nil ? 440 : 380)]) .presentationCornerRadius(24) .presentationDragIndicator(.hidden) .preferredColorScheme(themeManager.current.colorScheme) From 4c8c1c79469086dc4f03f84318fa7fae3fccff11 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 17 Jan 2026 17:50:42 -0300 Subject: [PATCH 36/77] feat(media): implement MediaDetailViewActions and StatusSheet for managing user item status, enhance localization for status-related strings, and integrate user item loading in MediaDetailView --- .../Components/MediaDetailViewActions.swift | 135 +++++++++++++ .../Plotwist/Components/StatusSheet.swift | 189 ++++++++++++++++++ .../Plotwist/Localization/Strings.swift | 64 +++++- .../Plotwist/Services/UserItemService.swift | 164 +++++++++++++++ .../Views/Details/MediaDetailView.swift | 36 +++- .../Views/Reviews/ReviewSectionView.swift | 4 +- 6 files changed, 574 insertions(+), 18 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift create mode 100644 apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift create mode 100644 apps/ios/Plotwist/Plotwist/Services/UserItemService.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift b/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift new file mode 100644 index 00000000..034f80df --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift @@ -0,0 +1,135 @@ +// +// MediaDetailViewActions.swift +// Plotwist +// + +import SwiftUI + +struct MediaDetailViewActions: View { + let mediaId: Int + let mediaType: String + let userReview: Review? + let userItem: UserItem? + let onReviewTapped: () -> Void + let onStatusChanged: (UserItem?) -> Void + + @State private var showStatusSheet = false + + var body: some View { + HStack(spacing: 12) { + // Review Button + ReviewButton(hasReview: userReview != nil, action: onReviewTapped) + + // Status Button + StatusButton( + currentStatus: userItem?.statusEnum, + action: { showStatusSheet = true } + ) + + Spacer() + } + .sheet(isPresented: $showStatusSheet) { + StatusSheet( + mediaId: mediaId, + mediaType: mediaType, + currentStatus: userItem?.statusEnum, + currentItemId: userItem?.id, + onStatusChanged: { newStatus in + if let newStatus = newStatus { + // Reload user item to get the updated data + Task { + await reloadUserItem() + } + } else { + onStatusChanged(nil) + } + } + ) + } + } + + private func reloadUserItem() async { + do { + let apiMediaType = mediaType == "movie" ? "MOVIE" : "TV_SHOW" + let item = try await UserItemService.shared.getUserItem( + tmdbId: mediaId, + mediaType: apiMediaType + ) + await MainActor.run { + onStatusChanged(item) + } + } catch { + // Ignore errors + } + } +} + +// MARK: - Status Button +struct StatusButton: View { + let currentStatus: UserItemStatus? + let action: () -> Void + + var body: some View { + ActionButton( + currentStatus?.displayName(strings: L10n.current) ?? L10n.current.updateStatus, + icon: currentStatus?.icon ?? "pencil", + iconColor: currentStatus != nil ? statusIconColor : nil, + action: action + ) + } + + private var statusIconColor: Color? { + guard let status = currentStatus else { return nil } + switch status { + case .watched: return .green + case .watching: return .blue + case .watchlist: return .orange + case .dropped: return .red + } + } +} + +// MARK: - Preview +#Preview { + VStack(spacing: 16) { + MediaDetailViewActions( + mediaId: 550, + mediaType: "movie", + userReview: nil, + userItem: nil, + onReviewTapped: {}, + onStatusChanged: { _ in } + ) + .padding(.horizontal, 24) + + MediaDetailViewActions( + mediaId: 550, + mediaType: "movie", + userReview: Review( + id: "1", + userId: "user1", + tmdbId: 550, + mediaType: "MOVIE", + review: "Great movie!", + rating: 4.5, + hasSpoilers: false, + seasonNumber: nil, + episodeNumber: nil, + language: "en-US", + createdAt: "2025-01-10T12:00:00.000Z" + ), + userItem: UserItem( + id: "1", + userId: "user1", + tmdbId: 550, + mediaType: "MOVIE", + status: "WATCHED", + addedAt: "2025-01-10T12:00:00.000Z", + updatedAt: "2025-01-10T12:00:00.000Z" + ), + onReviewTapped: {}, + onStatusChanged: { _ in } + ) + .padding(.horizontal, 24) + } +} diff --git a/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift b/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift new file mode 100644 index 00000000..7e60dbab --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift @@ -0,0 +1,189 @@ +// +// StatusSheet.swift +// Plotwist +// + +import SwiftUI + +struct StatusSheet: View { + let mediaId: Int + let mediaType: String + let currentStatus: UserItemStatus? + let currentItemId: String? + let onStatusChanged: (UserItemStatus?) -> Void + + @Environment(\.dismiss) private var dismiss + @ObservedObject private var themeManager = ThemeManager.shared + @State private var isLoading = false + @State private var selectedStatus: UserItemStatus? + @State private var showErrorAlert = false + @State private var errorMessage = "" + + init( + mediaId: Int, + mediaType: String, + currentStatus: UserItemStatus?, + currentItemId: String?, + onStatusChanged: @escaping (UserItemStatus?) -> Void + ) { + self.mediaId = mediaId + self.mediaType = mediaType + self.currentStatus = currentStatus + self.currentItemId = currentItemId + self.onStatusChanged = onStatusChanged + _selectedStatus = State(initialValue: currentStatus) + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Drag Indicator + RoundedRectangle(cornerRadius: 2.5) + .fill(Color.gray.opacity(0.4)) + .frame(width: 36, height: 5) + .padding(.top, 12) + .padding(.bottom, 16) + + // Title + Text(L10n.current.updateStatus) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + .frame(maxWidth: .infinity, alignment: .center) + .padding(.bottom, 20) + + // Status Options Grid + LazyVGrid(columns: [GridItem(.flexible()), GridItem(.flexible())], spacing: 12) { + ForEach(UserItemStatus.allCases, id: \.rawValue) { status in + StatusOptionButton( + status: status, + isSelected: selectedStatus == status, + isLoading: isLoading && selectedStatus == status, + action: { + handleStatusChange(status) + } + ) + } + } + .padding(.horizontal, 24) + + Spacer() + } + } + .presentationDetents([.height(340)]) + .presentationCornerRadius(24) + .presentationDragIndicator(.hidden) + .preferredColorScheme(themeManager.current.colorScheme) + .alert("Error", isPresented: $showErrorAlert) { + Button("OK", role: .cancel) {} + } message: { + Text(errorMessage) + } + } + + private func handleStatusChange(_ status: UserItemStatus) { + // If tapping the same status, remove it + if status == currentStatus, let itemId = currentItemId { + isLoading = true + selectedStatus = status + + Task { + do { + try await UserItemService.shared.deleteUserItem(id: itemId) + + await MainActor.run { + isLoading = false + onStatusChanged(nil) + dismiss() + } + } catch { + await MainActor.run { + isLoading = false + errorMessage = error.localizedDescription + showErrorAlert = true + } + } + } + } else { + // Set new status + isLoading = true + selectedStatus = status + + Task { + do { + let apiMediaType = mediaType == "movie" ? "MOVIE" : "TV_SHOW" + _ = try await UserItemService.shared.upsertUserItem( + tmdbId: mediaId, + mediaType: apiMediaType, + status: status + ) + + await MainActor.run { + isLoading = false + onStatusChanged(status) + dismiss() + } + } catch { + await MainActor.run { + isLoading = false + errorMessage = error.localizedDescription + showErrorAlert = true + } + } + } + } + } +} + +// MARK: - Status Option Button +struct StatusOptionButton: View { + let status: UserItemStatus + let isSelected: Bool + let isLoading: Bool + let action: () -> Void + + private var iconColor: Color { + switch status { + case .watched: return .green + case .watching: return .blue + case .watchlist: return .orange + case .dropped: return .red + } + } + + var body: some View { + Button(action: action) { + VStack(spacing: 10) { + if isLoading { + ProgressView() + .tint(.appMutedForegroundAdaptive) + } else { + Image(systemName: status.icon) + .font(.system(size: 22)) + .foregroundColor(isSelected ? iconColor : .appMutedForegroundAdaptive) + + Text(status.displayName(strings: L10n.current)) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + } + } + .frame(maxWidth: .infinity) + .frame(height: 80) + .background(Color.appInputFilled) + .cornerRadius(12) + } + .disabled(isLoading) + } +} + +// MARK: - Preview +#Preview { + StatusSheet( + mediaId: 550, + mediaType: "movie", + currentStatus: nil, + currentItemId: nil, + onStatusChanged: { _ in } + ) +} diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 5f499029..0581027f 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -82,6 +82,7 @@ enum L10n { reviewUpdateSuccess: "Review updated successfully!", reviewDeleteSuccess: "Review deleted successfully!", tabReviews: "Reviews", + reviewSingular: "Review", tabWhereToWatch: "Where to Watch", tabCredits: "Credits", tabRecommendations: "Recommendations", @@ -107,7 +108,13 @@ enum L10n { noImagesFound: "No images found.", deleteReview: "Delete Review", deleteReviewConfirmation: "Are you sure you want to delete this review?", - delete: "Delete" + delete: "Delete", + // Status + updateStatus: "Update Status", + watched: "Watched", + watching: "Watching", + watchlist: "Watchlist", + dropped: "Dropped" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -178,6 +185,7 @@ enum L10n { reviewUpdateSuccess: "Avaliação atualizada com sucesso!", reviewDeleteSuccess: "Avaliação excluída com sucesso!", tabReviews: "Avaliações", + reviewSingular: "Avaliação", tabWhereToWatch: "Onde Assistir", tabCredits: "Elenco", tabRecommendations: "Recomendações", @@ -200,7 +208,12 @@ enum L10n { noImagesFound: "Nenhuma imagem encontrada.", deleteReview: "Excluir Avaliação", deleteReviewConfirmation: "Tem certeza que deseja excluir esta avaliação?", - delete: "Excluir" + delete: "Excluir", + updateStatus: "Atualizar Status", + watched: "Assistido", + watching: "Assistindo", + watchlist: "Lista", + dropped: "Abandonado" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -271,6 +284,7 @@ enum L10n { reviewUpdateSuccess: "¡Reseña actualizada con éxito!", reviewDeleteSuccess: "¡Reseña eliminada con éxito!", tabReviews: "Reseñas", + reviewSingular: "Reseña", tabWhereToWatch: "Dónde Ver", tabCredits: "Créditos", tabRecommendations: "Recomendaciones", @@ -293,7 +307,12 @@ enum L10n { noImagesFound: "No se encontraron imágenes.", deleteReview: "Eliminar Reseña", deleteReviewConfirmation: "¿Estás seguro de que deseas eliminar esta reseña?", - delete: "Eliminar" + delete: "Eliminar", + updateStatus: "Actualizar Estado", + watched: "Visto", + watching: "Viendo", + watchlist: "Lista", + dropped: "Abandonado" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -364,6 +383,7 @@ enum L10n { reviewUpdateSuccess: "Avis mis à jour avec succès!", reviewDeleteSuccess: "Avis supprimé avec succès!", tabReviews: "Avis", + reviewSingular: "Avis", tabWhereToWatch: "Où Regarder", tabCredits: "Crédits", tabRecommendations: "Recommandations", @@ -386,7 +406,12 @@ enum L10n { noImagesFound: "Aucune image trouvée.", deleteReview: "Supprimer l'avis", deleteReviewConfirmation: "Êtes-vous sûr de vouloir supprimer cet avis?", - delete: "Supprimer" + delete: "Supprimer", + updateStatus: "Mettre à jour le statut", + watched: "Vu", + watching: "En cours", + watchlist: "À voir", + dropped: "Abandonné" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -457,6 +482,7 @@ enum L10n { reviewUpdateSuccess: "Bewertung erfolgreich aktualisiert!", reviewDeleteSuccess: "Bewertung erfolgreich gelöscht!", tabReviews: "Bewertungen", + reviewSingular: "Bewertung", tabWhereToWatch: "Wo Ansehen", tabCredits: "Besetzung", tabRecommendations: "Empfehlungen", @@ -479,7 +505,12 @@ enum L10n { noImagesFound: "Keine Bilder gefunden.", deleteReview: "Bewertung löschen", deleteReviewConfirmation: "Möchten Sie diese Bewertung wirklich löschen?", - delete: "Löschen" + delete: "Löschen", + updateStatus: "Status aktualisieren", + watched: "Gesehen", + watching: "Schaue ich", + watchlist: "Watchlist", + dropped: "Abgebrochen" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -550,6 +581,7 @@ enum L10n { reviewUpdateSuccess: "Recensione aggiornata con successo!", reviewDeleteSuccess: "Recensione eliminata con successo!", tabReviews: "Recensioni", + reviewSingular: "Recensione", tabWhereToWatch: "Dove Guardare", tabCredits: "Cast", tabRecommendations: "Raccomandazioni", @@ -572,7 +604,12 @@ enum L10n { noImagesFound: "Nessuna immagine trovata.", deleteReview: "Elimina recensione", deleteReviewConfirmation: "Sei sicuro di voler eliminare questa recensione?", - delete: "Elimina" + delete: "Elimina", + updateStatus: "Aggiorna stato", + watched: "Visto", + watching: "In visione", + watchlist: "Da vedere", + dropped: "Abbandonato" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -642,6 +679,7 @@ enum L10n { reviewUpdateSuccess: "レビューが正常に更新されました!", reviewDeleteSuccess: "レビューが正常に削除されました!", tabReviews: "レビュー", + reviewSingular: "レビュー", tabWhereToWatch: "視聴方法", tabCredits: "キャスト", tabRecommendations: "おすすめ", @@ -664,7 +702,12 @@ enum L10n { noImagesFound: "画像が見つかりません。", deleteReview: "レビューを削除", deleteReviewConfirmation: "このレビューを削除してもよろしいですか?", - delete: "削除" + delete: "削除", + updateStatus: "ステータスを更新", + watched: "視聴済み", + watching: "視聴中", + watchlist: "ウォッチリスト", + dropped: "中断" ), ] } @@ -743,6 +786,7 @@ struct Strings { let reviewDeleteSuccess: String // Tabs let tabReviews: String + let reviewSingular: String let tabWhereToWatch: String let tabCredits: String let tabRecommendations: String @@ -771,4 +815,10 @@ struct Strings { let deleteReview: String let deleteReviewConfirmation: String let delete: String + // Status + let updateStatus: String + let watched: String + let watching: String + let watchlist: String + let dropped: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift b/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift new file mode 100644 index 00000000..d77fb278 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift @@ -0,0 +1,164 @@ +// +// UserItemService.swift +// Plotwist +// + +import Foundation + +class UserItemService { + static let shared = UserItemService() + private init() {} + + // MARK: - Get User Item + func getUserItem(tmdbId: Int, mediaType: String) async throws -> UserItem? { + guard let token = UserDefaults.standard.string(forKey: "token"), + let url = URL(string: "\(API.baseURL)/user/item?tmdbId=\(tmdbId)&mediaType=\(mediaType)") + else { + throw UserItemError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw UserItemError.invalidResponse + } + + if http.statusCode == 404 { + return nil + } + + guard http.statusCode == 200 else { + throw UserItemError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(UserItemResponse.self, from: data) + return result.userItem + } + + // MARK: - Upsert User Item (Create or Update) + func upsertUserItem(tmdbId: Int, mediaType: String, status: UserItemStatus) async throws -> UserItem { + guard let url = URL(string: "\(API.baseURL)/user/item"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw UserItemError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "PUT" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + let body: [String: Any] = [ + "tmdbId": tmdbId, + "mediaType": mediaType, + "status": status.rawValue, + ] + + request.httpBody = try JSONSerialization.data(withJSONObject: body) + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw UserItemError.invalidResponse + } + + guard http.statusCode == 200 || http.statusCode == 201 else { + throw UserItemError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(UpsertUserItemResponse.self, from: data) + return result.userItem + } + + // MARK: - Delete User Item + func deleteUserItem(id: String) async throws { + guard let url = URL(string: "\(API.baseURL)/user/item/\(id)"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw UserItemError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "DELETE" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + + let (_, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw UserItemError.invalidResponse + } + + guard http.statusCode == 200 || http.statusCode == 204 else { + throw UserItemError.invalidResponse + } + } +} + +// MARK: - Models +enum UserItemStatus: String, CaseIterable { + case watched = "WATCHED" + case watching = "WATCHING" + case watchlist = "WATCHLIST" + case dropped = "DROPPED" + + var icon: String { + switch self { + case .watched: return "eye.fill" + case .watching: return "play.circle.fill" + case .watchlist: return "clock.fill" + case .dropped: return "xmark.circle.fill" + } + } + + func displayName(strings: Strings) -> String { + switch self { + case .watched: return strings.watched + case .watching: return strings.watching + case .watchlist: return strings.watchlist + case .dropped: return strings.dropped + } + } +} + +struct UserItem: Codable, Identifiable { + let id: String + let userId: String + let tmdbId: Int + let mediaType: String + let status: String + let addedAt: String + let updatedAt: String + + var statusEnum: UserItemStatus? { + UserItemStatus(rawValue: status) + } +} + +struct UserItemResponse: Codable { + let userItem: UserItem? +} + +struct UpsertUserItemResponse: Codable { + let userItem: UserItem +} + +enum UserItemError: LocalizedError { + case invalidURL + case invalidResponse + case serverError(String) + + var errorDescription: String? { + switch self { + case .invalidURL: return "Invalid URL" + case .invalidResponse: return "Invalid response from server" + case .serverError(let message): return "Server error: \(message)" + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 5584a857..f7d127f1 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -13,6 +13,7 @@ struct MediaDetailView: View { @State private var details: MovieDetails? @State private var isLoading = true @State private var userReview: Review? + @State private var userItem: UserItem? @State private var showReviewSheet = false @State private var reviewsRefreshId = UUID() @State private var backdropImages: [TMDBImage] = [] @@ -157,15 +158,20 @@ struct MediaDetailView: View { // Content Section VStack(alignment: .leading, spacing: 20) { - // Review Button + // Action Buttons (Review + Status) if AuthService.shared.isAuthenticated { - HStack { - ReviewButton(hasReview: userReview != nil) { + MediaDetailViewActions( + mediaId: mediaId, + mediaType: mediaType, + userReview: userReview, + userItem: userItem, + onReviewTapped: { showReviewSheet = true + }, + onStatusChanged: { newItem in + userItem = newItem } - - Spacer() - } + ) } // Overview @@ -173,7 +179,7 @@ struct MediaDetailView: View { Text(overview) .font(.subheadline) .foregroundColor(.appMutedForegroundAdaptive) - .lineSpacing(4) + .lineSpacing(6) } // Genres Badges @@ -191,7 +197,7 @@ struct MediaDetailView: View { .offset(y: contentOffset) Spacer() - .frame(height: 32) + .frame(height: 24) .offset(y: contentOffset) // Divider @@ -202,7 +208,7 @@ struct MediaDetailView: View { .offset(y: contentOffset) Spacer() - .frame(height: 16) + .frame(height: 24) .offset(y: contentOffset) // Review Section @@ -234,6 +240,7 @@ struct MediaDetailView: View { await loadImages() if AuthService.shared.isAuthenticated { await loadUserReview() + await loadUserItem() } } .onChange(of: showReviewSheet) { _, isPresented in @@ -279,6 +286,17 @@ struct MediaDetailView: View { } } + private func loadUserItem() async { + do { + userItem = try await UserItemService.shared.getUserItem( + tmdbId: mediaId, + mediaType: mediaType == "movie" ? "MOVIE" : "TV_SHOW" + ) + } catch { + userItem = nil + } + } + private func loadImages() async { do { let images = try await TMDBService.shared.getImages(id: mediaId, mediaType: mediaType) diff --git a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift index 8d124274..eb3f164a 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift @@ -107,7 +107,7 @@ struct ReviewSectionView: View { // Reviews count Text( - "\(reviews.count) \(reviews.count == 1 ? L10n.current.review.lowercased() : L10n.current.tabReviews.lowercased())" + "\(reviews.count) \(reviews.count == 1 ? L10n.current.reviewSingular.lowercased() : L10n.current.tabReviews.lowercased())" ) .font(.subheadline) .foregroundColor(.appMutedForegroundAdaptive) @@ -141,7 +141,7 @@ struct ReviewSectionView: View { .frame(width: 4, height: 4) Text( - "\(reviews.count) \(reviews.count == 1 ? L10n.current.review.lowercased() : L10n.current.tabReviews.lowercased())" + "\(reviews.count) \(reviews.count == 1 ? L10n.current.reviewSingular.lowercased() : L10n.current.tabReviews.lowercased())" ) .font(.subheadline) .foregroundColor(.appMutedForegroundAdaptive) From 31f6ad00267e78bec2679422c4722b50a27bc604 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 17 Jan 2026 22:15:50 -0300 Subject: [PATCH 37/77] feat(watch-entries): implement user watch entries functionality, including creation, retrieval, updating, and deletion of watch entries; enhance user item status management in MediaDetailView and integrate watch entries display --- ...160000_create_user_watch_entries_table.sql | 10 + .../20260117211057_tearful_vertigo.sql | 9 + .../meta/20260117211057_snapshot.json | 1644 +++++++++++++++++ apps/api/priv/migrations/meta/_journal.json | 7 + .../user-watch-entries-repository.ts | 51 + apps/api/src/db/schema/index.ts | 26 +- .../http/controllers/user-items-controller.ts | 30 + .../controllers/watch-entries-controller.ts | 90 + apps/api/src/http/routes/index.ts | 2 + apps/api/src/http/routes/watch-entries.ts | 87 + apps/api/src/http/schemas/user-items.ts | 13 +- apps/api/src/http/schemas/watch-entries.ts | 57 + .../Components/MediaDetailViewActions.swift | 58 +- .../Plotwist/Components/StatusSheet.swift | 349 +++- .../Plotwist/Localization/Strings.swift | 82 +- .../Plotwist/Services/TMDBService.swift | 68 + .../Plotwist/Services/UserItemService.swift | 124 +- .../Views/Details/MediaDetailView.swift | 11 + .../Views/Details/WhereToWatchSection.swift | 172 ++ 19 files changed, 2823 insertions(+), 67 deletions(-) create mode 100644 apps/api/priv/migrations/20260117160000_create_user_watch_entries_table.sql create mode 100644 apps/api/priv/migrations/20260117211057_tearful_vertigo.sql create mode 100644 apps/api/priv/migrations/meta/20260117211057_snapshot.json create mode 100644 apps/api/src/db/repositories/user-watch-entries-repository.ts create mode 100644 apps/api/src/http/controllers/watch-entries-controller.ts create mode 100644 apps/api/src/http/routes/watch-entries.ts create mode 100644 apps/api/src/http/schemas/watch-entries.ts create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift diff --git a/apps/api/priv/migrations/20260117160000_create_user_watch_entries_table.sql b/apps/api/priv/migrations/20260117160000_create_user_watch_entries_table.sql new file mode 100644 index 00000000..85d57f83 --- /dev/null +++ b/apps/api/priv/migrations/20260117160000_create_user_watch_entries_table.sql @@ -0,0 +1,10 @@ +-- Create user_watch_entries table for tracking rewatch history +CREATE TABLE IF NOT EXISTS "user_watch_entries" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(), + "user_item_id" uuid NOT NULL REFERENCES "user_items"("id") ON DELETE CASCADE, + "watched_at" timestamp DEFAULT now() NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL +); + +-- Create index for faster lookups by user_item_id +CREATE INDEX IF NOT EXISTS "user_watch_entries_user_item_idx" ON "user_watch_entries" ("user_item_id"); diff --git a/apps/api/priv/migrations/20260117211057_tearful_vertigo.sql b/apps/api/priv/migrations/20260117211057_tearful_vertigo.sql new file mode 100644 index 00000000..2a73ac2d --- /dev/null +++ b/apps/api/priv/migrations/20260117211057_tearful_vertigo.sql @@ -0,0 +1,9 @@ +CREATE TABLE "user_watch_entries" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "user_item_id" uuid NOT NULL, + "watched_at" timestamp DEFAULT now() NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +ALTER TABLE "user_watch_entries" ADD CONSTRAINT "user_watch_entries_user_item_id_user_items_id_fk" FOREIGN KEY ("user_item_id") REFERENCES "public"."user_items"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +CREATE INDEX "user_watch_entries_user_item_idx" ON "user_watch_entries" USING btree ("user_item_id"); \ No newline at end of file diff --git a/apps/api/priv/migrations/meta/20260117211057_snapshot.json b/apps/api/priv/migrations/meta/20260117211057_snapshot.json new file mode 100644 index 00000000..6123a85a --- /dev/null +++ b/apps/api/priv/migrations/meta/20260117211057_snapshot.json @@ -0,0 +1,1644 @@ +{ + "id": "cae7945f-8a8c-44db-a3fe-3309df133a97", + "prevId": "d8206ef4-3adb-4b26-8e63-dfc5c96b5555", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.followers": { + "name": "followers", + "schema": "", + "columns": { + "follower_id": { + "name": "follower_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "followed_id": { + "name": "followed_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "followers_follower_id_users_id_fk": { + "name": "followers_follower_id_users_id_fk", + "tableFrom": "followers", + "tableTo": "users", + "columnsFrom": [ + "follower_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "followers_followed_id_users_id_fk": { + "name": "followers_followed_id_users_id_fk", + "tableFrom": "followers", + "tableTo": "users", + "columnsFrom": [ + "followed_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "followers_followed_id_follower_id_pk": { + "name": "followers_followed_id_follower_id_pk", + "columns": [ + "followed_id", + "follower_id" + ] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.import_movies": { + "name": "import_movies", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "import_id": { + "name": "import_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "end_date": { + "name": "end_date", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "item_status": { + "name": "item_status", + "type": "status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "import_status": { + "name": "import_status", + "type": "import_item_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "TMDB_ID": { + "name": "TMDB_ID", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "__metadata": { + "name": "__metadata", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "import_movies_import_id_user_imports_id_fk": { + "name": "import_movies_import_id_user_imports_id_fk", + "tableFrom": "import_movies", + "tableTo": "user_imports", + "columnsFrom": [ + "import_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.import_series": { + "name": "import_series", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "import_id": { + "name": "import_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "start_date": { + "name": "start_date", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "end_date": { + "name": "end_date", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "item_status": { + "name": "item_status", + "type": "status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "import_status": { + "name": "import_status", + "type": "import_item_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "TMDB_ID": { + "name": "TMDB_ID", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "watched_episodes": { + "name": "watched_episodes", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "series_episodes": { + "name": "series_episodes", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "__metadata": { + "name": "__metadata", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "import_series_import_id_user_imports_id_fk": { + "name": "import_series_import_id_user_imports_id_fk", + "tableFrom": "import_series", + "tableTo": "user_imports", + "columnsFrom": [ + "import_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.likes": { + "name": "likes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "entity_id": { + "name": "entity_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "entity_type": { + "name": "entity_type", + "type": "like_entity", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "idx_entity_id": { + "name": "idx_entity_id", + "columns": [ + { + "expression": "entity_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "likes_user_id_users_id_fk": { + "name": "likes_user_id_users_id_fk", + "tableFrom": "likes", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.list_items": { + "name": "list_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "list_id": { + "name": "list_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "tmdb_id": { + "name": "tmdb_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "media_type": { + "name": "media_type", + "type": "media_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "position": { + "name": "position", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "list_items_list_id_lists_id_fk": { + "name": "list_items_list_id_lists_id_fk", + "tableFrom": "list_items", + "tableTo": "lists", + "columnsFrom": [ + "list_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "list_items_id_list_id_pk": { + "name": "list_items_id_list_id_pk", + "columns": [ + "id", + "list_id" + ] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.lists": { + "name": "lists", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "banner_url": { + "name": "banner_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "visibility": { + "name": "visibility", + "type": "list_visibility", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "user_id_idx": { + "name": "user_id_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "lists_user_id_users_id_fk": { + "name": "lists_user_id_users_id_fk", + "tableFrom": "lists", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.magic_tokens": { + "name": "magic_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "token": { + "name": "token", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "used": { + "name": "used", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": { + "token_user_id_idx": { + "name": "token_user_id_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "token_idx": { + "name": "token_idx", + "columns": [ + { + "expression": "token", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "magic_tokens_user_id_users_id_fk": { + "name": "magic_tokens_user_id_users_id_fk", + "tableFrom": "magic_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.review_replies": { + "name": "review_replies", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "reply": { + "name": "reply", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "review_id": { + "name": "review_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "review_replies_user_id_users_id_fk": { + "name": "review_replies_user_id_users_id_fk", + "tableFrom": "review_replies", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "review_replies_review_id_reviews_id_fk": { + "name": "review_replies_review_id_reviews_id_fk", + "tableFrom": "review_replies", + "tableTo": "reviews", + "columnsFrom": [ + "review_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.reviews": { + "name": "reviews", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "tmdb_id": { + "name": "tmdb_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "media_type": { + "name": "media_type", + "type": "media_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "review": { + "name": "review", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "rating": { + "name": "rating", + "type": "real", + "primaryKey": false, + "notNull": true + }, + "has_spoilers": { + "name": "has_spoilers", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "language": { + "name": "language", + "type": "languages", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "season_number": { + "name": "season_number", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "episode_number": { + "name": "episode_number", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "reviews_user_id_users_id_fk": { + "name": "reviews_user_id_users_id_fk", + "tableFrom": "reviews", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.social_links": { + "name": "social_links", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "platform": { + "name": "platform", + "type": "social_platforms", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "social_links_user_id_users_id_fk": { + "name": "social_links_user_id_users_id_fk", + "tableFrom": "social_links", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "user_platform_unique": { + "name": "user_platform_unique", + "nullsNotDistinct": false, + "columns": [ + "user_id", + "platform" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.subscriptions": { + "name": "subscriptions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "subscription_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "subscription_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'ACTIVE'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "canceled_at": { + "name": "canceled_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "cancellation_reason": { + "name": "cancellation_reason", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "active_subscription_idx": { + "name": "active_subscription_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "where": "\"subscriptions\".\"status\" = $1", + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "subscriptions_user_id_users_id_fk": { + "name": "subscriptions_user_id_users_id_fk", + "tableFrom": "subscriptions", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user_activities": { + "name": "user_activities", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "activity_type": { + "name": "activity_type", + "type": "activity_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "entity_id": { + "name": "entity_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "entity_type": { + "name": "entity_type", + "type": "like_entity", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "metadata": { + "name": "metadata", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "user_activity_idx": { + "name": "user_activity_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "user_activities_user_id_users_id_fk": { + "name": "user_activities_user_id_users_id_fk", + "tableFrom": "user_activities", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user_episodes": { + "name": "user_episodes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "tmdb_id": { + "name": "tmdb_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "season_number": { + "name": "season_number", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "episode_number": { + "name": "episode_number", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "watched_at": { + "name": "watched_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "runtime": { + "name": "runtime", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "user_episodes_user_id_users_id_fk": { + "name": "user_episodes_user_id_users_id_fk", + "tableFrom": "user_episodes", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "user_episode_unique": { + "name": "user_episode_unique", + "nullsNotDistinct": false, + "columns": [ + "user_id", + "tmdb_id", + "season_number", + "episode_number" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user_imports": { + "name": "user_imports", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "items_count": { + "name": "items_count", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "import_status": { + "name": "import_status", + "type": "import_status_enum", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "provider": { + "name": "provider", + "type": "providers_enum", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "user_imports_user_id_users_id_fk": { + "name": "user_imports_user_id_users_id_fk", + "tableFrom": "user_imports", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user_items": { + "name": "user_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "tmdb_id": { + "name": "tmdb_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "media_type": { + "name": "media_type", + "type": "media_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "added_at": { + "name": "added_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "user_items_user_id_users_id_fk": { + "name": "user_items_user_id_users_id_fk", + "tableFrom": "user_items", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "user_items_userid_tmdbid_media_type_unique": { + "name": "user_items_userid_tmdbid_media_type_unique", + "nullsNotDistinct": false, + "columns": [ + "user_id", + "tmdb_id", + "media_type" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user_watch_entries": { + "name": "user_watch_entries", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "user_item_id": { + "name": "user_item_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "watched_at": { + "name": "watched_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "user_watch_entries_user_item_idx": { + "name": "user_watch_entries_user_item_idx", + "columns": [ + { + "expression": "user_item_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "user_watch_entries_user_item_id_user_items_id_fk": { + "name": "user_watch_entries_user_item_id_user_items_id_fk", + "tableFrom": "user_watch_entries", + "tableTo": "user_items", + "columnsFrom": [ + "user_item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "username": { + "name": "username", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "password": { + "name": "password", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "banner_url": { + "name": "banner_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "avatar_url": { + "name": "avatar_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "is_legacy": { + "name": "is_legacy", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "biography": { + "name": "biography", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "username_lower_idx": { + "name": "username_lower_idx", + "columns": [ + { + "expression": "LOWER(\"username\")", + "asc": true, + "isExpression": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "email_lower_idx": { + "name": "email_lower_idx", + "columns": [ + { + "expression": "LOWER(\"email\")", + "asc": true, + "isExpression": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "users_username_unique": { + "name": "users_username_unique", + "nullsNotDistinct": false, + "columns": [ + "username" + ] + }, + "users_email_unique": { + "name": "users_email_unique", + "nullsNotDistinct": false, + "columns": [ + "email" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user_preferences": { + "name": "user_preferences", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "watch_providers_ids": { + "name": "watch_providers_ids", + "type": "integer[]", + "primaryKey": false, + "notNull": false + }, + "watch_region": { + "name": "watch_region", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_preferences_user_id_users_id_fk": { + "name": "user_preferences_user_id_users_id_fk", + "tableFrom": "user_preferences", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "user_preferences_user_id_unique": { + "name": "user_preferences_user_id_unique", + "nullsNotDistinct": false, + "columns": [ + "user_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.activity_type": { + "name": "activity_type", + "schema": "public", + "values": [ + "CREATE_LIST", + "ADD_ITEM", + "DELETE_ITEM", + "LIKE_REVIEW", + "LIKE_REPLY", + "LIKE_LIST", + "CREATE_REVIEW", + "CREATE_REPLY", + "FOLLOW_USER", + "WATCH_EPISODE", + "CHANGE_STATUS", + "CREATE_ACCOUNT" + ] + }, + "public.import_item_status": { + "name": "import_item_status", + "schema": "public", + "values": [ + "COMPLETED", + "FAILED", + "NOT_STARTED" + ] + }, + "public.import_status_enum": { + "name": "import_status_enum", + "schema": "public", + "values": [ + "PARTIAL", + "COMPLETED", + "FAILED", + "NOT_STARTED" + ] + }, + "public.languages": { + "name": "languages", + "schema": "public", + "values": [ + "en-US", + "es-ES", + "fr-FR", + "it-IT", + "de-DE", + "pt-BR", + "ja-JP" + ] + }, + "public.like_entity": { + "name": "like_entity", + "schema": "public", + "values": [ + "REVIEW", + "REPLY", + "LIST" + ] + }, + "public.list_visibility": { + "name": "list_visibility", + "schema": "public", + "values": [ + "PUBLIC", + "NETWORK", + "PRIVATE" + ] + }, + "public.media_type": { + "name": "media_type", + "schema": "public", + "values": [ + "TV_SHOW", + "MOVIE" + ] + }, + "public.providers_enum": { + "name": "providers_enum", + "schema": "public", + "values": [ + "MY_ANIME_LIST", + "LETTERBOXD" + ] + }, + "public.social_platforms": { + "name": "social_platforms", + "schema": "public", + "values": [ + "INSTAGRAM", + "TIKTOK", + "YOUTUBE", + "X" + ] + }, + "public.status": { + "name": "status", + "schema": "public", + "values": [ + "WATCHLIST", + "WATCHED", + "WATCHING", + "DROPPED" + ] + }, + "public.subscription_status": { + "name": "subscription_status", + "schema": "public", + "values": [ + "ACTIVE", + "CANCELED", + "EXPIRED", + "PENDING_CANCELLATION" + ] + }, + "public.subscription_type": { + "name": "subscription_type", + "schema": "public", + "values": [ + "MEMBER", + "PRO" + ] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/apps/api/priv/migrations/meta/_journal.json b/apps/api/priv/migrations/meta/_journal.json index 8692f823..eef9c295 100644 --- a/apps/api/priv/migrations/meta/_journal.json +++ b/apps/api/priv/migrations/meta/_journal.json @@ -379,6 +379,13 @@ "when": 1743464364062, "tag": "20250331233924_alter_subscription_table", "breakpoints": true + }, + { + "idx": 54, + "version": "7", + "when": 1768684257805, + "tag": "20260117211057_tearful_vertigo", + "breakpoints": true } ] } \ No newline at end of file diff --git a/apps/api/src/db/repositories/user-watch-entries-repository.ts b/apps/api/src/db/repositories/user-watch-entries-repository.ts new file mode 100644 index 00000000..741df0a7 --- /dev/null +++ b/apps/api/src/db/repositories/user-watch-entries-repository.ts @@ -0,0 +1,51 @@ +import { eq } from 'drizzle-orm' +import { db } from '..' +import { userWatchEntries } from '../schema' + +export async function createWatchEntry(data: { + userItemId: string + watchedAt?: Date +}) { + const [entry] = await db + .insert(userWatchEntries) + .values({ + userItemId: data.userItemId, + watchedAt: data.watchedAt ?? new Date(), + }) + .returning() + + return entry +} + +export async function getWatchEntriesByUserItemId(userItemId: string) { + return db + .select() + .from(userWatchEntries) + .where(eq(userWatchEntries.userItemId, userItemId)) + .orderBy(userWatchEntries.watchedAt) +} + +export async function updateWatchEntry(id: string, watchedAt: Date) { + const [entry] = await db + .update(userWatchEntries) + .set({ watchedAt }) + .where(eq(userWatchEntries.id, id)) + .returning() + + return entry +} + +export async function deleteWatchEntry(id: string) { + const [entry] = await db + .delete(userWatchEntries) + .where(eq(userWatchEntries.id, id)) + .returning() + + return entry +} + +export async function deleteWatchEntriesByUserItemId(userItemId: string) { + await db + .delete(userWatchEntries) + .where(eq(userWatchEntries.userItemId, userItemId)) +} diff --git a/apps/api/src/db/schema/index.ts b/apps/api/src/db/schema/index.ts index 36027875..b393edd6 100644 --- a/apps/api/src/db/schema/index.ts +++ b/apps/api/src/db/schema/index.ts @@ -288,11 +288,34 @@ export const userItems = pgTable( }) ) -export const userItemsRelations = relations(userItems, ({ one }) => ({ +export const userItemsRelations = relations(userItems, ({ one, many }) => ({ user: one(users, { fields: [userItems.userId], references: [users.id], }), + watchEntries: many(userWatchEntries), +})) + +export const userWatchEntries = pgTable( + 'user_watch_entries', + { + id: uuid('id').default(sql`gen_random_uuid()`).primaryKey(), + userItemId: uuid('user_item_id') + .references(() => userItems.id, { onDelete: 'cascade' }) + .notNull(), + watchedAt: timestamp('watched_at').defaultNow().notNull(), + createdAt: timestamp('created_at').defaultNow().notNull(), + }, + table => ({ + userItemIdx: index('user_watch_entries_user_item_idx').on(table.userItemId), + }) +) + +export const userWatchEntriesRelations = relations(userWatchEntries, ({ one }) => ({ + userItem: one(userItems, { + fields: [userWatchEntries.userItemId], + references: [userItems.id], + }), })) export const magicTokens = pgTable( @@ -573,6 +596,7 @@ export const subscriptionsRelations = relations(subscriptions, ({ one }) => ({ export const schema = { users, userItems, + userWatchEntries, reviews, reviewReplies, lists, diff --git a/apps/api/src/http/controllers/user-items-controller.ts b/apps/api/src/http/controllers/user-items-controller.ts index 891df4df..d695efd8 100644 --- a/apps/api/src/http/controllers/user-items-controller.ts +++ b/apps/api/src/http/controllers/user-items-controller.ts @@ -9,6 +9,11 @@ import { upsertUserItemService } from '@/domain/services/user-items/upsert-user- import { createUserItemEpisodesService } from '@/domain/services/user-items/create-user-item-episodes' import { deleteUserItemEpisodesService } from '@/domain/services/user-items/delete-user-item-episodes' import { getAllUserItemsService } from '@/domain/services/user-items/get-all-user-items' +import { + createWatchEntry, + deleteWatchEntriesByUserItemId, + getWatchEntriesByUserItemId, +} from '@/db/repositories/user-watch-entries-repository' import type { FastifyRedis } from '@fastify/redis' import type { FastifyReply, FastifyRequest } from 'fastify' import { @@ -47,6 +52,17 @@ export async function upsertUserItemController( return reply.status(result.status).send({ message: result.message }) } + // Create first watch entry if status is WATCHED and no entries exist + if (status === 'WATCHED') { + const existingEntries = await getWatchEntriesByUserItemId(result.userItem.id) + if (existingEntries.length === 0) { + await createWatchEntry({ userItemId: result.userItem.id }) + } + } else { + // If status changed from WATCHED to something else, delete watch entries + await deleteWatchEntriesByUserItemId(result.userItem.id) + } + await createUserActivity({ userId: request.user.id, activityType: 'CHANGE_STATUS', @@ -133,6 +149,20 @@ export async function getUserItemController( userId: request.user.id, }) + // Include watch entries if user item exists + if (result.userItem) { + const watchEntries = await getWatchEntriesByUserItemId(result.userItem.id) + return reply.status(200).send({ + userItem: { + ...result.userItem, + watchEntries: watchEntries.map(entry => ({ + id: entry.id, + watchedAt: entry.watchedAt.toISOString(), + })), + }, + }) + } + return reply.status(200).send(result) } diff --git a/apps/api/src/http/controllers/watch-entries-controller.ts b/apps/api/src/http/controllers/watch-entries-controller.ts new file mode 100644 index 00000000..1482afc7 --- /dev/null +++ b/apps/api/src/http/controllers/watch-entries-controller.ts @@ -0,0 +1,90 @@ +import type { FastifyReply, FastifyRequest } from 'fastify' +import { + createWatchEntry, + deleteWatchEntry, + getWatchEntriesByUserItemId, + updateWatchEntry, +} from '@/db/repositories/user-watch-entries-repository' +import { + createWatchEntryBodySchema, + deleteWatchEntryParamsSchema, + getWatchEntriesQuerySchema, + updateWatchEntryBodySchema, + updateWatchEntryParamsSchema, +} from '../schemas/watch-entries' + +export async function createWatchEntryController( + request: FastifyRequest, + reply: FastifyReply +) { + const { userItemId, watchedAt } = createWatchEntryBodySchema.parse( + request.body + ) + + const entry = await createWatchEntry({ + userItemId, + watchedAt: watchedAt ? new Date(watchedAt) : undefined, + }) + + return reply.status(201).send({ + watchEntry: { + ...entry, + watchedAt: entry.watchedAt.toISOString(), + createdAt: entry.createdAt.toISOString(), + }, + }) +} + +export async function getWatchEntriesController( + request: FastifyRequest, + reply: FastifyReply +) { + const { userItemId } = getWatchEntriesQuerySchema.parse(request.query) + + const entries = await getWatchEntriesByUserItemId(userItemId) + + return reply.status(200).send({ + watchEntries: entries.map(entry => ({ + ...entry, + watchedAt: entry.watchedAt.toISOString(), + createdAt: entry.createdAt.toISOString(), + })), + }) +} + +export async function updateWatchEntryController( + request: FastifyRequest, + reply: FastifyReply +) { + const { id } = updateWatchEntryParamsSchema.parse(request.params) + const { watchedAt } = updateWatchEntryBodySchema.parse(request.body) + + const entry = await updateWatchEntry(id, new Date(watchedAt)) + + if (!entry) { + return reply.status(404).send({ message: 'Watch entry not found' }) + } + + return reply.status(200).send({ + watchEntry: { + ...entry, + watchedAt: entry.watchedAt.toISOString(), + createdAt: entry.createdAt.toISOString(), + }, + }) +} + +export async function deleteWatchEntryController( + request: FastifyRequest, + reply: FastifyReply +) { + const { id } = deleteWatchEntryParamsSchema.parse(request.params) + + const entry = await deleteWatchEntry(id) + + if (!entry) { + return reply.status(404).send({ message: 'Watch entry not found' }) + } + + return reply.status(204).send() +} diff --git a/apps/api/src/http/routes/index.ts b/apps/api/src/http/routes/index.ts index 78277d02..949e7e64 100644 --- a/apps/api/src/http/routes/index.ts +++ b/apps/api/src/http/routes/index.ts @@ -25,6 +25,7 @@ import { userStatsRoutes } from './user-stats' import { usersRoute } from './users' import { webhookRoutes } from './webhook' import { subscriptionsRoutes } from './subscriptions' +import { watchEntriesRoutes } from './watch-entries' export function routes(app: FastifyInstance) { if (config.app.APP_ENV === 'dev') { @@ -65,6 +66,7 @@ export function routes(app: FastifyInstance) { app.register(importRoutes) app.register(userActivitiesRoutes) app.register(subscriptionsRoutes) + app.register(watchEntriesRoutes) // app.register(userRecommendationsRoutes) return diff --git a/apps/api/src/http/routes/watch-entries.ts b/apps/api/src/http/routes/watch-entries.ts new file mode 100644 index 00000000..2046845f --- /dev/null +++ b/apps/api/src/http/routes/watch-entries.ts @@ -0,0 +1,87 @@ +import type { FastifyInstance } from 'fastify' +import type { ZodTypeProvider } from 'fastify-type-provider-zod' +import { verifyJwt } from '../middlewares/verify-jwt' +import { + createWatchEntryController, + deleteWatchEntryController, + getWatchEntriesController, + updateWatchEntryController, +} from '../controllers/watch-entries-controller' +import { + createWatchEntryBodySchema, + createWatchEntryResponseSchema, + deleteWatchEntryParamsSchema, + getWatchEntriesQuerySchema, + getWatchEntriesResponseSchema, + updateWatchEntryBodySchema, + updateWatchEntryParamsSchema, + updateWatchEntryResponseSchema, +} from '../schemas/watch-entries' + +const WATCH_ENTRIES_TAGS = ['Watch Entries'] + +export async function watchEntriesRoutes(app: FastifyInstance) { + app.after(() => + app.withTypeProvider().route({ + method: 'POST', + url: '/watch-entry', + onRequest: [verifyJwt], + schema: { + description: 'Create a watch entry', + tags: WATCH_ENTRIES_TAGS, + body: createWatchEntryBodySchema, + response: createWatchEntryResponseSchema, + security: [{ bearerAuth: [] }], + }, + handler: createWatchEntryController, + }) + ) + + app.after(() => + app.withTypeProvider().route({ + method: 'GET', + url: '/watch-entries', + onRequest: [verifyJwt], + schema: { + description: 'Get watch entries for a user item', + tags: WATCH_ENTRIES_TAGS, + querystring: getWatchEntriesQuerySchema, + response: getWatchEntriesResponseSchema, + security: [{ bearerAuth: [] }], + }, + handler: getWatchEntriesController, + }) + ) + + app.after(() => + app.withTypeProvider().route({ + method: 'PUT', + url: '/watch-entry/:id', + onRequest: [verifyJwt], + schema: { + description: 'Update a watch entry', + tags: WATCH_ENTRIES_TAGS, + params: updateWatchEntryParamsSchema, + body: updateWatchEntryBodySchema, + response: updateWatchEntryResponseSchema, + security: [{ bearerAuth: [] }], + }, + handler: updateWatchEntryController, + }) + ) + + app.after(() => + app.withTypeProvider().route({ + method: 'DELETE', + url: '/watch-entry/:id', + onRequest: [verifyJwt], + schema: { + description: 'Delete a watch entry', + tags: WATCH_ENTRIES_TAGS, + params: deleteWatchEntryParamsSchema, + security: [{ bearerAuth: [] }], + }, + handler: deleteWatchEntryController, + }) + ) +} diff --git a/apps/api/src/http/schemas/user-items.ts b/apps/api/src/http/schemas/user-items.ts index 8bb10cc0..52cf3524 100644 --- a/apps/api/src/http/schemas/user-items.ts +++ b/apps/api/src/http/schemas/user-items.ts @@ -60,7 +60,18 @@ export const getUserItemQuerySchema = createSelectSchema(schema.userItems) export const getUserItemResponseSchema = { 200: z.object({ - userItem: createSelectSchema(schema.userItems).optional(), + userItem: createSelectSchema(schema.userItems) + .extend({ + watchEntries: z + .array( + z.object({ + id: z.string(), + watchedAt: z.string(), + }) + ) + .optional(), + }) + .optional(), }), } diff --git a/apps/api/src/http/schemas/watch-entries.ts b/apps/api/src/http/schemas/watch-entries.ts new file mode 100644 index 00000000..bce40a44 --- /dev/null +++ b/apps/api/src/http/schemas/watch-entries.ts @@ -0,0 +1,57 @@ +import { z } from 'zod' + +export const createWatchEntryBodySchema = z.object({ + userItemId: z.string().uuid(), + watchedAt: z.string().datetime().optional(), +}) + +export const createWatchEntryResponseSchema = { + 201: z.object({ + watchEntry: z.object({ + id: z.string().uuid(), + userItemId: z.string().uuid(), + watchedAt: z.string(), + createdAt: z.string(), + }), + }), +} + +export const getWatchEntriesQuerySchema = z.object({ + userItemId: z.string().uuid(), +}) + +export const getWatchEntriesResponseSchema = { + 200: z.object({ + watchEntries: z.array( + z.object({ + id: z.string().uuid(), + userItemId: z.string().uuid(), + watchedAt: z.string(), + createdAt: z.string(), + }) + ), + }), +} + +export const updateWatchEntryParamsSchema = z.object({ + id: z.string().uuid(), +}) + +export const updateWatchEntryBodySchema = z.object({ + watchedAt: z.string().datetime(), +}) + +export const updateWatchEntryResponseSchema = { + 200: z.object({ + watchEntry: z.object({ + id: z.string().uuid(), + userItemId: z.string().uuid(), + watchedAt: z.string(), + createdAt: z.string(), + }), + }), +} + +export const deleteWatchEntryParamsSchema = z.object({ + id: z.string().uuid(), +}) diff --git a/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift b/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift index 034f80df..e04532c4 100644 --- a/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift +++ b/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift @@ -12,20 +12,21 @@ struct MediaDetailViewActions: View { let userItem: UserItem? let onReviewTapped: () -> Void let onStatusChanged: (UserItem?) -> Void - + @State private var showStatusSheet = false - + var body: some View { HStack(spacing: 12) { // Review Button ReviewButton(hasReview: userReview != nil, action: onReviewTapped) - + // Status Button StatusButton( currentStatus: userItem?.statusEnum, + rewatchCount: userItem?.watchEntries?.count ?? 0, action: { showStatusSheet = true } ) - + Spacer() } .sheet(isPresented: $showStatusSheet) { @@ -34,8 +35,9 @@ struct MediaDetailViewActions: View { mediaType: mediaType, currentStatus: userItem?.statusEnum, currentItemId: userItem?.id, - onStatusChanged: { newStatus in - if let newStatus = newStatus { + watchEntries: userItem?.watchEntries ?? [], + onStatusChanged: { newStatus, _ in + if newStatus != nil { // Reload user item to get the updated data Task { await reloadUserItem() @@ -47,7 +49,7 @@ struct MediaDetailViewActions: View { ) } } - + private func reloadUserItem() async { do { let apiMediaType = mediaType == "movie" ? "MOVIE" : "TV_SHOW" @@ -67,17 +69,38 @@ struct MediaDetailViewActions: View { // MARK: - Status Button struct StatusButton: View { let currentStatus: UserItemStatus? + let rewatchCount: Int let action: () -> Void - + var body: some View { - ActionButton( - currentStatus?.displayName(strings: L10n.current) ?? L10n.current.updateStatus, - icon: currentStatus?.icon ?? "pencil", - iconColor: currentStatus != nil ? statusIconColor : nil, - action: action - ) + Button(action: action) { + HStack(spacing: 8) { + Image(systemName: currentStatus?.icon ?? "pencil") + .font(.system(size: 14)) + .foregroundColor(statusIconColor ?? .appForegroundAdaptive) + + Text(currentStatus?.displayName(strings: L10n.current) ?? L10n.current.updateStatus) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + + // Rewatch count badge + if currentStatus == .watched && rewatchCount > 1 { + Text("\(rewatchCount)x") + .font(.system(size: 10, weight: .bold)) + .foregroundColor(.white) + .padding(.horizontal, 5) + .padding(.vertical, 2) + .background(Color.green) + .clipShape(Capsule()) + } + } + .padding(.horizontal, 16) + .padding(.vertical, 12) + .background(Color.appInputFilled) + .cornerRadius(12) + } } - + private var statusIconColor: Color? { guard let status = currentStatus else { return nil } switch status { @@ -101,7 +124,7 @@ struct StatusButton: View { onStatusChanged: { _ in } ) .padding(.horizontal, 24) - + MediaDetailViewActions( mediaId: 550, mediaType: "movie", @@ -125,7 +148,8 @@ struct StatusButton: View { mediaType: "MOVIE", status: "WATCHED", addedAt: "2025-01-10T12:00:00.000Z", - updatedAt: "2025-01-10T12:00:00.000Z" + updatedAt: "2025-01-10T12:00:00.000Z", + watchEntries: [WatchEntry(id: "1", watchedAt: "2025-01-10T12:00:00.000Z")] ), onReviewTapped: {}, onStatusChanged: { _ in } diff --git a/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift b/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift index 7e60dbab..370637a0 100644 --- a/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift @@ -10,12 +10,15 @@ struct StatusSheet: View { let mediaType: String let currentStatus: UserItemStatus? let currentItemId: String? - let onStatusChanged: (UserItemStatus?) -> Void + let initialWatchEntries: [WatchEntry] + let onStatusChanged: (UserItemStatus?, [WatchEntry]) -> Void @Environment(\.dismiss) private var dismiss @ObservedObject private var themeManager = ThemeManager.shared @State private var isLoading = false + @State private var isAddingRewatch = false @State private var selectedStatus: UserItemStatus? + @State private var watchEntries: [WatchEntry] = [] @State private var showErrorAlert = false @State private var errorMessage = "" @@ -24,54 +27,120 @@ struct StatusSheet: View { mediaType: String, currentStatus: UserItemStatus?, currentItemId: String?, - onStatusChanged: @escaping (UserItemStatus?) -> Void + watchEntries: [WatchEntry] = [], + onStatusChanged: @escaping (UserItemStatus?, [WatchEntry]) -> Void ) { self.mediaId = mediaId self.mediaType = mediaType self.currentStatus = currentStatus self.currentItemId = currentItemId + self.initialWatchEntries = watchEntries self.onStatusChanged = onStatusChanged _selectedStatus = State(initialValue: currentStatus) + _watchEntries = State(initialValue: watchEntries) + } + + private var sheetHeight: CGFloat { + if selectedStatus == .watched && !watchEntries.isEmpty { + // Base height + rewatch section + let baseHeight: CGFloat = 340 + let rewatchHeaderHeight: CGFloat = 50 + let entryHeight: CGFloat = 32 + let entriesHeight = CGFloat(watchEntries.count) * entryHeight + return min(baseHeight + rewatchHeaderHeight + entriesHeight + 24, 624) + } + return 340 } var body: some View { ZStack { Color.appBackgroundAdaptive.ignoresSafeArea() - VStack(spacing: 0) { - // Drag Indicator - RoundedRectangle(cornerRadius: 2.5) - .fill(Color.gray.opacity(0.4)) - .frame(width: 36, height: 5) - .padding(.top, 12) - .padding(.bottom, 16) - - // Title - Text(L10n.current.updateStatus) - .font(.title3.bold()) - .foregroundColor(.appForegroundAdaptive) - .frame(maxWidth: .infinity, alignment: .center) - .padding(.bottom, 20) - - // Status Options Grid - LazyVGrid(columns: [GridItem(.flexible()), GridItem(.flexible())], spacing: 12) { - ForEach(UserItemStatus.allCases, id: \.rawValue) { status in - StatusOptionButton( - status: status, - isSelected: selectedStatus == status, - isLoading: isLoading && selectedStatus == status, - action: { - handleStatusChange(status) + ScrollView { + VStack(spacing: 0) { + // Drag Indicator + RoundedRectangle(cornerRadius: 2.5) + .fill(Color.gray.opacity(0.4)) + .frame(width: 36, height: 5) + .padding(.top, 12) + .padding(.bottom, 16) + + // Title + Text(L10n.current.updateStatus) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + .frame(maxWidth: .infinity, alignment: .center) + .padding(.bottom, 20) + + // Status Options Grid + LazyVGrid(columns: [GridItem(.flexible()), GridItem(.flexible())], spacing: 12) { + ForEach(UserItemStatus.allCases, id: \.rawValue) { status in + StatusOptionButton( + status: status, + isSelected: selectedStatus == status, + isLoading: isLoading && selectedStatus == status, + rewatchCount: status == .watched ? watchEntries.count : 0, + action: { + handleStatusChange(status) + } + ) + } + } + .padding(.horizontal, 24) + + // Rewatch Section - Only shows when status is WATCHED + if selectedStatus == .watched && !watchEntries.isEmpty { + VStack(alignment: .leading, spacing: 16) { + // Header + HStack { + Text(L10n.current.watchLog) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + Button(action: addRewatch) { + if isAddingRewatch { + ProgressView() + .tint(.appForegroundAdaptive) + } else { + Text("+ Rewatch") + .font(.caption) + .foregroundColor(.appForegroundAdaptive) + } + } + .padding(.horizontal, 10) + .padding(.vertical, 6) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 8)) + .disabled(isAddingRewatch) + } + + // Watch entries timeline + VStack(alignment: .leading, spacing: 0) { + ForEach(Array(watchEntries.enumerated()), id: \.element.id) { index, entry in + WatchEntryRow( + index: index, + entry: entry, + isLast: index == watchEntries.count - 1, + canDelete: watchEntries.count > 1, + onDelete: { + deleteWatchEntry(entry) + } + ) + } } - ) + } + .padding(.horizontal, 24) + .padding(.top, 24) } + + Spacer() + .frame(height: 24) } - .padding(.horizontal, 24) - - Spacer() } } - .presentationDetents([.height(340)]) + .presentationDetents([.height(sheetHeight)]) .presentationCornerRadius(24) .presentationDragIndicator(.hidden) .preferredColorScheme(themeManager.current.colorScheme) @@ -94,7 +163,8 @@ struct StatusSheet: View { await MainActor.run { isLoading = false - onStatusChanged(nil) + watchEntries = [] + onStatusChanged(nil, []) dismiss() } } catch { @@ -121,8 +191,17 @@ struct StatusSheet: View { await MainActor.run { isLoading = false - onStatusChanged(status) - dismiss() + // If status is WATCHED, fetch the watch entries + if status == .watched { + // The API automatically creates the first entry + Task { + await reloadUserItem() + } + } else { + watchEntries = [] + onStatusChanged(status, []) + dismiss() + } } } catch { await MainActor.run { @@ -134,6 +213,176 @@ struct StatusSheet: View { } } } + + private func reloadUserItem() async { + do { + let apiMediaType = mediaType == "movie" ? "MOVIE" : "TV_SHOW" + if let userItem = try await UserItemService.shared.getUserItem( + tmdbId: mediaId, + mediaType: apiMediaType + ) { + await MainActor.run { + watchEntries = userItem.watchEntries ?? [] + } + } + } catch { + // Ignore errors + } + } + + private func addRewatch() { + guard let itemId = currentItemId else { return } + + isAddingRewatch = true + + Task { + do { + let newEntry = try await UserItemService.shared.addWatchEntry(userItemId: itemId) + + await MainActor.run { + isAddingRewatch = false + watchEntries.append(newEntry) + onStatusChanged(selectedStatus, watchEntries) + } + } catch { + await MainActor.run { + isAddingRewatch = false + errorMessage = error.localizedDescription + showErrorAlert = true + } + } + } + } + + private func deleteWatchEntry(_ entry: WatchEntry) { + Task { + do { + try await UserItemService.shared.deleteWatchEntry(id: entry.id) + + await MainActor.run { + watchEntries.removeAll { $0.id == entry.id } + onStatusChanged(selectedStatus, watchEntries) + } + } catch { + await MainActor.run { + errorMessage = error.localizedDescription + showErrorAlert = true + } + } + } + } +} + +// MARK: - Watch Entry Row +struct WatchEntryRow: View { + let index: Int + let entry: WatchEntry + let isLast: Bool + let canDelete: Bool + let onDelete: () -> Void + + private var formattedDate: String { + guard let date = entry.date else { return "" } + let formatter = DateFormatter() + formatter.dateStyle = .medium + formatter.timeStyle = .none + return formatter.string(from: date) + } + + private var ordinalLabel: String { + if index == 0 { + return L10n.current.firstTime + } else { + return L10n.current.nthTime.replacingOccurrences(of: "%@", with: ordinalNumber) + } + } + + private var ordinalNumber: String { + let number = index + 1 + let language = Language.current + + switch language { + case .enUS: + // English ordinals: 1st, 2nd, 3rd, 4th... + switch number { + case 1: return "1st" + case 2: return "2nd" + case 3: return "3rd" + default: return "\(number)th" + } + case .ptBR, .esES, .itIT: + // Portuguese/Spanish/Italian: 1ª, 2ª, 3ª... + return "\(number)ª" + case .frFR: + // French: 1ère, 2ème, 3ème... + return number == 1 ? "1ère" : "\(number)ème" + case .deDE: + // German: 1., 2., 3.... + return "\(number)." + case .jaJP: + // Japanese: 1, 2, 3... + return "\(number)" + } + } + + private var isFirst: Bool { + index == 0 + } + + var body: some View { + HStack(spacing: 12) { + // Timeline indicator + ZStack(alignment: .center) { + VStack(spacing: 0) { + // Top line (for non-first items) - connects from previous dot + Rectangle() + .fill(isFirst ? Color.clear : Color.appMutedForegroundAdaptive.opacity(0.3)) + .frame(width: 1, height: 12) + + // Space for dot + Color.clear + .frame(height: 8) + + // Bottom line (for non-last items) - connects to next dot + Rectangle() + .fill(isLast ? Color.clear : Color.appMutedForegroundAdaptive.opacity(0.3)) + .frame(width: 1, height: 12) + } + + // Dot - centered + Circle() + .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) + .frame(width: 8, height: 8) + } + .frame(width: 8, height: 32) + + // Content + HStack(spacing: 6) { + Text(ordinalLabel) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + + Circle() + .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) + .frame(width: 4, height: 4) + + Text(formattedDate) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + + Spacer() + + if canDelete { + Button(action: onDelete) { + Image(systemName: "xmark") + .font(.system(size: 12, weight: .medium)) + .foregroundColor(.appMutedForegroundAdaptive) + } + } + } + } + .frame(height: 32) + } } // MARK: - Status Option Button @@ -141,6 +390,7 @@ struct StatusOptionButton: View { let status: UserItemStatus let isSelected: Bool let isLoading: Bool + let rewatchCount: Int let action: () -> Void private var iconColor: Color { @@ -159,9 +409,23 @@ struct StatusOptionButton: View { ProgressView() .tint(.appMutedForegroundAdaptive) } else { - Image(systemName: status.icon) - .font(.system(size: 22)) - .foregroundColor(isSelected ? iconColor : .appMutedForegroundAdaptive) + ZStack(alignment: .topTrailing) { + Image(systemName: status.icon) + .font(.system(size: 22)) + .foregroundColor(isSelected ? iconColor : .appMutedForegroundAdaptive) + + // Rewatch count badge + if isSelected && rewatchCount > 1 { + Text("\(rewatchCount)x") + .font(.system(size: 10, weight: .bold)) + .foregroundColor(.white) + .padding(.horizontal, 4) + .padding(.vertical, 2) + .background(iconColor) + .clipShape(Capsule()) + .offset(x: 16, y: -8) + } + } Text(status.displayName(strings: L10n.current)) .font(.subheadline.weight(.medium)) @@ -182,8 +446,13 @@ struct StatusOptionButton: View { StatusSheet( mediaId: 550, mediaType: "movie", - currentStatus: nil, - currentItemId: nil, - onStatusChanged: { _ in } + currentStatus: .watched, + currentItemId: "123", + watchEntries: [ + WatchEntry(id: "1", watchedAt: "2025-01-10T12:00:00.000Z"), + WatchEntry(id: "2", watchedAt: "2025-01-15T12:00:00.000Z"), + WatchEntry(id: "3", watchedAt: "2025-01-17T12:00:00.000Z"), + ], + onStatusChanged: { _, _ in } ) } diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 0581027f..188aa995 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -114,7 +114,17 @@ enum L10n { watched: "Watched", watching: "Watching", watchlist: "Watchlist", - dropped: "Dropped" + dropped: "Dropped", + // Rewatch + watchLog: "Watch Log", + addRewatch: "Add Rewatch", + firstTime: "1st time", + nthTime: "%@ time", + // Where to Watch + stream: "Stream", + rent: "Rent", + buy: "Buy", + unavailable: "Unavailable" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -213,7 +223,15 @@ enum L10n { watched: "Assistido", watching: "Assistindo", watchlist: "Lista", - dropped: "Abandonado" + dropped: "Abandonado", + watchLog: "Registro de visualizações", + addRewatch: "Adicionar rewatch", + firstTime: "1ª vez", + nthTime: "%@ vez", + stream: "Streaming", + rent: "Alugar", + buy: "Comprar", + unavailable: "Indisponível" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -312,7 +330,15 @@ enum L10n { watched: "Visto", watching: "Viendo", watchlist: "Lista", - dropped: "Abandonado" + dropped: "Abandonado", + watchLog: "Registro de visualizaciones", + addRewatch: "Agregar rewatch", + firstTime: "1ª vez", + nthTime: "%@ vez", + stream: "Streaming", + rent: "Alquilar", + buy: "Comprar", + unavailable: "No disponible" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -411,7 +437,15 @@ enum L10n { watched: "Vu", watching: "En cours", watchlist: "À voir", - dropped: "Abandonné" + dropped: "Abandonné", + watchLog: "Historique des visionnages", + addRewatch: "Ajouter un revisionnage", + firstTime: "1ère fois", + nthTime: "%@ fois", + stream: "Streaming", + rent: "Louer", + buy: "Acheter", + unavailable: "Indisponible" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -510,7 +544,15 @@ enum L10n { watched: "Gesehen", watching: "Schaue ich", watchlist: "Watchlist", - dropped: "Abgebrochen" + dropped: "Abgebrochen", + watchLog: "Wiedergabeverlauf", + addRewatch: "Rewatch hinzufügen", + firstTime: "1. Mal", + nthTime: "%@ Mal", + stream: "Streaming", + rent: "Leihen", + buy: "Kaufen", + unavailable: "Nicht verfügbar" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -609,7 +651,15 @@ enum L10n { watched: "Visto", watching: "In visione", watchlist: "Da vedere", - dropped: "Abbandonato" + dropped: "Abbandonato", + watchLog: "Cronologia visualizzazioni", + addRewatch: "Aggiungi rewatch", + firstTime: "1ª volta", + nthTime: "%@ volta", + stream: "Streaming", + rent: "Noleggia", + buy: "Acquista", + unavailable: "Non disponibile" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -707,7 +757,15 @@ enum L10n { watched: "視聴済み", watching: "視聴中", watchlist: "ウォッチリスト", - dropped: "中断" + dropped: "中断", + watchLog: "視聴履歴", + addRewatch: "再視聴を追加", + firstTime: "1回目", + nthTime: "%@回目", + stream: "配信", + rent: "レンタル", + buy: "購入", + unavailable: "利用不可" ), ] } @@ -821,4 +879,14 @@ struct Strings { let watching: String let watchlist: String let dropped: String + // Rewatch + let watchLog: String + let addRewatch: String + let firstTime: String + let nthTime: String + // Where to Watch + let stream: String + let rent: String + let buy: String + let unavailable: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index ab9b244d..81b8cc33 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -427,6 +427,28 @@ class TMDBService { decoder.keyDecodingStrategy = .convertFromSnakeCase return try decoder.decode(MediaImages.self, from: data) } + + // MARK: - Get Watch Providers + func getWatchProviders(id: Int, mediaType: String) async throws -> WatchProvidersResponse { + let type = mediaType == "movie" ? "movie" : "tv" + guard let url = URL(string: "\(baseURL)/\(type)/\(id)/watch/providers") else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return try decoder.decode(WatchProvidersResponse.self, from: data) + } } // MARK: - Movie Details Model @@ -613,3 +635,49 @@ struct TMDBImage: Codable, Identifiable { URL(string: "https://image.tmdb.org/t/p/w1280\(filePath)") } } + +// MARK: - Watch Providers +struct WatchProvidersResponse: Codable { + let results: WatchProvidersResults +} + +struct WatchProvidersResults: Codable { + let BR: WatchProviderCountry? + let US: WatchProviderCountry? + let DE: WatchProviderCountry? + let ES: WatchProviderCountry? + let FR: WatchProviderCountry? + let IT: WatchProviderCountry? + let JP: WatchProviderCountry? + + func forLanguage(_ language: Language) -> WatchProviderCountry? { + switch language { + case .ptBR: return BR + case .enUS: return US + case .deDE: return DE + case .esES: return ES + case .frFR: return FR + case .itIT: return IT + case .jaJP: return JP + } + } +} + +struct WatchProviderCountry: Codable { + let flatrate: [WatchProvider]? + let rent: [WatchProvider]? + let buy: [WatchProvider]? +} + +struct WatchProvider: Codable, Identifiable { + let providerId: Int + let providerName: String + let logoPath: String? + + var id: Int { providerId } + + var logoURL: URL? { + guard let logoPath else { return nil } + return URL(string: "https://image.tmdb.org/t/p/w92\(logoPath)") + } +} diff --git a/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift b/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift index d77fb278..c121b9e7 100644 --- a/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift @@ -41,7 +41,9 @@ class UserItemService { } // MARK: - Upsert User Item (Create or Update) - func upsertUserItem(tmdbId: Int, mediaType: String, status: UserItemStatus) async throws -> UserItem { + func upsertUserItem(tmdbId: Int, mediaType: String, status: UserItemStatus) async throws + -> UserItem + { guard let url = URL(string: "\(API.baseURL)/user/item"), let token = UserDefaults.standard.string(forKey: "token") else { @@ -99,6 +101,106 @@ class UserItemService { throw UserItemError.invalidResponse } } + + // MARK: - Add Watch Entry (Rewatch) + func addWatchEntry(userItemId: String, watchedAt: Date = Date()) async throws -> WatchEntry { + guard let url = URL(string: "\(API.baseURL)/watch-entry"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw UserItemError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + + let body: [String: Any] = [ + "userItemId": userItemId, + "watchedAt": formatter.string(from: watchedAt), + ] + + request.httpBody = try JSONSerialization.data(withJSONObject: body) + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw UserItemError.invalidResponse + } + + guard http.statusCode == 200 || http.statusCode == 201 else { + throw UserItemError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(WatchEntryResponse.self, from: data) + return result.watchEntry + } + + // MARK: - Delete Watch Entry + func deleteWatchEntry(id: String) async throws { + guard let url = URL(string: "\(API.baseURL)/watch-entry/\(id)"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw UserItemError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "DELETE" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + + let (_, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw UserItemError.invalidResponse + } + + guard http.statusCode == 200 || http.statusCode == 204 else { + throw UserItemError.invalidResponse + } + } + + // MARK: - Update Watch Entry Date + func updateWatchEntry(id: String, watchedAt: Date) async throws -> WatchEntry { + guard let url = URL(string: "\(API.baseURL)/watch-entry/\(id)"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw UserItemError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "PUT" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + + let body: [String: Any] = [ + "watchedAt": formatter.string(from: watchedAt) + ] + + request.httpBody = try JSONSerialization.data(withJSONObject: body) + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw UserItemError.invalidResponse + } + + guard http.statusCode == 200 else { + throw UserItemError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(WatchEntryResponse.self, from: data) + return result.watchEntry + } } // MARK: - Models @@ -127,6 +229,17 @@ enum UserItemStatus: String, CaseIterable { } } +struct WatchEntry: Codable, Identifiable { + let id: String + let watchedAt: String + + var date: Date? { + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + return formatter.date(from: watchedAt) + } +} + struct UserItem: Codable, Identifiable { let id: String let userId: String @@ -135,6 +248,7 @@ struct UserItem: Codable, Identifiable { let status: String let addedAt: String let updatedAt: String + let watchEntries: [WatchEntry]? var statusEnum: UserItemStatus? { UserItemStatus(rawValue: status) @@ -149,6 +263,14 @@ struct UpsertUserItemResponse: Codable { let userItem: UserItem } +struct WatchEntryResponse: Codable { + let watchEntry: WatchEntry +} + +struct WatchEntriesResponse: Codable { + let watchEntries: [WatchEntry] +} + enum UserItemError: LocalizedError { case invalidURL case invalidResponse diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index f7d127f1..703f02ce 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -223,6 +223,17 @@ struct MediaDetailView: View { } ) .offset(y: contentOffset) + + Spacer() + .frame(height: 24) + .offset(y: contentOffset) + + // Where to Watch Section + WhereToWatchSection( + mediaId: mediaId, + mediaType: mediaType + ) + .offset(y: contentOffset) } .padding(.bottom, 80) } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift new file mode 100644 index 00000000..7ee481c8 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift @@ -0,0 +1,172 @@ +// +// WhereToWatchSection.swift +// Plotwist +// + +import SwiftUI + +struct WhereToWatchSection: View { + let mediaId: Int + let mediaType: String + + @State private var providers: WatchProviderCountry? + @State private var isLoading = true + + var body: some View { + VStack(alignment: .leading, spacing: 16) { + // Title + Text(L10n.current.tabWhereToWatch.uppercased()) + .font(.caption.weight(.semibold)) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 24) + + if isLoading { + HStack { + Spacer() + ProgressView() + Spacer() + } + .padding(.vertical, 20) + } else { + // Content + VStack(alignment: .leading, spacing: 24) { + // Stream + ProviderCategory( + title: L10n.current.stream, + providers: providers?.flatrate + ) + + // Rent + ProviderCategory( + title: L10n.current.rent, + providers: providers?.rent + ) + + // Buy + ProviderCategory( + title: L10n.current.buy, + providers: providers?.buy + ) + } + .padding(.horizontal, 24) + } + } + .task { + await loadProviders() + } + } + + private func loadProviders() async { + isLoading = true + defer { isLoading = false } + + do { + let response = try await TMDBService.shared.getWatchProviders( + id: mediaId, + mediaType: mediaType + ) + providers = response.results.forLanguage(Language.current) ?? response.results.US + } catch { + providers = nil + } + } +} + +// MARK: - Provider Category +struct ProviderCategory: View { + let title: String + let providers: [WatchProvider]? + + var body: some View { + VStack(alignment: .leading, spacing: 8) { + Text(title) + .font(.subheadline.weight(.semibold)) + .foregroundColor(.appForegroundAdaptive) + + if let providers, !providers.isEmpty { + VStack(spacing: 0) { + ForEach(providers) { provider in + ProviderRow(provider: provider) + } + } + } else { + UnavailableRow() + } + } + } +} + +// MARK: - Provider Row +struct ProviderRow: View { + let provider: WatchProvider + + var body: some View { + HStack(spacing: 8) { + AsyncImage(url: provider.logoURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + RoundedRectangle(cornerRadius: 6) + .fill(Color.appBorderAdaptive) + } + } + .frame(width: 24, height: 24) + .clipShape(RoundedRectangle(cornerRadius: 6)) + .overlay( + RoundedRectangle(cornerRadius: 6) + .stroke(Color.appBorderAdaptive, lineWidth: 0.5) + ) + + Text(provider.providerName) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + } + .padding(.vertical, 8) + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1), + alignment: .bottom + ) + } +} + +// MARK: - Unavailable Row +struct UnavailableRow: View { + var body: some View { + HStack(spacing: 8) { + ZStack { + RoundedRectangle(cornerRadius: 6) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + .frame(width: 24, height: 24) + + Image(systemName: "xmark") + .font(.system(size: 12, weight: .medium)) + .foregroundColor(.appMutedForegroundAdaptive) + } + + Text(L10n.current.unavailable) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + + Spacer() + } + .padding(.vertical, 8) + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1), + alignment: .bottom + ) + } +} + +// MARK: - Preview +#Preview { + WhereToWatchSection(mediaId: 550, mediaType: "movie") +} From da5f0c2ea4627c30e5d8abf7207884d69639eadf Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 17 Jan 2026 22:28:08 -0300 Subject: [PATCH 38/77] feat(media): enhance MediaDetailView layout with additional spacers and a divider for improved visual separation; update WhereToWatchSection to conditionally display providers and handle unavailable states; refactor ReviewSectionView by removing unnecessary bottom padding --- .../Views/Details/MediaDetailView.swift | 11 ++ .../Views/Details/WhereToWatchSection.swift | 133 +++++++++--------- .../Views/Reviews/ReviewSectionView.swift | 1 - 3 files changed, 74 insertions(+), 71 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 703f02ce..f58761ad 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -224,6 +224,17 @@ struct MediaDetailView: View { ) .offset(y: contentOffset) + Spacer() + .frame(height: 24) + .offset(y: contentOffset) + + // Divider + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .offset(y: contentOffset) + Spacer() .frame(height: 24) .offset(y: contentOffset) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift index 7ee481c8..f43e5ee0 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift @@ -8,10 +8,17 @@ import SwiftUI struct WhereToWatchSection: View { let mediaId: Int let mediaType: String - + @State private var providers: WatchProviderCountry? @State private var isLoading = true - + + private var hasAnyProvider: Bool { + let flatrate = providers?.flatrate ?? [] + let rent = providers?.rent ?? [] + let buy = providers?.buy ?? [] + return !flatrate.isEmpty || !rent.isEmpty || !buy.isEmpty + } + var body: some View { VStack(alignment: .leading, spacing: 16) { // Title @@ -19,7 +26,7 @@ struct WhereToWatchSection: View { .font(.caption.weight(.semibold)) .foregroundColor(.appMutedForegroundAdaptive) .padding(.horizontal, 24) - + if isLoading { HStack { Spacer() @@ -27,26 +34,52 @@ struct WhereToWatchSection: View { Spacer() } .padding(.vertical, 20) - } else { - // Content + } else if hasAnyProvider { + // Content - only show categories that have providers VStack(alignment: .leading, spacing: 24) { // Stream - ProviderCategory( - title: L10n.current.stream, - providers: providers?.flatrate - ) - + if let flatrate = providers?.flatrate, !flatrate.isEmpty { + ProviderCategory( + title: L10n.current.stream, + providers: flatrate + ) + } + // Rent - ProviderCategory( - title: L10n.current.rent, - providers: providers?.rent - ) - + if let rent = providers?.rent, !rent.isEmpty { + ProviderCategory( + title: L10n.current.rent, + providers: rent + ) + } + // Buy - ProviderCategory( - title: L10n.current.buy, - providers: providers?.buy - ) + if let buy = providers?.buy, !buy.isEmpty { + ProviderCategory( + title: L10n.current.buy, + providers: buy + ) + } + } + .padding(.horizontal, 24) + } else { + // No providers available + HStack(spacing: 8) { + ZStack { + RoundedRectangle(cornerRadius: 6) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + .frame(width: 24, height: 24) + + Image(systemName: "xmark") + .font(.system(size: 12, weight: .medium)) + .foregroundColor(.appMutedForegroundAdaptive) + } + + Text(L10n.current.unavailable) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + + Spacer() } .padding(.horizontal, 24) } @@ -55,11 +88,11 @@ struct WhereToWatchSection: View { await loadProviders() } } - + private func loadProviders() async { isLoading = true defer { isLoading = false } - + do { let response = try await TMDBService.shared.getWatchProviders( id: mediaId, @@ -75,22 +108,18 @@ struct WhereToWatchSection: View { // MARK: - Provider Category struct ProviderCategory: View { let title: String - let providers: [WatchProvider]? - + let providers: [WatchProvider] + var body: some View { VStack(alignment: .leading, spacing: 8) { Text(title) .font(.subheadline.weight(.semibold)) .foregroundColor(.appForegroundAdaptive) - - if let providers, !providers.isEmpty { - VStack(spacing: 0) { - ForEach(providers) { provider in - ProviderRow(provider: provider) - } + + VStack(spacing: 0) { + ForEach(providers) { provider in + ProviderRow(provider: provider) } - } else { - UnavailableRow() } } } @@ -99,7 +128,7 @@ struct ProviderCategory: View { // MARK: - Provider Row struct ProviderRow: View { let provider: WatchProvider - + var body: some View { HStack(spacing: 8) { AsyncImage(url: provider.logoURL) { phase in @@ -119,50 +148,14 @@ struct ProviderRow: View { RoundedRectangle(cornerRadius: 6) .stroke(Color.appBorderAdaptive, lineWidth: 0.5) ) - + Text(provider.providerName) .font(.subheadline) .foregroundColor(.appForegroundAdaptive) - - Spacer() - } - .padding(.vertical, 8) - .overlay( - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1), - alignment: .bottom - ) - } -} -// MARK: - Unavailable Row -struct UnavailableRow: View { - var body: some View { - HStack(spacing: 8) { - ZStack { - RoundedRectangle(cornerRadius: 6) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - .frame(width: 24, height: 24) - - Image(systemName: "xmark") - .font(.system(size: 12, weight: .medium)) - .foregroundColor(.appMutedForegroundAdaptive) - } - - Text(L10n.current.unavailable) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - Spacer() } - .padding(.vertical, 8) - .overlay( - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1), - alignment: .bottom - ) + .padding(.vertical, 6) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift index eb3f164a..4e3608b4 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift @@ -204,7 +204,6 @@ struct ReviewSectionView: View { .padding(.horizontal, 24) } } - .padding(.bottom, 80) .task { await loadCurrentUser() await loadReviews() From 0000866abb060ca2463fd4d99f0b7e68ef247ecb Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 17 Jan 2026 22:59:02 -0300 Subject: [PATCH 39/77] feat(media): add RelatedSection for displaying related content recommendations in MediaDetailView; enhance TMDBService with getRelatedContent method for fetching recommendations; update MediaDetailView to manage section visibility based on content availability --- .../Plotwist/Services/TMDBService.swift | 25 ++ .../Views/Details/MediaDetailView.swift | 101 ++++-- .../Views/Details/RelatedSection.swift | 144 +++++++++ .../Views/Details/WhereToWatchSection.swift | 127 ++++---- .../Views/Reviews/ReviewSectionView.swift | 306 +++++++++--------- 5 files changed, 465 insertions(+), 238 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index 81b8cc33..3596627d 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -449,6 +449,31 @@ class TMDBService { decoder.keyDecodingStrategy = .convertFromSnakeCase return try decoder.decode(WatchProvidersResponse.self, from: data) } + + // MARK: - Get Related Content (Recommendations) + func getRelatedContent( + id: Int, mediaType: String, variant: String = "recommendations", language: String = "en-US" + ) async throws -> [SearchResult] { + let type = mediaType == "movie" ? "movie" : "tv" + guard let url = URL(string: "\(baseURL)/\(type)/\(id)/\(variant)?language=\(language)") else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return result.results.map { $0.toSearchResult(mediaType: mediaType) } + } } // MARK: - Movie Details Model diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index f58761ad..cad91e99 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -20,6 +20,11 @@ struct MediaDetailView: View { @State private var currentBackdropIndex = 0 @ObservedObject private var themeManager = ThemeManager.shared + // Section visibility state + @State private var hasReviews = false + @State private var hasWhereToWatch = false + @State private var hasRecommendations = false + // Layout constants private let posterOverlapOffset: CGFloat = -70 private let contentOffset: CGFloat = -54 @@ -196,20 +201,22 @@ struct MediaDetailView: View { .padding(.horizontal, 24) .offset(y: contentOffset) - Spacer() - .frame(height: 24) - .offset(y: contentOffset) + // Divider before first content section (only if any section has content) + if hasReviews || hasWhereToWatch || hasRecommendations { + Spacer() + .frame(height: 24) + .offset(y: contentOffset) - // Divider - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1) - .padding(.horizontal, 24) - .offset(y: contentOffset) + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .offset(y: contentOffset) - Spacer() - .frame(height: 24) - .offset(y: contentOffset) + Spacer() + .frame(height: 24) + .offset(y: contentOffset) + } // Review Section ReviewSectionView( @@ -220,29 +227,64 @@ struct MediaDetailView: View { if AuthService.shared.isAuthenticated { showReviewSheet = true } + }, + onContentLoaded: { hasContent in + hasReviews = hasContent } ) .offset(y: contentOffset) - Spacer() - .frame(height: 24) - .offset(y: contentOffset) + // Divider after reviews (only if reviews exist and next section exists) + if hasReviews && (hasWhereToWatch || hasRecommendations) { + Spacer() + .frame(height: 24) + .offset(y: contentOffset) - // Divider - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1) - .padding(.horizontal, 24) - .offset(y: contentOffset) + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .offset(y: contentOffset) - Spacer() - .frame(height: 24) - .offset(y: contentOffset) + Spacer() + .frame(height: 24) + .offset(y: contentOffset) + } // Where to Watch Section WhereToWatchSection( mediaId: mediaId, - mediaType: mediaType + mediaType: mediaType, + onContentLoaded: { hasContent in + hasWhereToWatch = hasContent + } + ) + .offset(y: contentOffset) + + // Divider after where to watch (only if it exists and recommendations exist) + if hasWhereToWatch && hasRecommendations { + Spacer() + .frame(height: 24) + .offset(y: contentOffset) + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .offset(y: contentOffset) + + Spacer() + .frame(height: 24) + .offset(y: contentOffset) + } + + // Recommendations Section + RelatedSection( + mediaId: mediaId, + mediaType: mediaType, + onContentLoaded: { hasContent in + hasRecommendations = hasContent + } ) .offset(y: contentOffset) } @@ -277,6 +319,12 @@ struct MediaDetailView: View { } private func loadDetails() async { + // Skip if already loaded + guard details == nil else { + isLoading = false + return + } + isLoading = true defer { isLoading = false } @@ -320,6 +368,9 @@ struct MediaDetailView: View { } private func loadImages() async { + // Skip if already loaded + guard backdropImages.isEmpty else { return } + do { let images = try await TMDBService.shared.getImages(id: mediaId, mediaType: mediaType) backdropImages = images.sortedBackdrops diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift new file mode 100644 index 00000000..655f896a --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift @@ -0,0 +1,144 @@ +// +// RelatedSection.swift +// Plotwist +// + +import SwiftUI + +struct RelatedSection: View { + let mediaId: Int + let mediaType: String + var onContentLoaded: ((Bool) -> Void)? + + @State private var recommendations: [SearchResult] = [] + @State private var isLoading = true + @State private var hasLoaded = false + + private let strings = L10n.current + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + if isLoading { + RelatedSectionSkeleton() + } else if !recommendations.isEmpty { + // Title + HStack(spacing: 6) { + Text(strings.tabRecommendations) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + } + .padding(.horizontal, 24) + + // Horizontal scroll of recommendations + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(recommendations.prefix(20)) { item in + NavigationLink { + MediaDetailView( + mediaId: item.id, + mediaType: mediaType + ) + } label: { + RelatedPosterCard(item: item) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 4) + } + .scrollClipDisabled() + } + } + .task { + await loadRecommendations() + } + } + + private func loadRecommendations() async { + // Skip if already loaded + guard !hasLoaded else { + isLoading = false + onContentLoaded?(!recommendations.isEmpty) + return + } + + isLoading = true + + do { + recommendations = try await TMDBService.shared.getRelatedContent( + id: mediaId, + mediaType: mediaType, + variant: "recommendations", + language: Language.current.rawValue + ) + isLoading = false + hasLoaded = true + onContentLoaded?(!recommendations.isEmpty) + } catch { + recommendations = [] + isLoading = false + hasLoaded = true + onContentLoaded?(false) + } + } +} + +// MARK: - Related Poster Card +struct RelatedPosterCard: View { + let item: SearchResult + + var body: some View { + AsyncImage(url: item.imageURL) { phase in + switch phase { + case .empty: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + case .failure: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + .overlay( + Image(systemName: "film") + .foregroundColor(.appMutedForegroundAdaptive) + ) + @unknown default: + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) + } + } + .frame(width: 120, height: 180) + .clipShape(RoundedRectangle(cornerRadius: 16)) + .posterShadow() + } +} + +// MARK: - Related Section Skeleton +struct RelatedSectionSkeleton: View { + var body: some View { + VStack(alignment: .leading, spacing: 12) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 140, height: 20) + .padding(.horizontal, 24) + + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(0..<5, id: \.self) { _ in + RoundedRectangle(cornerRadius: 16) + .fill(Color.appSkeletonAdaptive) + .frame(width: 120, height: 180) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 4) + } + .scrollClipDisabled() + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift index f43e5ee0..6c5f6a23 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift @@ -8,9 +8,11 @@ import SwiftUI struct WhereToWatchSection: View { let mediaId: Int let mediaType: String + var onContentLoaded: ((Bool) -> Void)? @State private var providers: WatchProviderCountry? @State private var isLoading = true + @State private var hasLoaded = false private var hasAnyProvider: Bool { let flatrate = providers?.flatrate ?? [] @@ -20,68 +22,61 @@ struct WhereToWatchSection: View { } var body: some View { - VStack(alignment: .leading, spacing: 16) { - // Title - Text(L10n.current.tabWhereToWatch.uppercased()) - .font(.caption.weight(.semibold)) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.horizontal, 24) - + Group { if isLoading { - HStack { - Spacer() - ProgressView() - Spacer() + VStack(alignment: .leading, spacing: 16) { + // Title + Text(L10n.current.tabWhereToWatch) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + .padding(.horizontal, 24) + + HStack { + Spacer() + ProgressView() + Spacer() + } + .padding(.vertical, 20) } - .padding(.vertical, 20) } else if hasAnyProvider { - // Content - only show categories that have providers - VStack(alignment: .leading, spacing: 24) { - // Stream - if let flatrate = providers?.flatrate, !flatrate.isEmpty { - ProviderCategory( - title: L10n.current.stream, - providers: flatrate - ) - } - - // Rent - if let rent = providers?.rent, !rent.isEmpty { - ProviderCategory( - title: L10n.current.rent, - providers: rent - ) - } - - // Buy - if let buy = providers?.buy, !buy.isEmpty { - ProviderCategory( - title: L10n.current.buy, - providers: buy - ) + VStack(alignment: .leading, spacing: 16) { + // Title + Text(L10n.current.tabWhereToWatch) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + .padding(.horizontal, 24) + + // Content - only show categories that have providers + VStack(alignment: .leading, spacing: 24) { + // Stream + if let flatrate = providers?.flatrate, !flatrate.isEmpty { + ProviderCategory( + title: L10n.current.stream, + providers: flatrate + ) + } + + // Rent + if let rent = providers?.rent, !rent.isEmpty { + ProviderCategory( + title: L10n.current.rent, + providers: rent + ) + } + + // Buy + if let buy = providers?.buy, !buy.isEmpty { + ProviderCategory( + title: L10n.current.buy, + providers: buy + ) + } } + .padding(.horizontal, 24) } - .padding(.horizontal, 24) } else { - // No providers available - HStack(spacing: 8) { - ZStack { - RoundedRectangle(cornerRadius: 6) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - .frame(width: 24, height: 24) - - Image(systemName: "xmark") - .font(.system(size: 12, weight: .medium)) - .foregroundColor(.appMutedForegroundAdaptive) - } - - Text(L10n.current.unavailable) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - - Spacer() - } - .padding(.horizontal, 24) + // No providers - show nothing + EmptyView() } } .task { @@ -90,8 +85,14 @@ struct WhereToWatchSection: View { } private func loadProviders() async { + // Skip if already loaded + guard !hasLoaded else { + isLoading = false + onContentLoaded?(hasAnyProvider) + return + } + isLoading = true - defer { isLoading = false } do { let response = try await TMDBService.shared.getWatchProviders( @@ -99,8 +100,14 @@ struct WhereToWatchSection: View { mediaType: mediaType ) providers = response.results.forLanguage(Language.current) ?? response.results.US + isLoading = false + hasLoaded = true + onContentLoaded?(hasAnyProvider) } catch { providers = nil + isLoading = false + hasLoaded = true + onContentLoaded?(false) } } } @@ -112,9 +119,9 @@ struct ProviderCategory: View { var body: some View { VStack(alignment: .leading, spacing: 8) { - Text(title) - .font(.subheadline.weight(.semibold)) - .foregroundColor(.appForegroundAdaptive) + Text(title.uppercased()) + .font(.caption.weight(.semibold)) + .foregroundColor(.appMutedForegroundAdaptive) VStack(spacing: 0) { ForEach(providers) { provider in diff --git a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift index 4e3608b4..b2b6d11f 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift @@ -11,6 +11,7 @@ struct ReviewSectionView: View { let mediaType: String let refreshId: UUID var onEmptyStateTapped: (() -> Void)? + var onContentLoaded: ((Bool) -> Void)? @State private var reviews: [ReviewListItem] = [] @State private var isLoading = true @@ -18,6 +19,7 @@ struct ReviewSectionView: View { @State private var currentUserId: String? @State private var selectedReview: ReviewListItem? @State private var showEditSheet = false + @State private var hasLoaded = false private var averageRating: Double { guard !reviews.isEmpty else { return 0 } @@ -35,173 +37,160 @@ struct ReviewSectionView: View { } var body: some View { - VStack(spacing: 16) { - // Rating Header + Group { if isLoading { // Loading skeleton - HStack(spacing: 6) { - RoundedRectangle(cornerRadius: 4) - .fill(Color.appSkeletonAdaptive) - .frame(width: 16, height: 16) - RoundedRectangle(cornerRadius: 4) - .fill(Color.appSkeletonAdaptive) - .frame(width: 30, height: 18) - Circle() - .fill(Color.appSkeletonAdaptive) - .frame(width: 4, height: 4) - RoundedRectangle(cornerRadius: 4) - .fill(Color.appSkeletonAdaptive) - .frame(width: 80, height: 14) + VStack(spacing: 16) { + HStack(spacing: 6) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 16, height: 16) + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 30, height: 18) + Circle() + .fill(Color.appSkeletonAdaptive) + .frame(width: 4, height: 4) + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 80, height: 14) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) } - .frame(maxWidth: .infinity, alignment: .leading) - .padding(.horizontal, 24) } else if reviews.isEmpty { - // Empty state - tappable to open review sheet - Button(action: { - onEmptyStateTapped?() - }) { - VStack(spacing: 8) { - Text(L10n.current.beFirstToReview) + // No reviews - show nothing + EmptyView() + } else { + // Has reviews - show content + VStack(spacing: 16) { + // Rating Header + if isFeaturedRating { + // Featured rating display with film strips (10+ reviews AND rating >= 4.5) + HStack(spacing: 8) { + // Left film strip + Image("FilmStrip") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(height: 140) + .shadow(color: Color.black.opacity(0.1), radius: 3, x: 0, y: 3) + .shadow(color: Color.black.opacity(0.06), radius: 6, x: 0, y: 6) + + // Rating content + VStack(spacing: 4) { + // Large rating number + Text(String(format: "%.1f", averageRating)) + .font(.system(size: 56, weight: .semibold, design: .rounded)) + .foregroundColor(.appForegroundAdaptive) + + // Stars + HStack(spacing: 4) { + ForEach(1...5, id: \.self) { index in + Image(systemName: starIcon(for: index)) + .font(.system(size: 14)) + .foregroundColor(starColor(for: index)) + } + } + + // Reviews count + Text( + "\(reviews.count) \(reviews.count == 1 ? L10n.current.reviewSingular.lowercased() : L10n.current.tabReviews.lowercased())" + ) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.top, 4) + } + + // Right film strip (mirrored) + Image("FilmStrip") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(height: 140) + .scaleEffect(x: -1, y: 1) + .shadow(color: Color.black.opacity(0.1), radius: 3, x: 0, y: 3) + .shadow(color: Color.black.opacity(0.06), radius: 6, x: 0, y: 6) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 24) + } else { + // Simple rating display (star + rating + dot + reviews count) + HStack(spacing: 6) { + Image(systemName: "star.fill") + .font(.system(size: 16)) + .foregroundColor(.yellow) + + Text(String(format: "%.1f", averageRating)) + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + + Circle() + .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) + .frame(width: 4, height: 4) + + Text( + "\(reviews.count) \(reviews.count == 1 ? L10n.current.reviewSingular.lowercased() : L10n.current.tabReviews.lowercased())" + ) .font(.subheadline) - .foregroundColor(.appForegroundAdaptive) - Text(L10n.current.shareYourOpinion) - .font(.caption) .foregroundColor(.appMutedForegroundAdaptive) - } - .frame(maxWidth: .infinity) - .padding(.vertical, 32) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(style: StrokeStyle(lineWidth: 1, dash: [5])) - .foregroundColor(.appBorderAdaptive) - ) - } - .buttonStyle(.plain) - .padding(.horizontal, 24) - } else if isFeaturedRating { - // Featured rating display with film strips (10+ reviews AND rating >= 4.5) - HStack(spacing: 8) { - // Left film strip - Image("FilmStrip") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(height: 140) - .shadow(color: Color.black.opacity(0.1), radius: 3, x: 0, y: 3) - .shadow(color: Color.black.opacity(0.06), radius: 6, x: 0, y: 6) - - // Rating content - VStack(spacing: 4) { - // Large rating number - Text(String(format: "%.1f", averageRating)) - .font(.system(size: 56, weight: .semibold, design: .rounded)) - .foregroundColor(.appForegroundAdaptive) - - // Stars - HStack(spacing: 4) { - ForEach(1...5, id: \.self) { index in - Image(systemName: starIcon(for: index)) - .font(.system(size: 14)) - .foregroundColor(starColor(for: index)) - } } - - // Reviews count - Text( - "\(reviews.count) \(reviews.count == 1 ? L10n.current.reviewSingular.lowercased() : L10n.current.tabReviews.lowercased())" - ) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.top, 4) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) } - // Right film strip (mirrored) - Image("FilmStrip") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(height: 140) - .scaleEffect(x: -1, y: 1) - .shadow(color: Color.black.opacity(0.1), radius: 3, x: 0, y: 3) - .shadow(color: Color.black.opacity(0.06), radius: 6, x: 0, y: 6) - } - .frame(maxWidth: .infinity) - .padding(.vertical, 24) - } else { - // Simple rating display (star + rating + dot + reviews count) - HStack(spacing: 6) { - Image(systemName: "star.fill") - .font(.system(size: 16)) - .foregroundColor(.yellow) - - Text(String(format: "%.1f", averageRating)) - .font(.system(size: 18, weight: .semibold)) - .foregroundColor(.appForegroundAdaptive) - - Circle() - .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) - .frame(width: 4, height: 4) - - Text( - "\(reviews.count) \(reviews.count == 1 ? L10n.current.reviewSingular.lowercased() : L10n.current.tabReviews.lowercased())" - ) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - } - .frame(maxWidth: .infinity, alignment: .leading) - .padding(.horizontal, 24) - } - - // Horizontal scrolling reviews - if !isLoading && !reviewsWithText.isEmpty { - ScrollView(.horizontal, showsIndicators: false) { - HStack(alignment: .top, spacing: 0) { - ForEach(Array(reviewsWithText.enumerated()), id: \.element.id) { index, review in + // Horizontal scrolling reviews + if !reviewsWithText.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { HStack(alignment: .top, spacing: 0) { - Group { - if review.userId == currentUserId { - ReviewCardView(review: review) - .contentShape(Rectangle()) - .onTapGesture { - selectedReview = review - showEditSheet = true + ForEach(Array(reviewsWithText.enumerated()), id: \.element.id) { index, review in + HStack(alignment: .top, spacing: 0) { + Group { + if review.userId == currentUserId { + ReviewCardView(review: review) + .contentShape(Rectangle()) + .onTapGesture { + selectedReview = review + showEditSheet = true + } + } else { + ReviewCardView(review: review) } - } else { - ReviewCardView(review: review) - } - } - .frame(width: min(UIScreen.main.bounds.width * 0.75, 300)) - .padding(.leading, index == 0 ? 24 : 0) - .padding(.trailing, 24) - - // Vertical divider (except for last item) - if index < reviewsWithText.count - 1 { - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(width: 1) - .frame(height: 140) + } + .frame(width: min(UIScreen.main.bounds.width * 0.75, 300)) + .padding(.leading, index == 0 ? 24 : 0) .padding(.trailing, 24) + + // Vertical divider (except for last item) + if index < reviewsWithText.count - 1 { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(width: 1) + .frame(height: 140) + .padding(.trailing, 24) + } + } } } } } - } - } - // See all button (show if 3+ reviews) - if !isLoading && reviews.count >= 3 { - Button(action: { - // TODO: Navigate to all reviews - }) { - Text(L10n.current.seeAll) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appMutedForegroundAdaptive) - .frame(maxWidth: .infinity) - .padding(.vertical, 14) - .background(Color.appInputFilled) - .cornerRadius(12) + // See all button (show if 3+ reviews) + if reviews.count >= 3 { + Button(action: { + // TODO: Navigate to all reviews + }) { + Text(L10n.current.seeAll) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(maxWidth: .infinity) + .padding(.vertical, 14) + .background(Color.appInputFilled) + .cornerRadius(12) + } + .disabled(true) + .opacity(0.5) + .padding(.horizontal, 24) + } } - .disabled(true) - .opacity(0.5) - .padding(.horizontal, 24) } } .task { @@ -210,7 +199,7 @@ struct ReviewSectionView: View { } .onChange(of: refreshId) { _, _ in Task { - await loadReviews() + await loadReviews(forceReload: true) } } .sheet(isPresented: $showEditSheet) { @@ -221,7 +210,7 @@ struct ReviewSectionView: View { existingReview: review.toReview(), onDeleted: { Task { - await loadReviews() + await loadReviews(forceReload: true) } } ) @@ -231,7 +220,7 @@ struct ReviewSectionView: View { if !isShowing { // Reload reviews when sheet is dismissed (in case of edit) Task { - await loadReviews() + await loadReviews(forceReload: true) } } } @@ -246,7 +235,14 @@ struct ReviewSectionView: View { } } - private func loadReviews() async { + private func loadReviews(forceReload: Bool = false) async { + // Skip if already loaded (unless force reload) + guard !hasLoaded || forceReload else { + isLoading = false + onContentLoaded?(!reviews.isEmpty) + return + } + isLoading = true error = nil @@ -257,9 +253,13 @@ struct ReviewSectionView: View { mediaType: apiMediaType ) isLoading = false + hasLoaded = true + onContentLoaded?(!reviews.isEmpty) } catch { self.error = error.localizedDescription isLoading = false + hasLoaded = true + onContentLoaded?(false) } } From b4134d16fe771cc3c0cf9834717c69aa319d8d61 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Tue, 20 Jan 2026 22:46:15 -0300 Subject: [PATCH 40/77] feat(profile): enhance ProfileTabView with user avatar, biography, and member since information; implement EditProfileView for user details editing; add username availability check in EditUsernameView; improve layout and navigation for better user experience --- .../Plotwist/Components/StatusSheet.swift | 45 +- .../Plotwist/Localization/Strings.swift | 88 ++- .../Plotwist/Services/AuthService.swift | 101 ++- .../Plotwist/Views/Auth/LoginView.swift | 47 +- .../Views/Home/CategoryListView.swift | 24 +- .../Plotwist/Views/Home/HomeTabView.swift | 8 +- .../Plotwist/Views/Home/ProfileTabView.swift | 696 ++++++++++++++++-- .../Plotwist/Views/Home/SearchTabView.swift | 14 +- apps/web/next-env.d.ts | 2 +- 9 files changed, 931 insertions(+), 94 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift b/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift index 370637a0..6e2d9a7c 100644 --- a/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift @@ -8,8 +8,8 @@ import SwiftUI struct StatusSheet: View { let mediaId: Int let mediaType: String - let currentStatus: UserItemStatus? - let currentItemId: String? + let initialStatus: UserItemStatus? + let initialItemId: String? let initialWatchEntries: [WatchEntry] let onStatusChanged: (UserItemStatus?, [WatchEntry]) -> Void @@ -18,6 +18,7 @@ struct StatusSheet: View { @State private var isLoading = false @State private var isAddingRewatch = false @State private var selectedStatus: UserItemStatus? + @State private var currentItemId: String? @State private var watchEntries: [WatchEntry] = [] @State private var showErrorAlert = false @State private var errorMessage = "" @@ -32,11 +33,12 @@ struct StatusSheet: View { ) { self.mediaId = mediaId self.mediaType = mediaType - self.currentStatus = currentStatus - self.currentItemId = currentItemId + self.initialStatus = currentStatus + self.initialItemId = currentItemId self.initialWatchEntries = watchEntries self.onStatusChanged = onStatusChanged _selectedStatus = State(initialValue: currentStatus) + _currentItemId = State(initialValue: currentItemId) _watchEntries = State(initialValue: watchEntries) } @@ -153,9 +155,8 @@ struct StatusSheet: View { private func handleStatusChange(_ status: UserItemStatus) { // If tapping the same status, remove it - if status == currentStatus, let itemId = currentItemId { + if status == selectedStatus, let itemId = currentItemId { isLoading = true - selectedStatus = status Task { do { @@ -163,6 +164,8 @@ struct StatusSheet: View { await MainActor.run { isLoading = false + selectedStatus = nil + currentItemId = nil watchEntries = [] onStatusChanged(nil, []) dismiss() @@ -183,7 +186,7 @@ struct StatusSheet: View { Task { do { let apiMediaType = mediaType == "movie" ? "MOVIE" : "TV_SHOW" - _ = try await UserItemService.shared.upsertUserItem( + let userItem = try await UserItemService.shared.upsertUserItem( tmdbId: mediaId, mediaType: apiMediaType, status: status @@ -191,12 +194,14 @@ struct StatusSheet: View { await MainActor.run { isLoading = false - // If status is WATCHED, fetch the watch entries + // Update currentItemId with the newly created/updated item + currentItemId = userItem.id + + // If status is WATCHED, fetch the watch entries and stay on sheet if status == .watched { - // The API automatically creates the first entry - Task { - await reloadUserItem() - } + watchEntries = userItem.watchEntries ?? [] + onStatusChanged(status, watchEntries) + // Don't dismiss - let user see/add rewatches } else { watchEntries = [] onStatusChanged(status, []) @@ -214,22 +219,6 @@ struct StatusSheet: View { } } - private func reloadUserItem() async { - do { - let apiMediaType = mediaType == "movie" ? "MOVIE" : "TV_SHOW" - if let userItem = try await UserItemService.shared.getUserItem( - tmdbId: mediaId, - mediaType: apiMediaType - ) { - await MainActor.run { - watchEntries = userItem.watchEntries ?? [] - } - } - } catch { - // Ignore errors - } - } - private func addRewatch() { guard let itemId = currentItemId else { return } diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 188aa995..9387b8cf 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -124,7 +124,17 @@ enum L10n { stream: "Stream", rent: "Rent", buy: "Buy", - unavailable: "Unavailable" + unavailable: "Unavailable", + // Profile + memberSince: "Member since", + editProfile: "Edit", + accountData: "Account", + preferences: "Preferences", + editPicture: "Edit picture", + username: "Username", + region: "Region", + streamingServices: "Streaming Services", + notSet: "Not set" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -231,7 +241,16 @@ enum L10n { stream: "Streaming", rent: "Alugar", buy: "Comprar", - unavailable: "Indisponível" + unavailable: "Indisponível", + memberSince: "Membro desde", + editProfile: "Editar", + accountData: "Conta", + preferences: "Preferências", + editPicture: "Editar foto", + username: "Nome de usuário", + region: "Região", + streamingServices: "Serviços de Streaming", + notSet: "Não definido" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -338,7 +357,16 @@ enum L10n { stream: "Streaming", rent: "Alquilar", buy: "Comprar", - unavailable: "No disponible" + unavailable: "No disponible", + memberSince: "Miembro desde", + editProfile: "Editar", + accountData: "Cuenta", + preferences: "Preferencias", + editPicture: "Editar foto", + username: "Nombre de usuario", + region: "Región", + streamingServices: "Servicios de Streaming", + notSet: "No definido" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -445,7 +473,16 @@ enum L10n { stream: "Streaming", rent: "Louer", buy: "Acheter", - unavailable: "Indisponible" + unavailable: "Indisponible", + memberSince: "Membre depuis", + editProfile: "Modifier", + accountData: "Compte", + preferences: "Préférences", + editPicture: "Modifier la photo", + username: "Nom d'utilisateur", + region: "Région", + streamingServices: "Services de Streaming", + notSet: "Non défini" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -552,7 +589,16 @@ enum L10n { stream: "Streaming", rent: "Leihen", buy: "Kaufen", - unavailable: "Nicht verfügbar" + unavailable: "Nicht verfügbar", + memberSince: "Mitglied seit", + editProfile: "Bearbeiten", + accountData: "Konto", + preferences: "Einstellungen", + editPicture: "Bild bearbeiten", + username: "Benutzername", + region: "Region", + streamingServices: "Streaming-Dienste", + notSet: "Nicht festgelegt" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -659,7 +705,16 @@ enum L10n { stream: "Streaming", rent: "Noleggia", buy: "Acquista", - unavailable: "Non disponibile" + unavailable: "Non disponibile", + memberSince: "Membro dal", + editProfile: "Modifica", + accountData: "Account", + preferences: "Preferenze", + editPicture: "Modifica foto", + username: "Nome utente", + region: "Regione", + streamingServices: "Servizi di Streaming", + notSet: "Non impostato" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -765,7 +820,16 @@ enum L10n { stream: "配信", rent: "レンタル", buy: "購入", - unavailable: "利用不可" + unavailable: "利用不可", + memberSince: "メンバー登録日", + editProfile: "編集", + accountData: "アカウント", + preferences: "設定", + editPicture: "写真を編集", + username: "ユーザー名", + region: "地域", + streamingServices: "ストリーミング", + notSet: "未設定" ), ] } @@ -889,4 +953,14 @@ struct Strings { let rent: String let buy: String let unavailable: String + // Profile + let memberSince: String + let editProfile: String + let accountData: String + let preferences: String + let editPicture: String + let username: String + let region: String + let streamingServices: String + let notSet: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift index bfd6e5b4..d045dede 100644 --- a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift @@ -121,7 +121,76 @@ class AuthService { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase - return try decoder.decode(User.self, from: data) + let wrapper = try decoder.decode(MeResponse.self, from: data) + return wrapper.user + } + + // MARK: - Update User + func updateUser( + username: String? = nil, avatarUrl: String? = nil, bannerUrl: String? = nil, + biography: String? = nil + ) async throws -> User { + guard let token = UserDefaults.standard.string(forKey: "token"), + let url = URL(string: "\(API.baseURL)/user") + else { + throw AuthError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "PATCH" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + var body: [String: Any] = [:] + if let username { body["username"] = username } + if let avatarUrl { body["avatarUrl"] = avatarUrl } + if let bannerUrl { body["bannerUrl"] = bannerUrl } + if let biography { body["biography"] = biography } + + request.httpBody = try JSONSerialization.data(withJSONObject: body) + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw AuthError.invalidResponse + } + + if http.statusCode == 409 { + throw AuthError.alreadyExists + } + + guard http.statusCode == 200 else { + throw AuthError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let wrapper = try decoder.decode(MeResponse.self, from: data) + return wrapper.user + } + + // MARK: - Check Username Availability + func isUsernameAvailable(_ username: String) async throws -> Bool { + guard + let url = URL( + string: + "\(API.baseURL)/users/available-username?username=\(username.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? username)" + ) + else { + throw AuthError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "GET" + + let (_, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw AuthError.invalidResponse + } + + // 200 = available, 409 = already taken + return http.statusCode == 200 } // MARK: - Sign Out @@ -140,13 +209,41 @@ struct User: Codable { let id: String let username: String let email: String - let imagePath: String? + let avatarUrl: String? + let bannerUrl: String? + let biography: String? + let createdAt: String + let subscriptionType: String? + + var avatarImageURL: URL? { + guard let avatarUrl else { return nil } + return URL(string: avatarUrl) + } + + var bannerImageURL: URL? { + guard let bannerUrl else { return nil } + return URL(string: bannerUrl) + } + + var memberSinceDate: Date? { + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + return formatter.date(from: createdAt) + } + + var isPro: Bool { + subscriptionType == "PRO" + } } struct LoginResponse: Codable { let token: String } +struct MeResponse: Codable { + let user: User +} + enum AuthError: LocalizedError { case invalidURL, invalidResponse, invalidCredentials, alreadyExists diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift index df69814e..a15f3c18 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/LoginView.swift @@ -12,11 +12,25 @@ struct LoginView: View { @State private var isLoading = false @State private var error: String? @State private var strings = L10n.current + @State private var isKeyboardVisible = false var body: some View { NavigationView { ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() + // Gradient Background + LinearGradient( + colors: [ + Color.appBackgroundAdaptive, + Color.appBackgroundAdaptive.opacity(0.95), + Color.appInputFilled.opacity(0.3), + ], + startPoint: .top, + endPoint: .bottom + ) + .ignoresSafeArea() + + // Noise Overlay + NoiseOverlay() VStack(spacing: 0) { // Language Switcher at top (centered) @@ -49,6 +63,9 @@ struct LoginView: View { ) } .padding(.top, 16) + .opacity(isKeyboardVisible ? 0 : 1) + .scaleEffect(isKeyboardVisible ? 0.8 : 1) + .animation(.spring(response: 0.15, dampingFraction: 0.8), value: isKeyboardVisible) Spacer() @@ -151,6 +168,14 @@ struct LoginView: View { .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current } + .onReceive(NotificationCenter.default.publisher(for: UIResponder.keyboardWillShowNotification)) + { _ in + isKeyboardVisible = true + } + .onReceive(NotificationCenter.default.publisher(for: UIResponder.keyboardWillHideNotification)) + { _ in + isKeyboardVisible = false + } } private func performLogin() async { @@ -176,6 +201,26 @@ struct LoginView: View { } } +// MARK: - Noise Overlay +struct NoiseOverlay: View { + var body: some View { + Canvas { context, size in + for _ in 0.. String { + let formatter = DateFormatter() + formatter.dateFormat = "MMM/yyyy" + formatter.locale = Locale(identifier: Language.current.rawValue) + return formatter.string(from: date) + } +} + +// MARK: - Profile Avatar +struct ProfileAvatar: View { + let avatarURL: URL? + let username: String + let size: CGFloat + + var body: some View { + ZStack { + if let avatarURL { + AsyncImage(url: avatarURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + avatarPlaceholder + } + } + } else { + avatarPlaceholder + } + } + .frame(width: size, height: size) + .clipShape(Circle()) + .overlay( + Circle() + .stroke(Color.appBorderAdaptive.opacity(0.5), lineWidth: 1) + ) + } + + private var avatarPlaceholder: some View { + Circle() + .fill(Color.appInputFilled) + .overlay( + Text(String(username.prefix(1)).uppercased()) + .font(.system(size: size * 0.4, weight: .bold)) + .foregroundColor(.appForegroundAdaptive) + ) + } +} + +// MARK: - Pro Badge +struct ProBadge: View { + var body: some View { + Text("PRO") + .font(.system(size: 10, weight: .bold)) + .foregroundColor(.white) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background( + LinearGradient( + colors: [Color.purple, Color.blue], + startPoint: .leading, + endPoint: .trailing + ) + ) + .clipShape(Capsule()) + } +} + +// MARK: - Edit Profile View +struct EditProfileView: View { + let user: User + + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + + // Fixed label width for alignment + private let labelWidth: CGFloat = 100 + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header with back button and title VStack(spacing: 0) { - // Header with settings button HStack { - Spacer() Button { - showSettings = true + dismiss() } label: { - Image(systemName: "gearshape") - .font(.system(size: 18)) + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) .foregroundColor(.appForegroundAdaptive) - .frame(width: 44, height: 44) + .frame(width: 40, height: 40) .background(Color.appInputFilled) .clipShape(Circle()) } + + Spacer() + + Text(strings.editProfile) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + // Invisible placeholder for balance + Color.clear + .frame(width: 40, height: 40) } .padding(.horizontal, 24) - .padding(.top, 8) + .padding(.vertical, 16) - Spacer() + // Border bottom + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } - if isLoading { - ProgressView() - } else if let user { + ScrollView(showsIndicators: false) { + VStack(spacing: 0) { + // Profile Picture Section VStack(spacing: 16) { - Circle() - .fill(Color.appInputFilled) - .frame(width: 80, height: 80) - .overlay( - Text(String(user.username.prefix(1)).uppercased()) - .font(.title.bold()) - .foregroundColor(.appForegroundAdaptive) + // Avatar + ProfileAvatar( + avatarURL: user.avatarImageURL, + username: user.username, + size: 100 + ) + + // Edit Picture Button (disabled) + Button { + // Disabled for now + } label: { + Text(strings.editPicture) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + } + .disabled(true) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 24) + + // Border bottom + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + + // Fields Section + VStack(spacing: 0) { + // Username Field + NavigationLink(destination: EditUsernameView(currentUsername: user.username)) { + EditProfileRow( + label: strings.username, + value: user.username, + labelWidth: labelWidth ) + } + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 24) - Text("@\(user.username)") - .font(.title2.bold()) + // Region Field + NavigationLink(destination: EditFieldView(fieldName: strings.region)) { + EditProfileRow( + label: strings.region, + value: strings.notSet, + labelWidth: labelWidth + ) + } + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 24) + + // Streaming Services Field + NavigationLink(destination: EditFieldView(fieldName: strings.streamingServices)) { + EditProfileRow( + label: strings.streamingServices, + value: strings.notSet, + labelWidth: labelWidth + ) + } + } + } + } + } + } + .navigationBarHidden(true) + .preferredColorScheme(effectiveColorScheme) + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } +} + +// MARK: - Edit Profile Row +struct EditProfileRow: View { + let label: String + let value: String + let labelWidth: CGFloat + + var body: some View { + HStack(alignment: .top, spacing: 16) { + Text(label) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: labelWidth, alignment: .topLeading) + .multilineTextAlignment(.leading) + + Text(value) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + .frame(maxWidth: .infinity, alignment: .leading) + + Image(systemName: "chevron.right") + .font(.system(size: 14, weight: .medium)) + .foregroundColor(.appMutedForegroundAdaptive) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + .contentShape(Rectangle()) + } +} + +// MARK: - Edit Username View +struct EditUsernameView: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + @State private var username: String + @State private var isLoading = false + @State private var isCheckingAvailability = false + @State private var isAvailable: Bool? + @State private var error: String? + @State private var checkTask: Task? + + let currentUsername: String + + init(currentUsername: String) { + self.currentUsername = currentUsername + _username = State(initialValue: currentUsername) + } + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + private var hasChanges: Bool { + username != currentUsername && !username.isEmpty + } + + private var canSave: Bool { + hasChanges && isAvailable == true && !isCheckingAvailability + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header with back button, title, and Done button + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(strings.username) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + // Check Button (Primary) + Button { + Task { await saveUsername() } + } label: { + if isLoading { + ProgressView() + .tint(.appBackgroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appForegroundAdaptive) + .clipShape(Circle()) + } else { + Image(systemName: "checkmark") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor( + canSave ? .appBackgroundAdaptive : .appMutedForegroundAdaptive + ) + .frame(width: 40, height: 40) + .background(canSave ? Color.appForegroundAdaptive : Color.clear) + .clipShape(Circle()) + } } + .disabled(!canSave || isLoading) } + .padding(.horizontal, 24) + .padding(.vertical, 16) - Spacer() + // Border bottom + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } - Button { - AuthService.shared.signOut() - } label: { - HStack { - Image(systemName: "rectangle.portrait.and.arrow.right") - Text(strings.signOut) + // Content + VStack(alignment: .leading, spacing: 8) { + Text(strings.username) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + + HStack(spacing: 12) { + TextField(strings.usernamePlaceholder, text: $username) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.appInputFilled) + .cornerRadius(12) + .onChange(of: username) { newValue in + checkUsernameAvailability(newValue) + } + + // Availability indicator + if hasChanges { + if isCheckingAvailability { + ProgressView() + .frame(width: 24, height: 24) + } else if let isAvailable { + Image(systemName: isAvailable ? "checkmark.circle.fill" : "xmark.circle.fill") + .font(.system(size: 24)) + .foregroundColor(isAvailable ? .green : .appDestructive) + } } - .foregroundColor(.appDestructive) } - .padding(.bottom, 32) + + if let error { + Text(error) + .font(.caption) + .foregroundColor(.appDestructive) + } else if hasChanges && isAvailable == false && !isCheckingAvailability { + Text(strings.usernameAlreadyTaken) + .font(.caption) + .foregroundColor(.appDestructive) + } + + Spacer() } + .padding(.horizontal, 24) + .padding(.top, 24) } - .navigationBarHidden(true) - } - .task { - await loadUser() - } - .sheet(isPresented: $showSettings) { - SettingsSheet() - .standardSheetStyle(detents: [.medium]) } + .navigationBarHidden(true) + .preferredColorScheme(effectiveColorScheme) .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current } } - private func loadUser() async { + private func checkUsernameAvailability(_ newUsername: String) { + // Cancel previous check + checkTask?.cancel() + error = nil + isAvailable = nil + + // Don't check if same as current or empty + guard newUsername != currentUsername, !newUsername.isEmpty else { + isCheckingAvailability = false + return + } + + isCheckingAvailability = true + + // Debounce: wait 500ms before checking + checkTask = Task { + try? await Task.sleep(nanoseconds: 500_000_000) + + guard !Task.isCancelled else { return } + + do { + let available = try await AuthService.shared.isUsernameAvailable(newUsername) + await MainActor.run { + guard !Task.isCancelled else { return } + isAvailable = available + isCheckingAvailability = false + } + } catch { + await MainActor.run { + guard !Task.isCancelled else { return } + isCheckingAvailability = false + } + } + } + } + + private func saveUsername() async { + error = nil isLoading = true defer { isLoading = false } do { - user = try await AuthService.shared.getCurrentUser() + _ = try await AuthService.shared.updateUser(username: username) + dismiss() + } catch AuthError.alreadyExists { + error = strings.usernameAlreadyTaken + isAvailable = false } catch { - user = nil + self.error = error.localizedDescription } } } +// MARK: - Edit Field View +struct EditFieldView: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + + let fieldName: String + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header with back button and title + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(fieldName) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + // Invisible placeholder for balance + Color.clear + .frame(width: 40, height: 40) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + // Border bottom + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } + + // Content placeholder + VStack { + Spacer() + Text("Edit \(fieldName) coming soon...") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + Spacer() + } + } + } + .navigationBarHidden(true) + .preferredColorScheme(effectiveColorScheme) + } +} + // MARK: - Settings Sheet struct SettingsSheet: View { @Environment(\.colorScheme) private var systemColorScheme @@ -167,9 +758,26 @@ struct SettingsSheet: View { } Spacer() + + // Sign Out Button + Button { + AuthService.shared.signOut() + } label: { + HStack(spacing: 8) { + Image(systemName: "rectangle.portrait.and.arrow.right") + Text(strings.signOut) + } + .font(.subheadline.weight(.medium)) + .foregroundColor(.appDestructive) + .frame(maxWidth: .infinity) + .padding(.vertical, 14) + .background(Color.appDestructive.opacity(0.1)) + .cornerRadius(12) + } } .padding(.horizontal, 24) .padding(.top, 16) + .padding(.bottom, 24) } .preferredColorScheme(effectiveColorScheme) .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in @@ -210,3 +818,7 @@ struct ThemeOptionButton: View { } } } + +#Preview { + ProfileTabView() +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift index 83517c60..ad2ab717 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift @@ -117,28 +117,30 @@ struct SearchTabView: View { ScrollView(showsIndicators: false) { VStack(spacing: 32) { HomeSectionView( - title: strings.popularMovies, + title: strings.movies, items: popularMovies, mediaType: "movie", - categoryType: .movies + categoryType: .movies, + initialMovieSubcategory: .popular ) HomeSectionView( - title: strings.popularTVSeries, + title: strings.tvSeries, items: popularTVSeries, mediaType: "tv", - categoryType: .tvSeries + categoryType: .tvSeries, + initialTVSeriesSubcategory: .popular ) HomeSectionView( - title: strings.popularAnimes, + title: strings.animes, items: popularAnimes, mediaType: "tv", categoryType: .animes ) HomeSectionView( - title: strings.popularDoramas, + title: strings.doramas, items: popularDoramas, mediaType: "tv", categoryType: .doramas diff --git a/apps/web/next-env.d.ts b/apps/web/next-env.d.ts index c4b7818f..9edff1c7 100644 --- a/apps/web/next-env.d.ts +++ b/apps/web/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/dev/types/routes.d.ts"; +import "./.next/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. From 0a999b361f505f1ec1aaf7145d7dd709dc6f368f Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Tue, 20 Jan 2026 23:07:23 -0300 Subject: [PATCH 41/77] feat(profile): add user preferences management with region and streaming services selection; implement loading and saving preferences in EditProfileView and EditStreamingServicesView; enhance localization for new strings related to user preferences --- .../Plotwist/Localization/Strings.swift | 54 +- .../Plotwist/Services/AuthService.swift | 63 ++ .../Plotwist/Services/TMDBService.swift | 117 +++ .../Plotwist/Views/Home/ProfileTabView.swift | 718 +++++++++++++++++- 4 files changed, 921 insertions(+), 31 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 9387b8cf..d6c5e822 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -134,7 +134,12 @@ enum L10n { username: "Username", region: "Region", streamingServices: "Streaming Services", - notSet: "Not set" + notSet: "Not set", + searchRegion: "Search region...", + searchStreamingServices: "Search services...", + selectRegionFirst: "Select a region first", + servicesSelected: "%d selected", + streamingServicesHint: "Showing services available in your selected region." ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -250,7 +255,12 @@ enum L10n { username: "Nome de usuário", region: "Região", streamingServices: "Serviços de Streaming", - notSet: "Não definido" + notSet: "Não definido", + searchRegion: "Buscar região...", + searchStreamingServices: "Buscar serviços...", + selectRegionFirst: "Selecione uma região primeiro", + servicesSelected: "%d selecionados", + streamingServicesHint: "Exibindo serviços disponíveis na região selecionada." ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -366,7 +376,12 @@ enum L10n { username: "Nombre de usuario", region: "Región", streamingServices: "Servicios de Streaming", - notSet: "No definido" + notSet: "No definido", + searchRegion: "Buscar región...", + searchStreamingServices: "Buscar servicios...", + selectRegionFirst: "Seleccione una región primero", + servicesSelected: "%d seleccionados", + streamingServicesHint: "Mostrando servicios disponibles en la región seleccionada." ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -482,7 +497,12 @@ enum L10n { username: "Nom d'utilisateur", region: "Région", streamingServices: "Services de Streaming", - notSet: "Non défini" + notSet: "Non défini", + searchRegion: "Rechercher une région...", + searchStreamingServices: "Rechercher des services...", + selectRegionFirst: "Sélectionnez d'abord une région", + servicesSelected: "%d sélectionnés", + streamingServicesHint: "Affichage des services disponibles dans la région sélectionnée." ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -598,7 +618,12 @@ enum L10n { username: "Benutzername", region: "Region", streamingServices: "Streaming-Dienste", - notSet: "Nicht festgelegt" + notSet: "Nicht festgelegt", + searchRegion: "Region suchen...", + searchStreamingServices: "Dienste suchen...", + selectRegionFirst: "Wählen Sie zuerst eine Region", + servicesSelected: "%d ausgewählt", + streamingServicesHint: "Zeigt Dienste an, die in der ausgewählten Region verfügbar sind." ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -714,7 +739,12 @@ enum L10n { username: "Nome utente", region: "Regione", streamingServices: "Servizi di Streaming", - notSet: "Non impostato" + notSet: "Non impostato", + searchRegion: "Cerca regione...", + searchStreamingServices: "Cerca servizi...", + selectRegionFirst: "Seleziona prima una regione", + servicesSelected: "%d selezionati", + streamingServicesHint: "Mostra i servizi disponibili nella regione selezionata." ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -829,7 +859,12 @@ enum L10n { username: "ユーザー名", region: "地域", streamingServices: "ストリーミング", - notSet: "未設定" + notSet: "未設定", + searchRegion: "地域を検索...", + searchStreamingServices: "サービスを検索...", + selectRegionFirst: "最初に地域を選択してください", + servicesSelected: "%d 件選択", + streamingServicesHint: "選択した地域で利用可能なサービスを表示しています。" ), ] } @@ -963,4 +998,9 @@ struct Strings { let region: String let streamingServices: String let notSet: String + let searchRegion: String + let searchStreamingServices: String + let selectRegionFirst: String + let servicesSelected: String + let streamingServicesHint: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift index d045dede..f04188e7 100644 --- a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift @@ -193,6 +193,57 @@ class AuthService { return http.statusCode == 200 } + // MARK: - Get User Preferences + func getUserPreferences() async throws -> UserPreferences? { + guard let token = UserDefaults.standard.string(forKey: "token"), + let url = URL(string: "\(API.baseURL)/user/preferences") + else { + throw AuthError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "GET" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw AuthError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let wrapper = try decoder.decode(UserPreferencesResponse.self, from: data) + return wrapper.userPreferences + } + + // MARK: - Update User Preferences + func updateUserPreferences(watchRegion: String, watchProvidersIds: [Int] = []) async throws { + guard let token = UserDefaults.standard.string(forKey: "token"), + let url = URL(string: "\(API.baseURL)/user/preferences") + else { + throw AuthError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "PATCH" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + let body: [String: Any] = [ + "watchRegion": watchRegion, + "watchProvidersIds": watchProvidersIds, + ] + + request.httpBody = try JSONSerialization.data(withJSONObject: body) + + let (_, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw AuthError.invalidResponse + } + } + // MARK: - Sign Out func signOut() { UserDefaults.standard.removeObject(forKey: "token") @@ -244,6 +295,17 @@ struct MeResponse: Codable { let user: User } +struct UserPreferencesResponse: Codable { + let userPreferences: UserPreferences? +} + +struct UserPreferences: Codable { + let id: String + let userId: String + let watchProvidersIds: [Int]? + let watchRegion: String? +} + enum AuthError: LocalizedError { case invalidURL, invalidResponse, invalidCredentials, alreadyExists @@ -259,4 +321,5 @@ enum AuthError: LocalizedError { extension Notification.Name { static let authChanged = Notification.Name("authChanged") + static let profileUpdated = Notification.Name("profileUpdated") } diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index 3596627d..f6b4ed60 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -474,6 +474,80 @@ class TMDBService { let result = try decoder.decode(PopularResponse.self, from: data) return result.results.map { $0.toSearchResult(mediaType: mediaType) } } + + // MARK: - Get Available Regions + func getAvailableRegions(language: String = "en-US") async throws -> [WatchRegion] { + guard let url = URL(string: "\(baseURL)/watch/providers/regions?language=\(language)") else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(WatchRegionsResponse.self, from: data) + return result.results.sorted { $0.englishName < $1.englishName } + } + + // MARK: - Get Streaming Providers by Region + func getStreamingProviders(watchRegion: String, language: String = "en-US") async throws + -> [StreamingProvider] + { + // Fetch both movie and tv providers and merge them + async let movieProviders = fetchProviders( + type: "movie", watchRegion: watchRegion, language: language) + async let tvProviders = fetchProviders(type: "tv", watchRegion: watchRegion, language: language) + + let (movies, tv) = try await (movieProviders, tvProviders) + + // Merge and deduplicate + var uniqueProviders: [Int: StreamingProvider] = [:] + for provider in movies { + uniqueProviders[provider.providerId] = provider + } + for provider in tv { + if uniqueProviders[provider.providerId] == nil { + uniqueProviders[provider.providerId] = provider + } + } + + return Array(uniqueProviders.values).sorted { $0.providerName < $1.providerName } + } + + private func fetchProviders(type: String, watchRegion: String, language: String) async throws + -> [StreamingProvider] + { + guard + let url = URL( + string: + "\(baseURL)/watch/providers/\(type)?language=\(language)&watch_region=\(watchRegion)") + else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(StreamingProvidersResponse.self, from: data) + return result.results + } } // MARK: - Movie Details Model @@ -706,3 +780,46 @@ struct WatchProvider: Codable, Identifiable { return URL(string: "https://image.tmdb.org/t/p/w92\(logoPath)") } } + +// MARK: - Streaming Providers (for preferences) +struct StreamingProvidersResponse: Codable { + let results: [StreamingProvider] +} + +struct StreamingProvider: Codable, Identifiable { + let providerId: Int + let providerName: String + let logoPath: String? + + var id: Int { providerId } + + var logoURL: URL? { + guard let logoPath else { return nil } + return URL(string: "https://image.tmdb.org/t/p/w92\(logoPath)") + } +} + +// MARK: - Watch Regions +struct WatchRegionsResponse: Codable { + let results: [WatchRegion] +} + +struct WatchRegion: Codable, Identifiable { + let iso31661: String + let englishName: String + let nativeName: String + + var id: String { iso31661 } + + // Returns flag emoji for the country code + var flagEmoji: String { + let base: UInt32 = 127397 + var emoji = "" + for scalar in iso31661.uppercased().unicodeScalars { + if let unicode = UnicodeScalar(base + scalar.value) { + emoji.append(String(unicode)) + } + } + return emoji + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index dc1b8b09..8ce2525a 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -172,6 +172,9 @@ struct ProfileTabView: View { .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current } + .onReceive(NotificationCenter.default.publisher(for: .profileUpdated)) { _ in + Task { await loadUser() } + } .navigationBarHidden(true) } } @@ -265,6 +268,9 @@ struct EditProfileView: View { @Environment(\.colorScheme) private var systemColorScheme @ObservedObject private var themeManager = ThemeManager.shared @State private var strings = L10n.current + @State private var userPreferences: UserPreferences? + @State private var isLoadingPreferences = true + @State private var streamingProviders: [StreamingProvider] = [] // Fixed label width for alignment private let labelWidth: CGFloat = 100 @@ -273,6 +279,45 @@ struct EditProfileView: View { themeManager.current.colorScheme ?? systemColorScheme } + private var currentRegionName: String { + guard let region = userPreferences?.watchRegion else { + return strings.notSet + } + return regionName(for: region) + } + + private var currentRegionFlag: String? { + guard let region = userPreferences?.watchRegion else { + return nil + } + return flagEmoji(for: region) + } + + private func regionName(for code: String) -> String { + let locale = Locale(identifier: Language.current.rawValue) + return locale.localizedString(forRegionCode: code) ?? code + } + + private func flagEmoji(for code: String) -> String { + let base: UInt32 = 127397 + var emoji = "" + for scalar in code.uppercased().unicodeScalars { + if let unicode = UnicodeScalar(base + scalar.value) { + emoji.append(String(unicode)) + } + } + return emoji + } + + private var selectedProviders: [StreamingProvider] { + guard let ids = userPreferences?.watchProvidersIds else { return [] } + return streamingProviders.filter { ids.contains($0.providerId) } + } + + private var canEditStreamingServices: Bool { + userPreferences?.watchRegion != nil + } + var body: some View { ZStack { Color.appBackgroundAdaptive.ignoresSafeArea() @@ -359,12 +404,21 @@ struct EditProfileView: View { .padding(.leading, 24) // Region Field - NavigationLink(destination: EditFieldView(fieldName: strings.region)) { - EditProfileRow( - label: strings.region, - value: strings.notSet, - labelWidth: labelWidth - ) + NavigationLink( + destination: EditRegionView(currentRegion: userPreferences?.watchRegion) + ) { + EditProfileBadgeRow(label: strings.region) { + if let region = userPreferences?.watchRegion { + ProfileBadge( + text: currentRegionName, + prefix: currentRegionFlag + ) + } else { + Text(strings.notSet) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } + } } Rectangle() @@ -373,12 +427,37 @@ struct EditProfileView: View { .padding(.leading, 24) // Streaming Services Field - NavigationLink(destination: EditFieldView(fieldName: strings.streamingServices)) { - EditProfileRow( - label: strings.streamingServices, - value: strings.notSet, - labelWidth: labelWidth - ) + if canEditStreamingServices { + NavigationLink( + destination: EditStreamingServicesView( + watchRegion: userPreferences?.watchRegion ?? "", + selectedIds: userPreferences?.watchProvidersIds ?? [] + ) + ) { + EditProfileBadgeRow(label: strings.streamingServices) { + if selectedProviders.isEmpty { + Text(strings.notSet) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } else { + FlowLayout(spacing: 6) { + ForEach(selectedProviders) { provider in + ProfileBadge( + text: provider.providerName, + logoURL: provider.logoURL + ) + } + } + } + } + } + } else { + EditProfileBadgeRow(label: strings.streamingServices) { + Text(strings.selectRegionFirst) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } + .opacity(0.5) } } } @@ -387,9 +466,34 @@ struct EditProfileView: View { } .navigationBarHidden(true) .preferredColorScheme(effectiveColorScheme) + .task { + await loadPreferences() + } .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current } + .onReceive(NotificationCenter.default.publisher(for: .profileUpdated)) { _ in + Task { await loadPreferences() } + } + } + + private func loadPreferences() async { + isLoadingPreferences = true + defer { isLoadingPreferences = false } + + do { + userPreferences = try await AuthService.shared.getUserPreferences() + + // Load providers if region is set + if let region = userPreferences?.watchRegion { + streamingProviders = try await TMDBService.shared.getStreamingProviders( + watchRegion: region, + language: Language.current.rawValue + ) + } + } catch { + print("Error loading preferences: \(error)") + } } } @@ -398,6 +502,7 @@ struct EditProfileRow: View { let label: String let value: String let labelWidth: CGFloat + var prefix: String? = nil var body: some View { HStack(alignment: .top, spacing: 16) { @@ -407,9 +512,41 @@ struct EditProfileRow: View { .frame(width: labelWidth, alignment: .topLeading) .multilineTextAlignment(.leading) - Text(value) + HStack(spacing: 8) { + if let prefix { + Text(prefix) + .font(.title3) + } + Text(value) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + } + .frame(maxWidth: .infinity, alignment: .leading) + + Image(systemName: "chevron.right") + .font(.system(size: 14, weight: .medium)) + .foregroundColor(.appMutedForegroundAdaptive) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + .contentShape(Rectangle()) + } +} + +// MARK: - Edit Profile Badge Row +struct EditProfileBadgeRow: View { + let label: String + @ViewBuilder let content: Content + + var body: some View { + HStack(alignment: .top, spacing: 16) { + Text(label) .font(.subheadline) - .foregroundColor(.appForegroundAdaptive) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: 100, alignment: .topLeading) + .multilineTextAlignment(.leading) + + content .frame(maxWidth: .infinity, alignment: .leading) Image(systemName: "chevron.right") @@ -422,6 +559,97 @@ struct EditProfileRow: View { } } +// MARK: - Profile Badge +struct ProfileBadge: View { + let text: String + var prefix: String? = nil + var logoURL: URL? = nil + + var body: some View { + HStack(spacing: 6) { + if let prefix { + Text(prefix) + .font(.caption) + } + + if let logoURL { + AsyncImage(url: logoURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appInputFilled) + } + } + .frame(width: 18, height: 18) + .cornerRadius(4) + } + + Text(text) + .font(.caption) + .foregroundColor(.appForegroundAdaptive) + } + .padding(.horizontal, 10) + .padding(.vertical, 6) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 8)) + } +} + +// MARK: - Flow Layout +struct FlowLayout: Layout { + var spacing: CGFloat = 8 + + func sizeThatFits(proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) -> CGSize { + let result = FlowResult(in: proposal.width ?? 0, subviews: subviews, spacing: spacing) + return result.size + } + + func placeSubviews( + in bounds: CGRect, proposal: ProposedViewSize, subviews: Subviews, cache: inout () + ) { + let result = FlowResult(in: bounds.width, subviews: subviews, spacing: spacing) + for (index, subview) in subviews.enumerated() { + subview.place( + at: CGPoint( + x: bounds.minX + result.positions[index].x, + y: bounds.minY + result.positions[index].y), + proposal: .unspecified) + } + } + + struct FlowResult { + var size: CGSize = .zero + var positions: [CGPoint] = [] + + init(in maxWidth: CGFloat, subviews: Subviews, spacing: CGFloat) { + var x: CGFloat = 0 + var y: CGFloat = 0 + var rowHeight: CGFloat = 0 + + for subview in subviews { + let size = subview.sizeThatFits(.unspecified) + + if x + size.width > maxWidth && x > 0 { + x = 0 + y += rowHeight + spacing + rowHeight = 0 + } + + positions.append(CGPoint(x: x, y: y)) + rowHeight = max(rowHeight, size.height) + x += size.width + spacing + self.size.width = max(self.size.width, x - spacing) + } + + self.size.height = y + rowHeight + } + } +} + // MARK: - Edit Username View struct EditUsernameView: View { @Environment(\.dismiss) private var dismiss @@ -519,29 +747,29 @@ struct EditUsernameView: View { .font(.subheadline.weight(.medium)) .foregroundColor(.appMutedForegroundAdaptive) - HStack(spacing: 12) { + HStack(spacing: 0) { TextField(strings.usernamePlaceholder, text: $username) .textInputAutocapitalization(.never) .autocorrectionDisabled() - .padding(12) - .background(Color.appInputFilled) - .cornerRadius(12) .onChange(of: username) { newValue in checkUsernameAvailability(newValue) } - // Availability indicator + // Availability indicator inside field (only show loading or error) if hasChanges { if isCheckingAvailability { ProgressView() - .frame(width: 24, height: 24) - } else if let isAvailable { - Image(systemName: isAvailable ? "checkmark.circle.fill" : "xmark.circle.fill") - .font(.system(size: 24)) - .foregroundColor(isAvailable ? .green : .appDestructive) + .frame(width: 20, height: 20) + } else if isAvailable == false { + Image(systemName: "xmark.circle.fill") + .font(.system(size: 20)) + .foregroundColor(.appDestructive) } } } + .padding(12) + .background(Color.appInputFilled) + .cornerRadius(12) if let error { Text(error) @@ -609,6 +837,7 @@ struct EditUsernameView: View { do { _ = try await AuthService.shared.updateUser(username: username) + NotificationCenter.default.post(name: .profileUpdated, object: nil) dismiss() } catch AuthError.alreadyExists { error = strings.usernameAlreadyTaken @@ -619,6 +848,447 @@ struct EditUsernameView: View { } } +// MARK: - Edit Region View +struct EditRegionView: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + @State private var regions: [WatchRegion] = [] + @State private var filteredRegions: [WatchRegion] = [] + @State private var selectedRegion: String? + @State private var searchText = "" + @State private var isLoading = true + @State private var isSaving = false + + let currentRegion: String? + + init(currentRegion: String?) { + self.currentRegion = currentRegion + _selectedRegion = State(initialValue: currentRegion) + } + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + private var hasChanges: Bool { + selectedRegion != currentRegion && selectedRegion != nil + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(strings.region) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + // Save Button (Primary) + Button { + Task { await saveRegion() } + } label: { + if isSaving { + ProgressView() + .tint(.appBackgroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appForegroundAdaptive) + .clipShape(Circle()) + } else { + Image(systemName: "checkmark") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor( + hasChanges ? .appBackgroundAdaptive : .appMutedForegroundAdaptive + ) + .frame(width: 40, height: 40) + .background(hasChanges ? Color.appForegroundAdaptive : Color.clear) + .clipShape(Circle()) + } + } + .disabled(!hasChanges || isSaving) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + // Search Field + HStack(spacing: 8) { + Image(systemName: "magnifyingglass") + .foregroundColor(.appMutedForegroundAdaptive) + TextField(strings.searchRegion, text: $searchText) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .onChange(of: searchText) { _ in + filterRegions() + } + } + .padding(12) + .background(Color.appInputFilled) + .cornerRadius(12) + .padding(.horizontal, 24) + .padding(.bottom, 16) + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } + + // Content + if isLoading { + VStack { + Spacer() + ProgressView() + Spacer() + } + } else { + ScrollView(showsIndicators: false) { + LazyVStack(spacing: 0) { + ForEach(filteredRegions) { region in + Button { + selectedRegion = region.iso31661 + } label: { + HStack(spacing: 12) { + Text(region.flagEmoji) + .font(.title2) + + Text(region.englishName) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + if selectedRegion == region.iso31661 { + Image(systemName: "checkmark") + .font(.system(size: 16, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 14) + .background( + selectedRegion == region.iso31661 + ? Color.appInputFilled : Color.clear + ) + } + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 60) + } + } + } + } + } + } + .navigationBarHidden(true) + .preferredColorScheme(effectiveColorScheme) + .task { + await loadRegions() + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func loadRegions() async { + isLoading = true + defer { isLoading = false } + + do { + regions = try await TMDBService.shared.getAvailableRegions( + language: Language.current.rawValue) + filterRegions() + } catch { + print("Error loading regions: \(error)") + } + } + + private func filterRegions() { + if searchText.isEmpty { + filteredRegions = regions + } else { + filteredRegions = regions.filter { + $0.englishName.localizedCaseInsensitiveContains(searchText) + || $0.nativeName.localizedCaseInsensitiveContains(searchText) + || $0.iso31661.localizedCaseInsensitiveContains(searchText) + } + } + } + + private func saveRegion() async { + guard let selectedRegion else { return } + + isSaving = true + defer { isSaving = false } + + do { + try await AuthService.shared.updateUserPreferences(watchRegion: selectedRegion) + NotificationCenter.default.post(name: .profileUpdated, object: nil) + dismiss() + } catch { + print("Error saving region: \(error)") + } + } +} + +// MARK: - Edit Streaming Services View +struct EditStreamingServicesView: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + @State private var providers: [StreamingProvider] = [] + @State private var filteredProviders: [StreamingProvider] = [] + @State private var selectedIds: Set + @State private var searchText = "" + @State private var isLoading = true + @State private var isSaving = false + + let watchRegion: String + let initialSelectedIds: [Int] + + init(watchRegion: String, selectedIds: [Int]) { + self.watchRegion = watchRegion + self.initialSelectedIds = selectedIds + _selectedIds = State(initialValue: Set(selectedIds)) + } + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + private var hasChanges: Bool { + Set(initialSelectedIds) != selectedIds + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(strings.streamingServices) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + // Save Button (Primary) + Button { + Task { await saveServices() } + } label: { + if isSaving { + ProgressView() + .tint(.appBackgroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appForegroundAdaptive) + .clipShape(Circle()) + } else { + Image(systemName: "checkmark") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor( + hasChanges ? .appBackgroundAdaptive : .appMutedForegroundAdaptive + ) + .frame(width: 40, height: 40) + .background(hasChanges ? Color.appForegroundAdaptive : Color.clear) + .clipShape(Circle()) + } + } + .disabled(!hasChanges || isSaving) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + // Search Field + HStack(spacing: 8) { + Image(systemName: "magnifyingglass") + .foregroundColor(.appMutedForegroundAdaptive) + TextField(strings.searchStreamingServices, text: $searchText) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .onChange(of: searchText) { _ in + filterProviders() + } + } + .padding(12) + .background(Color.appInputFilled) + .cornerRadius(12) + .padding(.horizontal, 24) + + // Hint message + HStack(spacing: 8) { + Image(systemName: "info.circle") + .font(.caption) + Text(strings.streamingServicesHint) + .font(.caption) + } + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 24) + .padding(.bottom, 16) + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } + + // Content + if isLoading { + VStack { + Spacer() + ProgressView() + Spacer() + } + } else { + ScrollView(showsIndicators: false) { + LazyVStack(spacing: 0) { + ForEach(filteredProviders) { provider in + Button { + toggleProvider(provider.providerId) + } label: { + HStack(spacing: 12) { + // Provider Logo + AsyncImage(url: provider.logoURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appInputFilled) + } + } + .frame(width: 40, height: 40) + .cornerRadius(8) + + Text(provider.providerName) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + if selectedIds.contains(provider.providerId) { + Image(systemName: "checkmark.circle.fill") + .font(.system(size: 22)) + .foregroundColor(.appForegroundAdaptive) + } else { + Image(systemName: "circle") + .font(.system(size: 22)) + .foregroundColor(.appMutedForegroundAdaptive) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 12) + .background( + selectedIds.contains(provider.providerId) + ? Color.appInputFilled : Color.clear + ) + } + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 76) + } + } + } + } + } + } + .navigationBarHidden(true) + .preferredColorScheme(effectiveColorScheme) + .task { + await loadProviders() + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func toggleProvider(_ id: Int) { + if selectedIds.contains(id) { + selectedIds.remove(id) + } else { + selectedIds.insert(id) + } + } + + private func loadProviders() async { + isLoading = true + defer { isLoading = false } + + do { + providers = try await TMDBService.shared.getStreamingProviders( + watchRegion: watchRegion, + language: Language.current.rawValue + ) + filterProviders() + } catch { + print("Error loading providers: \(error)") + } + } + + private func filterProviders() { + if searchText.isEmpty { + filteredProviders = providers + } else { + filteredProviders = providers.filter { + $0.providerName.localizedCaseInsensitiveContains(searchText) + } + } + } + + private func saveServices() async { + isSaving = true + defer { isSaving = false } + + do { + try await AuthService.shared.updateUserPreferences( + watchRegion: watchRegion, + watchProvidersIds: Array(selectedIds) + ) + NotificationCenter.default.post(name: .profileUpdated, object: nil) + dismiss() + } catch { + print("Error saving services: \(error)") + } + } +} + // MARK: - Edit Field View struct EditFieldView: View { @Environment(\.dismiss) private var dismiss From 8a6fd9914d13005e37b90f1208aaf9803f771d2e Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Tue, 20 Jan 2026 23:30:42 -0300 Subject: [PATCH 42/77] feat(preferences): introduce PreferencesBadge and UserPreferencesManager for managing user preferences; enhance localization with new strings; update media loading methods to consider user-selected streaming services and regions --- .../Components/PreferencesBadge.swift | 759 ++++++++++++++++++ .../Plotwist/Localization/Strings.swift | 22 +- .../Plotwist/Services/TMDBService.swift | 190 +++++ .../Services/UserPreferencesManager.swift | 84 ++ .../Views/Home/CategoryListView.swift | 156 +++- .../Plotwist/Views/Home/ProfileTabView.swift | 2 + .../Plotwist/Views/Home/SearchTabView.swift | 74 +- 7 files changed, 1252 insertions(+), 35 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Components/PreferencesBadge.swift create mode 100644 apps/ios/Plotwist/Plotwist/Services/UserPreferencesManager.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/PreferencesBadge.swift b/apps/ios/Plotwist/Plotwist/Components/PreferencesBadge.swift new file mode 100644 index 00000000..0d77f103 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/PreferencesBadge.swift @@ -0,0 +1,759 @@ +// +// PreferencesBadge.swift +// Plotwist +// + +import SwiftUI + +struct PreferencesBadge: View { + @ObservedObject private var preferencesManager = UserPreferencesManager.shared + @State private var strings = L10n.current + @State private var showPreferences = false + + var body: some View { + if preferencesManager.hasStreamingServices { + Button { + showPreferences = true + } label: { + HStack(spacing: 6) { + Image(systemName: "sparkles") + .font(.caption) + Text(strings.resultsBasedOnPreferences) + .font(.caption) + } + .foregroundColor(.appForegroundAdaptive) + .padding(.horizontal, 12) + .padding(.vertical, 8) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 8)) + } + .sheet(isPresented: $showPreferences) { + PreferencesQuickSheet() + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + } +} + +// MARK: - Preferences Quick Sheet +struct PreferencesQuickSheet: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @ObservedObject private var preferencesManager = UserPreferencesManager.shared + @State private var strings = L10n.current + @State private var showRegionPicker = false + @State private var showServicesPicker = false + @State private var streamingProviders: [StreamingProvider] = [] + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + private var selectedProviders: [StreamingProvider] { + streamingProviders.filter { preferencesManager.watchProvidersIds.contains($0.providerId) } + } + + var body: some View { + NavigationView { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "xmark") + .font(.system(size: 16, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 36, height: 36) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(strings.preferences) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + Color.clear + .frame(width: 36, height: 36) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } + + // Content + ScrollView { + VStack(alignment: .leading, spacing: 0) { + // Region + if let region = preferencesManager.watchRegion { + Button { + showRegionPicker = true + } label: { + PreferencesBadgeRow(label: strings.region) { + PreferencesItemBadge( + text: regionName(for: region), + prefix: flagEmoji(for: region) + ) + } + } + .sheet(isPresented: $showRegionPicker) { + RegionPickerSheet(currentRegion: region) + } + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 24) + + // Streaming Services + Button { + showServicesPicker = true + } label: { + PreferencesBadgeRow(label: strings.streamingServices) { + if selectedProviders.isEmpty { + Text(strings.notSet) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } else { + PreferencesFlowLayout(spacing: 8) { + ForEach(selectedProviders) { provider in + PreferencesItemBadge( + text: provider.providerName, + logoURL: provider.logoURL + ) + } + } + } + } + } + .sheet(isPresented: $showServicesPicker) { + ServicesPickerSheet( + watchRegion: region, + selectedIds: preferencesManager.watchProvidersIds + ) + } + } else { + Button { + showRegionPicker = true + } label: { + PreferencesBadgeRow(label: strings.region) { + Text(strings.notSet) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + } + .sheet(isPresented: $showRegionPicker) { + RegionPickerSheet(currentRegion: nil) + } + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 24) + + PreferencesBadgeRow(label: strings.streamingServices) { + Text(strings.selectRegionFirst) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + .opacity(0.5) + } + } + } + + Spacer() + } + } + .navigationBarHidden(true) + .preferredColorScheme(effectiveColorScheme) + } + .task { + await loadProviders() + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + .onReceive(NotificationCenter.default.publisher(for: .profileUpdated)) { _ in + Task { await loadProviders() } + } + } + + private func loadProviders() async { + guard let region = preferencesManager.watchRegion else { return } + do { + streamingProviders = try await TMDBService.shared.getStreamingProviders( + watchRegion: region, + language: Language.current.rawValue + ) + } catch { + print("Error loading providers: \(error)") + } + } + + private func regionName(for code: String) -> String { + let locale = Locale(identifier: Language.current.rawValue) + return locale.localizedString(forRegionCode: code) ?? code + } + + private func flagEmoji(for code: String) -> String { + let base: UInt32 = 127397 + var emoji = "" + for scalar in code.uppercased().unicodeScalars { + if let unicode = UnicodeScalar(base + scalar.value) { + emoji.append(String(unicode)) + } + } + return emoji + } +} + +// MARK: - Preferences Badge Row +struct PreferencesBadgeRow: View { + let label: String + @ViewBuilder let content: Content + + var body: some View { + HStack(alignment: .top, spacing: 16) { + Text(label) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: 100, alignment: .topLeading) + .multilineTextAlignment(.leading) + + content + .frame(maxWidth: .infinity, alignment: .leading) + + Image(systemName: "chevron.right") + .font(.system(size: 14, weight: .medium)) + .foregroundColor(.appMutedForegroundAdaptive) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + .contentShape(Rectangle()) + } +} + +// MARK: - Preferences Item Badge +struct PreferencesItemBadge: View { + let text: String + var prefix: String? = nil + var logoURL: URL? = nil + + var body: some View { + HStack(spacing: 6) { + if let prefix { + Text(prefix) + .font(.caption) + } + + if let logoURL { + AsyncImage(url: logoURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appInputFilled) + } + } + .frame(width: 18, height: 18) + .cornerRadius(4) + } + + Text(text) + .font(.caption) + .foregroundColor(.appForegroundAdaptive) + } + .padding(.horizontal, 10) + .padding(.vertical, 6) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 6)) + } +} + +// MARK: - Preferences Flow Layout +struct PreferencesFlowLayout: Layout { + var spacing: CGFloat = 8 + + func sizeThatFits(proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) -> CGSize { + let maxWidth = proposal.width ?? .infinity + var height: CGFloat = 0 + var currentRowWidth: CGFloat = 0 + var currentRowHeight: CGFloat = 0 + + for subview in subviews { + let size = subview.sizeThatFits(.unspecified) + + if currentRowWidth + size.width > maxWidth && currentRowWidth > 0 { + height += currentRowHeight + spacing + currentRowWidth = 0 + currentRowHeight = 0 + } + + currentRowWidth += size.width + spacing + currentRowHeight = max(currentRowHeight, size.height) + } + + height += currentRowHeight + return CGSize(width: maxWidth, height: height) + } + + func placeSubviews(in bounds: CGRect, proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) { + var x = bounds.minX + var y = bounds.minY + var currentRowHeight: CGFloat = 0 + + for subview in subviews { + let size = subview.sizeThatFits(.unspecified) + + if x + size.width > bounds.maxX && x > bounds.minX { + x = bounds.minX + y += currentRowHeight + spacing + currentRowHeight = 0 + } + + subview.place(at: CGPoint(x: x, y: y), proposal: .unspecified) + x += size.width + spacing + currentRowHeight = max(currentRowHeight, size.height) + } + } +} + +// MARK: - Region Picker Sheet +struct RegionPickerSheet: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + @State private var searchText = "" + @State private var regions: [WatchRegion] = [] + @State private var filteredRegions: [WatchRegion] = [] + @State private var isLoading = true + @State private var isSaving = false + @State private var selectedRegion: String + + init(currentRegion: String?) { + _selectedRegion = State(initialValue: currentRegion ?? "") + } + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + private var hasChanges: Bool { + !selectedRegion.isEmpty + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "xmark") + .font(.system(size: 16, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 36, height: 36) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(strings.region) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + Button { + Task { await saveRegion() } + } label: { + if isSaving { + ProgressView() + .frame(width: 36, height: 36) + } else { + Image(systemName: "checkmark") + .font(.system(size: 16, weight: .semibold)) + .foregroundColor(hasChanges ? .appBackgroundAdaptive : .appMutedForegroundAdaptive) + .frame(width: 36, height: 36) + .background(hasChanges ? Color.appForegroundAdaptive : Color.appInputFilled) + .clipShape(Circle()) + } + } + .disabled(!hasChanges || isSaving) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } + + // Search Field + HStack(spacing: 8) { + Image(systemName: "magnifyingglass") + .foregroundColor(.appMutedForegroundAdaptive) + TextField(strings.searchRegion, text: $searchText) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .onChange(of: searchText) { _ in + filterRegions() + } + } + .padding(12) + .background(Color.appInputFilled) + .cornerRadius(12) + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + + // Content + if isLoading { + Spacer() + ProgressView() + Spacer() + } else { + ScrollView { + LazyVStack(spacing: 0) { + ForEach(filteredRegions) { region in + Button { + selectedRegion = region.iso31661 + } label: { + HStack(spacing: 12) { + Text(region.flagEmoji) + .font(.title2) + + Text(region.nativeName) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + if selectedRegion == region.iso31661 { + Image(systemName: "checkmark.circle.fill") + .font(.system(size: 22)) + .foregroundColor(.appForegroundAdaptive) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 12) + .background( + selectedRegion == region.iso31661 + ? Color.appInputFilled : Color.clear + ) + } + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 60) + } + } + } + } + } + } + .preferredColorScheme(effectiveColorScheme) + .task { + await loadRegions() + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func loadRegions() async { + isLoading = true + defer { isLoading = false } + + do { + regions = try await TMDBService.shared.getAvailableRegions( + language: Language.current.rawValue + ) + filterRegions() + } catch { + print("Error loading regions: \(error)") + } + } + + private func filterRegions() { + if searchText.isEmpty { + filteredRegions = regions + } else { + filteredRegions = regions.filter { + $0.englishName.localizedCaseInsensitiveContains(searchText) + || $0.nativeName.localizedCaseInsensitiveContains(searchText) + } + } + } + + private func saveRegion() async { + guard hasChanges else { return } + + isSaving = true + defer { isSaving = false } + + do { + try await AuthService.shared.updateUserPreferences(watchRegion: selectedRegion) + NotificationCenter.default.post(name: .profileUpdated, object: nil) + dismiss() + } catch { + print("Error saving region: \(error)") + } + } +} + +// MARK: - Services Picker Sheet +struct ServicesPickerSheet: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + @State private var searchText = "" + @State private var providers: [StreamingProvider] = [] + @State private var filteredProviders: [StreamingProvider] = [] + @State private var isLoading = true + @State private var isSaving = false + @State private var selectedIds: Set + + let watchRegion: String + + init(watchRegion: String, selectedIds: [Int]) { + self.watchRegion = watchRegion + _selectedIds = State(initialValue: Set(selectedIds)) + } + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "xmark") + .font(.system(size: 16, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 36, height: 36) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(strings.streamingServices) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + Button { + Task { await saveServices() } + } label: { + if isSaving { + ProgressView() + .frame(width: 36, height: 36) + } else { + Image(systemName: "checkmark") + .font(.system(size: 16, weight: .semibold)) + .foregroundColor(.appBackgroundAdaptive) + .frame(width: 36, height: 36) + .background(Color.appForegroundAdaptive) + .clipShape(Circle()) + } + } + .disabled(isSaving) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } + + // Search Field + HStack(spacing: 8) { + Image(systemName: "magnifyingglass") + .foregroundColor(.appMutedForegroundAdaptive) + TextField(strings.searchStreamingServices, text: $searchText) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .onChange(of: searchText) { _ in + filterProviders() + } + } + .padding(12) + .background(Color.appInputFilled) + .cornerRadius(12) + .padding(.horizontal, 24) + .padding(.bottom, 16) + + // Hint message + HStack(spacing: 8) { + Image(systemName: "info.circle") + .font(.caption) + Text(strings.streamingServicesHint) + .font(.caption) + } + .foregroundColor(.appMutedForegroundAdaptive) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) + .padding(.bottom, 16) + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + + // Content + if isLoading { + Spacer() + ProgressView() + Spacer() + } else { + ScrollView { + LazyVStack(spacing: 0) { + ForEach(filteredProviders) { provider in + Button { + toggleProvider(provider.providerId) + } label: { + HStack(spacing: 12) { + AsyncImage(url: provider.logoURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appInputFilled) + } + } + .frame(width: 40, height: 40) + .cornerRadius(8) + + Text(provider.providerName) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + if selectedIds.contains(provider.providerId) { + Image(systemName: "checkmark.circle.fill") + .font(.system(size: 22)) + .foregroundColor(.appForegroundAdaptive) + } else { + Image(systemName: "circle") + .font(.system(size: 22)) + .foregroundColor(.appMutedForegroundAdaptive) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 12) + .background( + selectedIds.contains(provider.providerId) + ? Color.appInputFilled : Color.clear + ) + } + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 76) + } + } + } + } + } + } + .preferredColorScheme(effectiveColorScheme) + .task { + await loadProviders() + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func toggleProvider(_ id: Int) { + if selectedIds.contains(id) { + selectedIds.remove(id) + } else { + selectedIds.insert(id) + } + } + + private func loadProviders() async { + isLoading = true + defer { isLoading = false } + + do { + providers = try await TMDBService.shared.getStreamingProviders( + watchRegion: watchRegion, + language: Language.current.rawValue + ) + filterProviders() + } catch { + print("Error loading providers: \(error)") + } + } + + private func filterProviders() { + if searchText.isEmpty { + filteredProviders = providers + } else { + filteredProviders = providers.filter { + $0.providerName.localizedCaseInsensitiveContains(searchText) + } + } + } + + private func saveServices() async { + isSaving = true + defer { isSaving = false } + + do { + try await AuthService.shared.updateUserPreferences( + watchRegion: watchRegion, + watchProvidersIds: Array(selectedIds) + ) + NotificationCenter.default.post(name: .profileUpdated, object: nil) + dismiss() + } catch { + print("Error saving services: \(error)") + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index d6c5e822..3494cf7e 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -139,7 +139,8 @@ enum L10n { searchStreamingServices: "Search services...", selectRegionFirst: "Select a region first", servicesSelected: "%d selected", - streamingServicesHint: "Showing services available in your selected region." + streamingServicesHint: "Showing services available in your selected region.", + resultsBasedOnPreferences: "Results based on your preferences" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -260,7 +261,8 @@ enum L10n { searchStreamingServices: "Buscar serviços...", selectRegionFirst: "Selecione uma região primeiro", servicesSelected: "%d selecionados", - streamingServicesHint: "Exibindo serviços disponíveis na região selecionada." + streamingServicesHint: "Exibindo serviços disponíveis na região selecionada.", + resultsBasedOnPreferences: "Resultados baseados nas suas preferências" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -381,7 +383,8 @@ enum L10n { searchStreamingServices: "Buscar servicios...", selectRegionFirst: "Seleccione una región primero", servicesSelected: "%d seleccionados", - streamingServicesHint: "Mostrando servicios disponibles en la región seleccionada." + streamingServicesHint: "Mostrando servicios disponibles en la región seleccionada.", + resultsBasedOnPreferences: "Resultados según tus preferencias" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -502,7 +505,8 @@ enum L10n { searchStreamingServices: "Rechercher des services...", selectRegionFirst: "Sélectionnez d'abord une région", servicesSelected: "%d sélectionnés", - streamingServicesHint: "Affichage des services disponibles dans la région sélectionnée." + streamingServicesHint: "Affichage des services disponibles dans la région sélectionnée.", + resultsBasedOnPreferences: "Résultats basés sur vos préférences" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -623,7 +627,8 @@ enum L10n { searchStreamingServices: "Dienste suchen...", selectRegionFirst: "Wählen Sie zuerst eine Region", servicesSelected: "%d ausgewählt", - streamingServicesHint: "Zeigt Dienste an, die in der ausgewählten Region verfügbar sind." + streamingServicesHint: "Zeigt Dienste an, die in der ausgewählten Region verfügbar sind.", + resultsBasedOnPreferences: "Ergebnisse basierend auf Ihren Präferenzen" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -744,7 +749,8 @@ enum L10n { searchStreamingServices: "Cerca servizi...", selectRegionFirst: "Seleziona prima una regione", servicesSelected: "%d selezionati", - streamingServicesHint: "Mostra i servizi disponibili nella regione selezionata." + streamingServicesHint: "Mostra i servizi disponibili nella regione selezionata.", + resultsBasedOnPreferences: "Risultati basati sulle tue preferenze" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -864,7 +870,8 @@ enum L10n { searchStreamingServices: "サービスを検索...", selectRegionFirst: "最初に地域を選択してください", servicesSelected: "%d 件選択", - streamingServicesHint: "選択した地域で利用可能なサービスを表示しています。" + streamingServicesHint: "選択した地域で利用可能なサービスを表示しています。", + resultsBasedOnPreferences: "設定に基づいた結果" ), ] } @@ -1003,4 +1010,5 @@ struct Strings { let selectRegionFirst: String let servicesSelected: String let streamingServicesHint: String + let resultsBasedOnPreferences: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index f6b4ed60..d13e09c8 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -331,6 +331,196 @@ class TMDBService { ) } + // MARK: - Discover Movies with Watch Providers + func discoverMovies( + language: String = "en-US", + page: Int = 1, + watchRegion: String? = nil, + withWatchProviders: String? = nil + ) async throws -> PaginatedResult { + var urlString = + "\(baseURL)/discover/movie?language=\(language)&sort_by=popularity.desc&page=\(page)" + + if let region = watchRegion, let providers = withWatchProviders, !providers.isEmpty { + urlString += "&watch_region=\(region)&with_watch_providers=\(providers)" + } + + guard let url = URL(string: urlString) else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "movie") }, + page: result.page, + totalPages: result.totalPages + ) + } + + // MARK: - Discover TV with Watch Providers + func discoverTV( + language: String = "en-US", + page: Int = 1, + watchRegion: String? = nil, + withWatchProviders: String? = nil + ) async throws -> PaginatedResult { + var urlString = + "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&page=\(page)" + + if let region = watchRegion, let providers = withWatchProviders, !providers.isEmpty { + urlString += "&watch_region=\(region)&with_watch_providers=\(providers)" + } + + guard let url = URL(string: urlString) else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "tv") }, + page: result.page, + totalPages: result.totalPages + ) + } + + // MARK: - Discover Animes with Watch Providers + func discoverAnimes( + language: String = "en-US", + page: Int = 1, + watchRegion: String? = nil, + withWatchProviders: String? = nil + ) async throws -> PaginatedResult { + var urlString = + "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_genres=16&with_origin_country=JP&page=\(page)" + + if let region = watchRegion, let providers = withWatchProviders, !providers.isEmpty { + urlString += "&watch_region=\(region)&with_watch_providers=\(providers)" + } + + guard let url = URL(string: urlString) else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "tv") }, + page: result.page, + totalPages: result.totalPages + ) + } + + // MARK: - Discover Anime Movies with Watch Providers + func discoverAnimeMovies( + language: String = "en-US", + page: Int = 1, + watchRegion: String? = nil, + withWatchProviders: String? = nil + ) async throws -> PaginatedResult { + var urlString = + "\(baseURL)/discover/movie?language=\(language)&sort_by=popularity.desc&with_genres=16&with_origin_country=JP&page=\(page)" + + if let region = watchRegion, let providers = withWatchProviders, !providers.isEmpty { + urlString += "&watch_region=\(region)&with_watch_providers=\(providers)" + } + + guard let url = URL(string: urlString) else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "movie") }, + page: result.page, + totalPages: result.totalPages + ) + } + + // MARK: - Discover Doramas with Watch Providers + func discoverDoramas( + language: String = "en-US", + page: Int = 1, + watchRegion: String? = nil, + withWatchProviders: String? = nil + ) async throws -> PaginatedResult { + var urlString = + "\(baseURL)/discover/tv?language=\(language)&sort_by=popularity.desc&with_origin_country=KR&page=\(page)" + + if let region = watchRegion, let providers = withWatchProviders, !providers.isEmpty { + urlString += "&watch_region=\(region)&with_watch_providers=\(providers)" + } + + guard let url = URL(string: urlString) else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(PopularResponse.self, from: data) + return PaginatedResult( + results: result.results.map { $0.toSearchResult(mediaType: "tv") }, + page: result.page, + totalPages: result.totalPages + ) + } + // MARK: - Popular Doramas (Korean dramas) func getPopularDoramas(language: String = "en-US", page: Int = 1) async throws -> PaginatedResult { diff --git a/apps/ios/Plotwist/Plotwist/Services/UserPreferencesManager.swift b/apps/ios/Plotwist/Plotwist/Services/UserPreferencesManager.swift new file mode 100644 index 00000000..fee02336 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Services/UserPreferencesManager.swift @@ -0,0 +1,84 @@ +// +// UserPreferencesManager.swift +// Plotwist +// + +import Foundation +import Combine + +class UserPreferencesManager: ObservableObject { + static let shared = UserPreferencesManager() + + @Published var preferences: UserPreferences? + @Published var isLoading = false + + private init() { + // Listen for profile updates + NotificationCenter.default.addObserver( + self, + selector: #selector(handleProfileUpdated), + name: .profileUpdated, + object: nil + ) + + // Listen for auth changes + NotificationCenter.default.addObserver( + self, + selector: #selector(handleAuthChanged), + name: .authChanged, + object: nil + ) + + // Load preferences if authenticated + if AuthService.shared.isAuthenticated { + Task { await loadPreferences() } + } + } + + @objc private func handleProfileUpdated() { + Task { await loadPreferences() } + } + + @objc private func handleAuthChanged() { + if AuthService.shared.isAuthenticated { + Task { await loadPreferences() } + } else { + preferences = nil + } + } + + func loadPreferences() async { + guard AuthService.shared.isAuthenticated else { + await MainActor.run { preferences = nil } + return + } + + await MainActor.run { isLoading = true } + defer { Task { @MainActor in isLoading = false } } + + do { + let prefs = try await AuthService.shared.getUserPreferences() + await MainActor.run { preferences = prefs } + } catch { + print("Error loading preferences: \(error)") + } + } + + // MARK: - Computed Properties + var hasStreamingServices: Bool { + guard let ids = preferences?.watchProvidersIds else { return false } + return !ids.isEmpty + } + + var watchRegion: String? { + preferences?.watchRegion + } + + var watchProvidersIds: [Int] { + preferences?.watchProvidersIds ?? [] + } + + var watchProvidersString: String { + watchProvidersIds.map { String($0) }.joined(separator: "|") + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift index b197785c..7faebabc 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift @@ -87,6 +87,7 @@ struct CategoryListView: View { @State private var selectedTVSeriesSubcategory: TVSeriesSubcategory = .popular @State private var selectedAnimeType: AnimeType = .tvSeries @ObservedObject private var themeManager = ThemeManager.shared + @ObservedObject private var preferencesManager = UserPreferencesManager.shared @State private var hasAppliedInitialSubcategory = false private var title: String { @@ -199,7 +200,17 @@ struct CategoryListView: View { } } else { ScrollView { - LazyVGrid(columns: columns, spacing: 16) { + VStack(alignment: .leading, spacing: 0) { + // Preferences Badge + HStack { + PreferencesBadge() + Spacer() + } + .padding(.horizontal, 24) + .padding(.top, 16) + .padding(.bottom, 16) + + LazyVGrid(columns: columns, spacing: 16) { ForEach(items) { item in NavigationLink { MediaDetailView(mediaId: item.id, mediaType: mediaType) @@ -225,7 +236,8 @@ struct CategoryListView: View { } } .padding(.horizontal, 24) - .padding(.vertical, 24) + .padding(.bottom, 24) + } } } } @@ -251,18 +263,45 @@ struct CategoryListView: View { currentPage = 1 let language = Language.current.rawValue + let watchRegion = preferencesManager.watchRegion + let watchProviders = + preferencesManager.hasStreamingServices ? preferencesManager.watchProvidersString : nil do { let result: PaginatedResult switch categoryType { case .movies: - result = try await loadMoviesForSubcategory(language: language, page: 1) + result = try await loadMoviesForSubcategory( + language: language, + page: 1, + watchRegion: watchRegion, + watchProviders: watchProviders + ) case .tvSeries: - result = try await loadTVSeriesForSubcategory(language: language, page: 1) + result = try await loadTVSeriesForSubcategory( + language: language, + page: 1, + watchRegion: watchRegion, + watchProviders: watchProviders + ) case .animes: - result = try await loadAnimesForType(language: language, page: 1) + result = try await loadAnimesForType( + language: language, + page: 1, + watchRegion: watchRegion, + watchProviders: watchProviders + ) case .doramas: - result = try await TMDBService.shared.getPopularDoramas(language: language, page: 1) + if let region = watchRegion, let providers = watchProviders { + result = try await TMDBService.shared.discoverDoramas( + language: language, + page: 1, + watchRegion: region, + withWatchProviders: providers + ) + } else { + result = try await TMDBService.shared.getPopularDoramas(language: language, page: 1) + } } items = result.results currentPage = result.page @@ -274,8 +313,24 @@ struct CategoryListView: View { isLoading = false } - private func loadMoviesForSubcategory(language: String, page: Int) async throws -> PaginatedResult - { + private func loadMoviesForSubcategory( + language: String, + page: Int, + watchRegion: String? = nil, + watchProviders: String? = nil + ) async throws -> PaginatedResult { + // When streaming services are selected, use discover for popular + if let region = watchRegion, let providers = watchProviders, + selectedMovieSubcategory == .popular + { + return try await TMDBService.shared.discoverMovies( + language: language, + page: page, + watchRegion: region, + withWatchProviders: providers + ) + } + switch selectedMovieSubcategory { case .nowPlaying: return try await TMDBService.shared.getNowPlayingMovies(language: language, page: page) @@ -291,9 +346,24 @@ struct CategoryListView: View { } } - private func loadTVSeriesForSubcategory(language: String, page: Int) async throws - -> PaginatedResult - { + private func loadTVSeriesForSubcategory( + language: String, + page: Int, + watchRegion: String? = nil, + watchProviders: String? = nil + ) async throws -> PaginatedResult { + // When streaming services are selected, use discover for popular + if let region = watchRegion, let providers = watchProviders, + selectedTVSeriesSubcategory == .popular + { + return try await TMDBService.shared.discoverTV( + language: language, + page: page, + watchRegion: region, + withWatchProviders: providers + ) + } + switch selectedTVSeriesSubcategory { case .airingToday: return try await TMDBService.shared.getAiringTodayTVSeries(language: language, page: page) @@ -309,7 +379,31 @@ struct CategoryListView: View { } } - private func loadAnimesForType(language: String, page: Int) async throws -> PaginatedResult { + private func loadAnimesForType( + language: String, + page: Int, + watchRegion: String? = nil, + watchProviders: String? = nil + ) async throws -> PaginatedResult { + if let region = watchRegion, let providers = watchProviders { + switch selectedAnimeType { + case .tvSeries: + return try await TMDBService.shared.discoverAnimes( + language: language, + page: page, + watchRegion: region, + withWatchProviders: providers + ) + case .movies: + return try await TMDBService.shared.discoverAnimeMovies( + language: language, + page: page, + watchRegion: region, + withWatchProviders: providers + ) + } + } + switch selectedAnimeType { case .tvSeries: return try await TMDBService.shared.getPopularAnimes(language: language, page: page) @@ -324,18 +418,48 @@ struct CategoryListView: View { isLoadingMore = true let nextPage = currentPage + 1 let language = Language.current.rawValue + let watchRegion = preferencesManager.watchRegion + let watchProviders = + preferencesManager.hasStreamingServices ? preferencesManager.watchProvidersString : nil do { let result: PaginatedResult switch categoryType { case .movies: - result = try await loadMoviesForSubcategory(language: language, page: nextPage) + result = try await loadMoviesForSubcategory( + language: language, + page: nextPage, + watchRegion: watchRegion, + watchProviders: watchProviders + ) case .tvSeries: - result = try await loadTVSeriesForSubcategory(language: language, page: nextPage) + result = try await loadTVSeriesForSubcategory( + language: language, + page: nextPage, + watchRegion: watchRegion, + watchProviders: watchProviders + ) case .animes: - result = try await loadAnimesForType(language: language, page: nextPage) + result = try await loadAnimesForType( + language: language, + page: nextPage, + watchRegion: watchRegion, + watchProviders: watchProviders + ) case .doramas: - result = try await TMDBService.shared.getPopularDoramas(language: language, page: nextPage) + if let region = watchRegion, let providers = watchProviders { + result = try await TMDBService.shared.discoverDoramas( + language: language, + page: nextPage, + watchRegion: region, + withWatchProviders: providers + ) + } else { + result = try await TMDBService.shared.getPopularDoramas( + language: language, + page: nextPage + ) + } } let newItems = result.results.filter { newItem in diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 8ce2525a..be4cedac 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -1148,6 +1148,7 @@ struct EditStreamingServicesView: View { .background(Color.appInputFilled) .cornerRadius(12) .padding(.horizontal, 24) + .padding(.bottom, 16) // Hint message HStack(spacing: 8) { @@ -1157,6 +1158,7 @@ struct EditStreamingServicesView: View { .font(.caption) } .foregroundColor(.appMutedForegroundAdaptive) + .frame(maxWidth: .infinity, alignment: .leading) .padding(.horizontal, 24) .padding(.bottom, 16) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift index ad2ab717..d2bb8376 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift @@ -16,6 +16,7 @@ struct SearchTabView: View { @State private var isLoadingPopular = true @State private var strings = L10n.current @State private var searchTask: Task? + @ObservedObject private var preferencesManager = UserPreferencesManager.shared private var movies: [SearchResult] { results.filter { $0.mediaType == "movie" } @@ -96,6 +97,9 @@ struct SearchTabView: View { } else { ScrollView { LazyVStack(alignment: .leading, spacing: 24) { + // Preferences Badge + PreferencesBadge() + if !movies.isEmpty { SearchSection(title: strings.movies, results: movies) } @@ -115,7 +119,15 @@ struct SearchTabView: View { } else { // Show popular content with horizontal scroll sections ScrollView(showsIndicators: false) { - VStack(spacing: 32) { + VStack(spacing: 24) { + // Preferences Badge + HStack { + PreferencesBadge() + Spacer() + } + .padding(.horizontal, 24) + .padding(.top, 16) + HomeSectionView( title: strings.movies, items: popularMovies, @@ -146,7 +158,6 @@ struct SearchTabView: View { categoryType: .doramas ) } - .padding(.top, 24) .padding(.bottom, 80) } } @@ -178,6 +189,11 @@ struct SearchTabView: View { await loadPopularContent() } } + .onReceive(NotificationCenter.default.publisher(for: .profileUpdated)) { _ in + Task { + await loadPopularContent() + } + } } private func loadPopularContent() async { @@ -185,18 +201,52 @@ struct SearchTabView: View { defer { isLoadingPopular = false } let language = Language.current.rawValue - - async let moviesTask = TMDBService.shared.getPopularMovies(language: language) - async let tvTask = TMDBService.shared.getPopularTVSeries(language: language) - async let animesTask = TMDBService.shared.getPopularAnimes(language: language) - async let doramasTask = TMDBService.shared.getPopularDoramas(language: language) + let watchRegion = preferencesManager.watchRegion + let watchProviders = + preferencesManager.hasStreamingServices ? preferencesManager.watchProvidersString : nil do { - let (movies, tv, animes, doramas) = try await (moviesTask, tvTask, animesTask, doramasTask) - popularMovies = movies.results - popularTVSeries = tv.results - popularAnimes = animes.results - popularDoramas = doramas.results + if preferencesManager.hasStreamingServices { + // Use discover endpoints with watch providers + async let moviesTask = TMDBService.shared.discoverMovies( + language: language, + watchRegion: watchRegion, + withWatchProviders: watchProviders + ) + async let tvTask = TMDBService.shared.discoverTV( + language: language, + watchRegion: watchRegion, + withWatchProviders: watchProviders + ) + async let animesTask = TMDBService.shared.discoverAnimes( + language: language, + watchRegion: watchRegion, + withWatchProviders: watchProviders + ) + async let doramasTask = TMDBService.shared.discoverDoramas( + language: language, + watchRegion: watchRegion, + withWatchProviders: watchProviders + ) + + let (movies, tv, animes, doramas) = try await (moviesTask, tvTask, animesTask, doramasTask) + popularMovies = movies.results + popularTVSeries = tv.results + popularAnimes = animes.results + popularDoramas = doramas.results + } else { + // Use regular popular endpoints + async let moviesTask = TMDBService.shared.getPopularMovies(language: language) + async let tvTask = TMDBService.shared.getPopularTVSeries(language: language) + async let animesTask = TMDBService.shared.getPopularAnimes(language: language) + async let doramasTask = TMDBService.shared.getPopularDoramas(language: language) + + let (movies, tv, animes, doramas) = try await (moviesTask, tvTask, animesTask, doramasTask) + popularMovies = movies.results + popularTVSeries = tv.results + popularAnimes = animes.results + popularDoramas = doramas.results + } } catch { popularMovies = [] popularTVSeries = [] From f6513d05d38183919725d94bdb3322d3aec1aa80 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Wed, 21 Jan 2026 12:16:59 -0300 Subject: [PATCH 43/77] feat(profile): implement user items loading in ProfileTabView with status filtering; add UserItemService for fetching user items by status and enhance UI with status tabs and item grid display --- .../Plotwist/Services/UserItemService.swift | 32 +++ .../Plotwist/Views/Home/ProfileTabView.swift | 206 ++++++++++++++++++ 2 files changed, 238 insertions(+) diff --git a/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift b/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift index c121b9e7..068517a1 100644 --- a/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift @@ -9,6 +9,28 @@ class UserItemService { static let shared = UserItemService() private init() {} + // MARK: - Get All User Items by Status + func getAllUserItems(userId: String, status: String) async throws -> [UserItemSummary] { + guard let url = URL(string: "\(API.baseURL)/user/items/all?userId=\(userId)&status=\(status)") + else { + throw UserItemError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw UserItemError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(AllUserItemsResponse.self, from: data) + return result.userItems + } + // MARK: - Get User Item func getUserItem(tmdbId: Int, mediaType: String) async throws -> UserItem? { guard let token = UserDefaults.standard.string(forKey: "token"), @@ -271,6 +293,16 @@ struct WatchEntriesResponse: Codable { let watchEntries: [WatchEntry] } +struct UserItemSummary: Codable, Identifiable { + let id: String + let mediaType: String + let tmdbId: Int +} + +struct AllUserItemsResponse: Codable { + let userItems: [UserItemSummary] +} + enum UserItemError: LocalizedError { case invalidURL case invalidResponse diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index be4cedac..027fe12a 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -5,11 +5,31 @@ import SwiftUI +// MARK: - Profile Status Tab +enum ProfileStatusTab: String, CaseIterable { + case watched = "WATCHED" + case watching = "WATCHING" + case watchlist = "WATCHLIST" + case dropped = "DROPPED" + + func displayName(strings: Strings) -> String { + switch self { + case .watched: return strings.watched + case .watching: return strings.watching + case .watchlist: return strings.watchlist + case .dropped: return strings.dropped + } + } +} + struct ProfileTabView: View { @State private var user: User? @State private var isLoading = true @State private var showSettings = false @State private var strings = L10n.current + @State private var selectedTab: ProfileStatusTab = .watched + @State private var userItems: [UserItemSummary] = [] + @State private var isLoadingItems = false @ObservedObject private var themeManager = ThemeManager.shared // Avatar size and offset calculations @@ -136,6 +156,68 @@ struct ProfileTabView: View { .padding(.horizontal, 24) .padding(.top, 16) + // Status Tabs + ProfileStatusTabs(selectedTab: $selectedTab, strings: strings) + .padding(.top, 24) + .padding(.horizontal, 24) + .onChange(of: selectedTab) { _ in + Task { await loadUserItems() } + } + + // User Items Grid + if isLoadingItems { + LazyVGrid( + columns: [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ], + spacing: 16 + ) { + ForEach(0..<6, id: \.self) { _ in + RoundedRectangle(cornerRadius: 12) + .fill(Color.appSkeletonAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + } + } + .padding(.horizontal, 24) + .padding(.top, 16) + } else if userItems.isEmpty { + VStack(spacing: 12) { + Image(systemName: "film.stack") + .font(.system(size: 32)) + .foregroundColor(.appMutedForegroundAdaptive) + Text("No items yet") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 48) + } else { + LazyVGrid( + columns: [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ], + spacing: 16 + ) { + ForEach(userItems) { item in + NavigationLink { + MediaDetailView( + mediaId: item.tmdbId, + mediaType: item.mediaType == "MOVIE" ? "movie" : "tv" + ) + } label: { + ProfileItemCard(tmdbId: item.tmdbId, mediaType: item.mediaType) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal, 24) + .padding(.top, 16) + } + Spacer() .frame(height: 100) } @@ -164,6 +246,7 @@ struct ProfileTabView: View { } .task { await loadUser() + await loadUserItems() } .sheet(isPresented: $showSettings) { SettingsSheet() @@ -197,6 +280,129 @@ struct ProfileTabView: View { formatter.locale = Locale(identifier: Language.current.rawValue) return formatter.string(from: date) } + + private func loadUserItems() async { + guard let userId = user?.id else { return } + + isLoadingItems = true + defer { isLoadingItems = false } + + do { + userItems = try await UserItemService.shared.getAllUserItems( + userId: userId, + status: selectedTab.rawValue + ) + } catch { + print("Error loading user items: \(error)") + userItems = [] + } + } +} + +// MARK: - Profile Status Tabs +struct ProfileStatusTabs: View { + @Binding var selectedTab: ProfileStatusTab + let strings: Strings + + var body: some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 4) { + ForEach(ProfileStatusTab.allCases, id: \.self) { tab in + Button { + withAnimation(.easeInOut(duration: 0.2)) { + selectedTab = tab + } + } label: { + Text(tab.displayName(strings: strings)) + .font(.subheadline.weight(.medium)) + .foregroundColor( + selectedTab == tab + ? .appForegroundAdaptive + : .appMutedForegroundAdaptive + ) + .padding(.horizontal, 14) + .padding(.vertical, 10) + .background( + selectedTab == tab + ? Color.appBackgroundAdaptive + : Color.clear + ) + .clipShape(RoundedRectangle(cornerRadius: 10)) + .shadow( + color: selectedTab == tab ? Color.black.opacity(0.08) : Color.clear, + radius: 2, + x: 0, + y: 1 + ) + } + .buttonStyle(.plain) + } + } + .padding(4) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 12)) + } + } +} + +// MARK: - Profile Item Card +struct ProfileItemCard: View { + let tmdbId: Int + let mediaType: String + @State private var posterURL: URL? + @State private var isLoading = true + + var body: some View { + AsyncImage(url: posterURL) { phase in + switch phase { + case .empty: + RoundedRectangle(cornerRadius: 12) + .fill(Color.appSkeletonAdaptive) + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + case .failure: + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + .overlay( + Image(systemName: "film") + .foregroundColor(.appMutedForegroundAdaptive) + ) + @unknown default: + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + } + } + .aspectRatio(2 / 3, contentMode: .fit) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .shadow(color: Color.black.opacity(0.1), radius: 2, x: 0, y: 1) + .task { + await loadPoster() + } + } + + private func loadPoster() async { + do { + let type = mediaType == "MOVIE" ? "movie" : "tv" + if type == "movie" { + let details = try await TMDBService.shared.getMovieDetails( + id: tmdbId, + language: Language.current.rawValue + ) + posterURL = details.posterURL + } else { + let details = try await TMDBService.shared.getTVSeriesDetails( + id: tmdbId, + language: Language.current.rawValue + ) + posterURL = details.posterURL + } + } catch { + print("Error loading poster: \(error)") + } + isLoading = false + } } // MARK: - Profile Avatar From 93907fec0cf7840c9a09fa9b639789e1bacd36b0 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Wed, 21 Jan 2026 22:42:20 -0300 Subject: [PATCH 44/77] feat(ui): refine button styles and spacing across components for improved consistency; add user stats fetching functionality in AuthService and enhance color definitions for dark mode adaptation --- .../Components/MediaDetailViewActions.swift | 12 +-- .../Plotwist/Components/PrimaryButton.swift | 12 +-- .../Plotwist/Services/AuthService.swift | 28 +++++++ apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 17 +++-- .../Plotwist/Views/Home/HomeView.swift | 3 + .../Plotwist/Views/Home/ProfileTabView.swift | 76 +++++++++++-------- 6 files changed, 97 insertions(+), 51 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift b/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift index e04532c4..007c6d4d 100644 --- a/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift +++ b/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift @@ -74,13 +74,13 @@ struct StatusButton: View { var body: some View { Button(action: action) { - HStack(spacing: 8) { + HStack(spacing: 6) { Image(systemName: currentStatus?.icon ?? "pencil") - .font(.system(size: 14)) + .font(.system(size: 13)) .foregroundColor(statusIconColor ?? .appForegroundAdaptive) Text(currentStatus?.displayName(strings: L10n.current) ?? L10n.current.updateStatus) - .font(.subheadline.weight(.medium)) + .font(.footnote.weight(.medium)) .foregroundColor(.appForegroundAdaptive) // Rewatch count badge @@ -94,10 +94,10 @@ struct StatusButton: View { .clipShape(Capsule()) } } - .padding(.horizontal, 16) - .padding(.vertical, 12) + .padding(.horizontal, 14) + .padding(.vertical, 10) .background(Color.appInputFilled) - .cornerRadius(12) + .cornerRadius(10) } } diff --git a/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift b/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift index aaacccc3..d72f03c4 100644 --- a/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift +++ b/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift @@ -107,19 +107,19 @@ struct ActionButton: View { var body: some View { Button(action: action) { - HStack(spacing: 8) { + HStack(spacing: 6) { Image(systemName: icon) - .font(.system(size: 14)) + .font(.system(size: 13)) .foregroundColor(iconColor ?? .appForegroundAdaptive) Text(title) - .font(.subheadline.weight(.medium)) + .font(.footnote.weight(.medium)) .foregroundColor(.appForegroundAdaptive) } - .padding(.horizontal, 16) - .padding(.vertical, 12) + .padding(.horizontal, 14) + .padding(.vertical, 10) .background(Color.appInputFilled) - .cornerRadius(12) + .cornerRadius(10) } } } diff --git a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift index f04188e7..4c83bc7e 100644 --- a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift @@ -244,6 +244,26 @@ class AuthService { } } + // MARK: - Get User Stats + func getUserStats(userId: String) async throws -> UserStats { + guard let url = URL(string: "\(API.baseURL)/user/\(userId)/stats") else { + throw AuthError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "GET" + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw AuthError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return try decoder.decode(UserStats.self, from: data) + } + // MARK: - Sign Out func signOut() { UserDefaults.standard.removeObject(forKey: "token") @@ -306,6 +326,13 @@ struct UserPreferences: Codable { let watchRegion: String? } +struct UserStats: Codable { + let followersCount: Int + let followingCount: Int + let watchedMoviesCount: Int + let watchedSeriesCount: Int +} + enum AuthError: LocalizedError { case invalidURL, invalidResponse, invalidCredentials, alreadyExists @@ -322,4 +349,5 @@ enum AuthError: LocalizedError { extension Notification.Name { static let authChanged = Notification.Name("authChanged") static let profileUpdated = Notification.Name("profileUpdated") + static let navigateToSearch = Notification.Name("navigateToSearch") } diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift index 395a3f3f..89260294 100644 --- a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -2,18 +2,19 @@ // Colors.swift // Plotwist // +// Dark theme matched to web globals.css import SwiftUI extension Color { // MARK: - Adaptive Colors (Light/Dark mode) - // #121212 for dark mode (Spotify-style), white for light mode + // Dark: --background: 240 10% 3.9% (web) static var appBackgroundAdaptive: Color { Color( UIColor { $0.userInterfaceStyle == .dark - ? UIColor(red: 18 / 255, green: 18 / 255, blue: 18 / 255, alpha: 1) + ? UIColor(hue: 240 / 360, saturation: 0.10, brightness: 0.039, alpha: 1) : UIColor(hue: 0, saturation: 0, brightness: 1, alpha: 1) }) } @@ -27,6 +28,7 @@ extension Color { }) } + // Dark: --border: 240 3.7% 15.9% (web) static var appBorderAdaptive: Color { Color( UIColor { @@ -36,6 +38,7 @@ extension Color { }) } + // Dark: --muted-foreground: 240 5% 64.9% (web) static var appMutedForegroundAdaptive: Color { Color( UIColor { @@ -45,25 +48,25 @@ extension Color { }) } - // #F3F4F6 for light mode, darker for dark mode + // Dark: --secondary: 240 3.7% 15.9% (web) static var appInputFilled: Color { Color( UIColor { $0.userInterfaceStyle == .dark - ? UIColor(hue: 220 / 360, saturation: 0.06, brightness: 0.14, alpha: 1) + ? UIColor(hue: 240 / 360, saturation: 0.037, brightness: 0.159, alpha: 1) : UIColor(red: 243 / 255, green: 244 / 255, blue: 246 / 255, alpha: 1) }) } static let appDestructive = Color(hue: 0, saturation: 0.842, brightness: 0.602) - // #222224 for dark mode, light gray for light mode - used for skeletons + // Dark skeleton slightly lighter than input static var appSkeletonAdaptive: Color { Color( UIColor { $0.userInterfaceStyle == .dark - ? UIColor(red: 34 / 255, green: 34 / 255, blue: 36 / 255, alpha: 1) // #222224 - : UIColor(red: 229 / 255, green: 231 / 255, blue: 235 / 255, alpha: 1) // #E5E7EB + ? UIColor(hue: 240 / 360, saturation: 0.037, brightness: 0.20, alpha: 1) + : UIColor(red: 229 / 255, green: 231 / 255, blue: 235 / 255, alpha: 1) }) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index aae82d01..14e482f5 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -29,6 +29,9 @@ struct HomeView: View { .tag(2) } .tint(.appForegroundAdaptive) + .onReceive(NotificationCenter.default.publisher(for: .navigateToSearch)) { _ in + selectedTab = 1 + } .onAppear { let appearance = UITabBarAppearance() appearance.configureWithOpaqueBackground() diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 027fe12a..6d9dd5b5 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -115,8 +115,8 @@ struct ProfileTabView: View { .foregroundColor(.appMutedForegroundAdaptive) } - // Username - HStack(spacing: 8) { + // Username + Edit Button + HStack(spacing: 10) { Text(user.username) .font(.title.bold()) .foregroundColor(.appForegroundAdaptive) @@ -124,23 +124,16 @@ struct ProfileTabView: View { if user.isPro { ProBadge() } - } - // Edit Profile Button - NavigationLink(destination: EditProfileView(user: user)) { - HStack(spacing: 8) { + // Edit Profile Button + NavigationLink(destination: EditProfileView(user: user)) { Image(systemName: "pencil") - .font(.system(size: 14)) - .foregroundColor(.appForegroundAdaptive) - - Text(strings.editProfile) - .font(.subheadline.weight(.medium)) + .font(.system(size: 12)) .foregroundColor(.appForegroundAdaptive) + .frame(width: 32, height: 32) + .background(Color.appInputFilled) + .clipShape(Circle()) } - .padding(.horizontal, 16) - .padding(.vertical, 12) - .background(Color.appInputFilled) - .cornerRadius(12) } // Biography @@ -159,7 +152,6 @@ struct ProfileTabView: View { // Status Tabs ProfileStatusTabs(selectedTab: $selectedTab, strings: strings) .padding(.top, 24) - .padding(.horizontal, 24) .onChange(of: selectedTab) { _ in Task { await loadUserItems() } } @@ -183,16 +175,34 @@ struct ProfileTabView: View { .padding(.horizontal, 24) .padding(.top, 16) } else if userItems.isEmpty { - VStack(spacing: 12) { - Image(systemName: "film.stack") - .font(.system(size: 32)) - .foregroundColor(.appMutedForegroundAdaptive) - Text("No items yet") - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) + // Empty state - Add first item (same grid as items) + LazyVGrid( + columns: [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ], + spacing: 16 + ) { + Button { + NotificationCenter.default.post(name: .navigateToSearch, object: nil) + } label: { + RoundedRectangle(cornerRadius: 12) + .strokeBorder( + style: StrokeStyle(lineWidth: 2, dash: [8, 4]) + ) + .foregroundColor(.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .overlay( + Image(systemName: "plus") + .font(.system(size: 24, weight: .medium)) + .foregroundColor(.appMutedForegroundAdaptive) + ) + } + .buttonStyle(.plain) } - .frame(maxWidth: .infinity) - .padding(.vertical, 48) + .padding(.horizontal, 24) + .padding(.top, 16) } else { LazyVGrid( columns: [ @@ -306,7 +316,7 @@ struct ProfileStatusTabs: View { var body: some View { ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 4) { + HStack(spacing: 2) { ForEach(ProfileStatusTab.allCases, id: \.self) { tab in Button { withAnimation(.easeInOut(duration: 0.2)) { @@ -314,20 +324,20 @@ struct ProfileStatusTabs: View { } } label: { Text(tab.displayName(strings: strings)) - .font(.subheadline.weight(.medium)) + .font(.footnote.weight(.medium)) .foregroundColor( selectedTab == tab ? .appForegroundAdaptive : .appMutedForegroundAdaptive ) - .padding(.horizontal, 14) - .padding(.vertical, 10) + .padding(.horizontal, 12) + .padding(.vertical, 8) .background( selectedTab == tab ? Color.appBackgroundAdaptive : Color.clear ) - .clipShape(RoundedRectangle(cornerRadius: 10)) + .clipShape(RoundedRectangle(cornerRadius: 8)) .shadow( color: selectedTab == tab ? Color.black.opacity(0.08) : Color.clear, radius: 2, @@ -338,10 +348,12 @@ struct ProfileStatusTabs: View { .buttonStyle(.plain) } } - .padding(4) + .padding(3) .background(Color.appInputFilled) - .clipShape(RoundedRectangle(cornerRadius: 12)) + .clipShape(RoundedRectangle(cornerRadius: 10)) + .padding(.horizontal, 24) } + .scrollClipDisabled() } } From 9110565c0c1e7a913be9d30b1ba736c30a09e550 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Wed, 21 Jan 2026 22:48:43 -0300 Subject: [PATCH 45/77] feat(media): enhance MediaDetailView layout with rounded corners and improved spacing; update backdrop height and content sections for better visual hierarchy; refactor poster and info display for consistency --- .../Views/Details/MediaDetailView.swift | 323 +++++++++--------- .../Plotwist/Views/Home/ProfileTabView.swift | 3 +- 2 files changed, 165 insertions(+), 161 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index cad91e99..f2e5499c 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -26,25 +26,26 @@ struct MediaDetailView: View { @State private var hasRecommendations = false // Layout constants + private let cornerRadius: CGFloat = 24 private let posterOverlapOffset: CGFloat = -70 - private let contentOffset: CGFloat = -54 var body: some View { ZStack { + // Background color Color.appBackgroundAdaptive.ignoresSafeArea() if isLoading { ProgressView() } else if let details { GeometryReader { geometry in - let backdropHeight = geometry.size.height * 0.40 + let backdropHeight = geometry.size.height * 0.45 ScrollView(showsIndicators: false) { VStack(alignment: .leading, spacing: 0) { - // Backdrop Carousel + // Backdrop Section (stays behind content) ZStack(alignment: .topLeading) { + // Backdrop Image/Carousel if backdropImages.isEmpty { - // Fallback to single backdrop AsyncImage(url: details.backdropURL) { phase in switch phase { case .success(let image): @@ -56,11 +57,10 @@ struct MediaDetailView: View { .fill(Color.appBorderAdaptive) } } - .frame(height: backdropHeight) + .frame(height: backdropHeight + cornerRadius) .frame(maxWidth: .infinity) .clipped() } else { - // Carousel ZStack(alignment: .bottomTrailing) { NavigationLink( destination: MediaImagesView(mediaId: mediaId, mediaType: mediaType) @@ -83,7 +83,7 @@ struct MediaDetailView: View { } } .tabViewStyle(.page(indexDisplayMode: .never)) - .frame(height: backdropHeight) + .frame(height: backdropHeight + cornerRadius) .frame(maxWidth: .infinity) .clipped() } @@ -98,7 +98,7 @@ struct MediaDetailView: View { .background(Color.black.opacity(0.6)) .clipShape(RoundedRectangle(cornerRadius: 6)) .padding(.trailing, 16) - .padding(.bottom, 12) + .padding(.bottom, cornerRadius + 12) } } @@ -116,179 +116,167 @@ struct MediaDetailView: View { .padding(.top, 60) .padding(.leading, 24) } - .overlay( - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1), - alignment: .bottom - ) - - // Content with poster overlap - HStack(alignment: .bottom, spacing: 16) { - // Poster - AsyncImage(url: details.posterURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) + + // Content Card (rounded, overlaps backdrop) + ZStack(alignment: .topLeading) { + // Background card with rounded corners + VStack(alignment: .leading, spacing: 0) { + // Spacer for poster overlap area + Spacer() + .frame(height: 110) + + // Content Section + VStack(alignment: .leading, spacing: 20) { + // Action Buttons (Review + Status) + if AuthService.shared.isAuthenticated { + MediaDetailViewActions( + mediaId: mediaId, + mediaType: mediaType, + userReview: userReview, + userItem: userItem, + onReviewTapped: { + showReviewSheet = true + }, + onStatusChanged: { newItem in + userItem = newItem + } + ) + } + + // Overview + if let overview = details.overview, !overview.isEmpty { + Text(overview) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .lineSpacing(6) + } } - } - .frame(width: 140, height: 210) - .clipShape(RoundedRectangle(cornerRadius: 16)) - .posterShadow() - - // Info - VStack(alignment: .leading, spacing: 4) { - if let releaseDate = details.formattedReleaseDate( - locale: Language.current.rawValue) - { - Text(releaseDate) - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 24) + .padding(.top, 16) + + // Genres Badges (outside padding for full-width scroll) + if let genres = details.genres, !genres.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 8) { + ForEach(genres) { genre in + BadgeView(text: genre.name) + } + } + .padding(.horizontal, 24) + } + .scrollClipDisabled() + .padding(.top, 16) } - Text(details.displayTitle) - .font(.headline) - .foregroundColor(.appForegroundAdaptive) - } + // Divider before first content section + if hasReviews || hasWhereToWatch || hasRecommendations { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .padding(.vertical, 24) + } - Spacer() - } - .padding(.horizontal, 24) - .offset(y: posterOverlapOffset) - - // Content Section - VStack(alignment: .leading, spacing: 20) { - // Action Buttons (Review + Status) - if AuthService.shared.isAuthenticated { - MediaDetailViewActions( + // Review Section + ReviewSectionView( mediaId: mediaId, mediaType: mediaType, - userReview: userReview, - userItem: userItem, - onReviewTapped: { - showReviewSheet = true + refreshId: reviewsRefreshId, + onEmptyStateTapped: { + if AuthService.shared.isAuthenticated { + showReviewSheet = true + } }, - onStatusChanged: { newItem in - userItem = newItem + onContentLoaded: { hasContent in + hasReviews = hasContent } ) - } - // Overview - if let overview = details.overview, !overview.isEmpty { - Text(overview) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .lineSpacing(6) - } - - // Genres Badges - if let genres = details.genres, !genres.isEmpty { - ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 8) { - ForEach(genres) { genre in - BadgeView(text: genre.name) - } - } + // Divider after reviews + if hasReviews && (hasWhereToWatch || hasRecommendations) { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .padding(.vertical, 24) } - } - } - .padding(.horizontal, 24) - .offset(y: contentOffset) - - // Divider before first content section (only if any section has content) - if hasReviews || hasWhereToWatch || hasRecommendations { - Spacer() - .frame(height: 24) - .offset(y: contentOffset) - - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1) - .padding(.horizontal, 24) - .offset(y: contentOffset) - Spacer() - .frame(height: 24) - .offset(y: contentOffset) - } + // Where to Watch Section + WhereToWatchSection( + mediaId: mediaId, + mediaType: mediaType, + onContentLoaded: { hasContent in + hasWhereToWatch = hasContent + } + ) - // Review Section - ReviewSectionView( - mediaId: mediaId, - mediaType: mediaType, - refreshId: reviewsRefreshId, - onEmptyStateTapped: { - if AuthService.shared.isAuthenticated { - showReviewSheet = true + // Divider after where to watch + if hasWhereToWatch && hasRecommendations { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .padding(.vertical, 24) } - }, - onContentLoaded: { hasContent in - hasReviews = hasContent - } - ) - .offset(y: contentOffset) - - // Divider after reviews (only if reviews exist and next section exists) - if hasReviews && (hasWhereToWatch || hasRecommendations) { - Spacer() - .frame(height: 24) - .offset(y: contentOffset) - - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1) - .padding(.horizontal, 24) - .offset(y: contentOffset) - Spacer() - .frame(height: 24) - .offset(y: contentOffset) - } + // Recommendations Section + RelatedSection( + mediaId: mediaId, + mediaType: mediaType, + onContentLoaded: { hasContent in + hasRecommendations = hasContent + } + ) - // Where to Watch Section - WhereToWatchSection( - mediaId: mediaId, - mediaType: mediaType, - onContentLoaded: { hasContent in - hasWhereToWatch = hasContent + Spacer() + .frame(height: 80) } - ) - .offset(y: contentOffset) - - // Divider after where to watch (only if it exists and recommendations exist) - if hasWhereToWatch && hasRecommendations { - Spacer() - .frame(height: 24) - .offset(y: contentOffset) - - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1) - .padding(.horizontal, 24) - .offset(y: contentOffset) + .background(Color.appBackgroundAdaptive) + .clipShape( + RoundedCorner(radius: cornerRadius, corners: [.topLeft, .topRight]) + ) + + // Poster and Info (overlaid on top, outside clipShape) + HStack(alignment: .bottom, spacing: 16) { + // Poster + AsyncImage(url: details.posterURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + } + } + .frame(width: 120, height: 180) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterShadow() + + // Info + VStack(alignment: .leading, spacing: 4) { + if let releaseDate = details.formattedReleaseDate( + locale: Language.current.rawValue) + { + Text(releaseDate) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } - Spacer() - .frame(height: 24) - .offset(y: contentOffset) - } + Text(details.displayTitle) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + } + .padding(.bottom, 8) - // Recommendations Section - RelatedSection( - mediaId: mediaId, - mediaType: mediaType, - onContentLoaded: { hasContent in - hasRecommendations = hasContent + Spacer() } - ) - .offset(y: contentOffset) + .padding(.horizontal, 24) + .offset(y: -70) + } + .offset(y: -cornerRadius) } - .padding(.bottom, 80) } .ignoresSafeArea(edges: .top) } @@ -414,3 +402,18 @@ struct BadgeView: View { .clipShape(RoundedRectangle(cornerRadius: 8)) } } + +// MARK: - Rounded Corner Shape +struct RoundedCorner: Shape { + var radius: CGFloat = .infinity + var corners: UIRectCorner = .allCorners + + func path(in rect: CGRect) -> Path { + let path = UIBezierPath( + roundedRect: rect, + byRoundingCorners: corners, + cornerRadii: CGSize(width: radius, height: radius) + ) + return Path(path.cgPath) + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 6d9dd5b5..9e2141e4 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -143,6 +143,7 @@ struct ProfileTabView: View { .foregroundColor(.appMutedForegroundAdaptive) .lineSpacing(4) .multilineTextAlignment(.center) + .padding(.top, 4) } } .frame(maxWidth: .infinity) @@ -151,7 +152,7 @@ struct ProfileTabView: View { // Status Tabs ProfileStatusTabs(selectedTab: $selectedTab, strings: strings) - .padding(.top, 24) + .padding(.top, 20) .onChange(of: selectedTab) { _ in Task { await loadUserItems() } } From ff3bc54da3f94cf0c9c081da6370c27b4e2d7753 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 11:53:35 -0300 Subject: [PATCH 46/77] feat(ui): add dark mode border modifiers for poster cards; implement posterBorder and topRoundedBorder functions for enhanced visual styling across various views --- apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 56 +++++++++++++++++++ .../Views/Details/MediaDetailView.swift | 2 + .../Views/Details/RelatedSection.swift | 1 + .../Views/Home/CategoryListView.swift | 1 + .../Plotwist/Views/Home/HomeTabView.swift | 1 + .../Plotwist/Views/Home/ProfileTabView.swift | 1 + .../Plotwist/Views/Home/SearchTabView.swift | 1 + 7 files changed, 63 insertions(+) diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift index 89260294..b660d2de 100644 --- a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -90,4 +90,60 @@ extension View { // Layer 5: Y: 16px, Blur: 16px .shadow(color: Color.black.opacity(0.05), radius: 8, x: 0, y: 16) } + + /// Applies a subtle border to poster cards (dark mode only) + func posterBorder(cornerRadius: CGFloat = 16) -> some View { + self.modifier(PosterBorderModifier(cornerRadius: cornerRadius)) + } + + /// Applies a border with custom top corners only (dark mode only) + func topRoundedBorder(cornerRadius: CGFloat) -> some View { + self.modifier(TopRoundedBorderModifier(cornerRadius: cornerRadius)) + } +} + +// MARK: - Border Modifiers (Dark Mode Only) +struct PosterBorderModifier: ViewModifier { + let cornerRadius: CGFloat + @Environment(\.colorScheme) var colorScheme + + func body(content: Content) -> some View { + content.overlay( + RoundedRectangle(cornerRadius: cornerRadius) + .strokeBorder( + colorScheme == .dark ? Color.appBorderAdaptive : Color.clear, + lineWidth: 1 + ) + ) + } +} + +struct TopRoundedBorderModifier: ViewModifier { + let cornerRadius: CGFloat + @Environment(\.colorScheme) var colorScheme + + func body(content: Content) -> some View { + content.overlay( + RoundedCornerShape(radius: cornerRadius, corners: [.topLeft, .topRight]) + .stroke( + colorScheme == .dark ? Color.appBorderAdaptive : Color.clear, + lineWidth: 1 + ) + ) + } +} + +// MARK: - Custom Shape for Top Rounded Corners Stroke +struct RoundedCornerShape: Shape { + var radius: CGFloat + var corners: UIRectCorner + + func path(in rect: CGRect) -> Path { + let path = UIBezierPath( + roundedRect: rect, + byRoundingCorners: corners, + cornerRadii: CGSize(width: radius, height: radius) + ) + return Path(path.cgPath) + } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index f2e5499c..89ac98a4 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -235,6 +235,7 @@ struct MediaDetailView: View { .clipShape( RoundedCorner(radius: cornerRadius, corners: [.topLeft, .topRight]) ) + .topRoundedBorder(cornerRadius: cornerRadius) // Poster and Info (overlaid on top, outside clipShape) HStack(alignment: .bottom, spacing: 16) { @@ -252,6 +253,7 @@ struct MediaDetailView: View { } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterBorder(cornerRadius: 12) .posterShadow() // Info diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift index 655f896a..bc7e1302 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift @@ -114,6 +114,7 @@ struct RelatedPosterCard: View { } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 16)) + .posterBorder(cornerRadius: 16) .posterShadow() } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift index 7faebabc..7caeeb9a 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift @@ -505,6 +505,7 @@ struct CategoryPosterCard: View { } .aspectRatio(2 / 3, contentMode: .fit) .clipShape(RoundedRectangle(cornerRadius: 16)) + .posterBorder(cornerRadius: 16) .shadow(color: Color.black.opacity(0.15), radius: 4, x: 0, y: 2) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift index 3781ec30..47b1796f 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift @@ -118,6 +118,7 @@ struct HomePosterCard: View { } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 16)) + .posterBorder(cornerRadius: 16) .posterShadow() } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 9e2141e4..d57e9ed5 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -389,6 +389,7 @@ struct ProfileItemCard: View { } .aspectRatio(2 / 3, contentMode: .fit) .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterBorder(cornerRadius: 12) .shadow(color: Color.black.opacity(0.1), radius: 2, x: 0, y: 1) .task { await loadPoster() diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift index d2bb8376..38a26a2e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift @@ -342,6 +342,7 @@ struct PosterCard: View { } .aspectRatio(2 / 3, contentMode: .fit) .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterBorder(cornerRadius: 12) .posterShadow() } } From 0e7143c0fe14e1d60b47b530d06a20224bcac683 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 12:23:37 -0300 Subject: [PATCH 47/77] feat(user-items): add user items count functionality; implement selectUserItemsCount in repository, service, and controller; enhance API routes and schemas for fetching user items count --- .../db/repositories/user-item-repository.ts | 11 + .../user-items/get-user-items-count.ts | 13 + .../http/controllers/user-items-controller.ts | 12 + apps/api/src/http/routes/user-items.ts | 18 + apps/api/src/http/schemas/user-items.ts | 10 + .../Plotwist/Localization/Strings.swift | 40 +- .../Plotwist/Services/TMDBService.swift | 4 +- .../Plotwist/Services/UserItemService.swift | 26 + apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 40 +- .../Plotwist/Plotwist/Utils/Constants.swift | 2 +- .../Views/Details/MediaDetailView.swift | 1 - .../Views/Details/MediaImagesView.swift | 1 + .../Plotwist/Views/Home/HomeView.swift | 8 +- .../Plotwist/Views/Home/ProfileTabView.swift | 473 +++++++++++------- .../Views/Home/SoundtracksTabView.swift | 59 +++ 15 files changed, 512 insertions(+), 206 deletions(-) create mode 100644 apps/api/src/domain/services/user-items/get-user-items-count.ts create mode 100644 apps/ios/Plotwist/Plotwist/Views/Home/SoundtracksTabView.swift diff --git a/apps/api/src/db/repositories/user-item-repository.ts b/apps/api/src/db/repositories/user-item-repository.ts index ef54e5bc..a3164f2b 100644 --- a/apps/api/src/db/repositories/user-item-repository.ts +++ b/apps/api/src/db/repositories/user-item-repository.ts @@ -182,6 +182,17 @@ export async function selectAllUserItems(userId: string) { .where(eq(schema.userItems.userId, userId)) } +export async function selectUserItemsCount(userId: string) { + const result = await db + .select({ + count: sql`COUNT(*)::int`, + }) + .from(schema.userItems) + .where(eq(schema.userItems.userId, userId)) + + return result[0]?.count ?? 0 +} + function getOrderColumn(orderBy: string) { switch (orderBy) { case 'updatedAt': diff --git a/apps/api/src/domain/services/user-items/get-user-items-count.ts b/apps/api/src/domain/services/user-items/get-user-items-count.ts new file mode 100644 index 00000000..417524c4 --- /dev/null +++ b/apps/api/src/domain/services/user-items/get-user-items-count.ts @@ -0,0 +1,13 @@ +import { selectUserItemsCount } from '@/db/repositories/user-item-repository' + +type GetUserItemsCountInput = { + userId: string +} + +export async function getUserItemsCountService({ userId }: GetUserItemsCountInput) { + const count = await selectUserItemsCount(userId) + + return { + count, + } +} diff --git a/apps/api/src/http/controllers/user-items-controller.ts b/apps/api/src/http/controllers/user-items-controller.ts index d695efd8..fb844c00 100644 --- a/apps/api/src/http/controllers/user-items-controller.ts +++ b/apps/api/src/http/controllers/user-items-controller.ts @@ -9,6 +9,7 @@ import { upsertUserItemService } from '@/domain/services/user-items/upsert-user- import { createUserItemEpisodesService } from '@/domain/services/user-items/create-user-item-episodes' import { deleteUserItemEpisodesService } from '@/domain/services/user-items/delete-user-item-episodes' import { getAllUserItemsService } from '@/domain/services/user-items/get-all-user-items' +import { getUserItemsCountService } from '@/domain/services/user-items/get-user-items-count' import { createWatchEntry, deleteWatchEntriesByUserItemId, @@ -21,6 +22,7 @@ import { getAllUserItemsQuerySchema, getUserItemQuerySchema, getUserItemsBodySchema, + getUserItemsCountQuerySchema, upsertUserItemBodySchema, } from '../schemas/user-items' @@ -175,3 +177,13 @@ export async function getAllUserItemsController( return reply.status(200).send(result) } + +export async function getUserItemsCountController( + request: FastifyRequest, + reply: FastifyReply +) { + const { userId } = getUserItemsCountQuerySchema.parse(request.query) + const result = await getUserItemsCountService({ userId }) + + return reply.status(200).send(result) +} diff --git a/apps/api/src/http/routes/user-items.ts b/apps/api/src/http/routes/user-items.ts index 03dfa6c0..d16fe117 100644 --- a/apps/api/src/http/routes/user-items.ts +++ b/apps/api/src/http/routes/user-items.ts @@ -8,6 +8,8 @@ import { getUserItemQuerySchema, getUserItemResponseSchema, getUserItemsBodySchema, + getUserItemsCountQuerySchema, + getUserItemsCountResponseSchema, getUserItemsResponseSchema, upsertUserItemBodySchema, upsertUserItemResponseSchema, @@ -18,6 +20,7 @@ import { getAllUserItemsController, getUserItemController, getUserItemsController, + getUserItemsCountController, upsertUserItemController, } from '../controllers/user-items-controller' @@ -114,4 +117,19 @@ export async function userItemsRoutes(app: FastifyInstance) { handler: getAllUserItemsController, }) ) + + app.after(() => + app.withTypeProvider().route({ + method: 'GET', + url: '/user/items/count', + schema: { + description: 'Get user items count', + tags: USER_ITEMS_TAGS, + querystring: getUserItemsCountQuerySchema, + response: getUserItemsCountResponseSchema, + operationId: 'getUserItemsCount', + }, + handler: getUserItemsCountController, + }) + ) } diff --git a/apps/api/src/http/schemas/user-items.ts b/apps/api/src/http/schemas/user-items.ts index 52cf3524..12ea1c3b 100644 --- a/apps/api/src/http/schemas/user-items.ts +++ b/apps/api/src/http/schemas/user-items.ts @@ -91,3 +91,13 @@ export const getAllUserItemsResponseSchema = { ), }), } + +export const getUserItemsCountQuerySchema = z.object({ + userId: z.string(), +}) + +export const getUserItemsCountResponseSchema = { + 200: z.object({ + count: z.number(), + }), +} diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 3494cf7e..1464a32b 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -140,7 +140,10 @@ enum L10n { selectRegionFirst: "Select a region first", servicesSelected: "%d selected", streamingServicesHint: "Showing services available in your selected region.", - resultsBasedOnPreferences: "Results based on your preferences" + resultsBasedOnPreferences: "Results based on your preferences", + collection: "Collection", + reviews: "Reviews", + soundtracks: "Soundtracks" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -262,7 +265,10 @@ enum L10n { selectRegionFirst: "Selecione uma região primeiro", servicesSelected: "%d selecionados", streamingServicesHint: "Exibindo serviços disponíveis na região selecionada.", - resultsBasedOnPreferences: "Resultados baseados nas suas preferências" + resultsBasedOnPreferences: "Resultados baseados nas suas preferências", + collection: "Coleção", + reviews: "Reviews", + soundtracks: "Trilhas" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -384,7 +390,10 @@ enum L10n { selectRegionFirst: "Seleccione una región primero", servicesSelected: "%d seleccionados", streamingServicesHint: "Mostrando servicios disponibles en la región seleccionada.", - resultsBasedOnPreferences: "Resultados según tus preferencias" + resultsBasedOnPreferences: "Resultados según tus preferencias", + collection: "Colección", + reviews: "Reseñas", + soundtracks: "Bandas Sonoras" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -506,7 +515,10 @@ enum L10n { selectRegionFirst: "Sélectionnez d'abord une région", servicesSelected: "%d sélectionnés", streamingServicesHint: "Affichage des services disponibles dans la région sélectionnée.", - resultsBasedOnPreferences: "Résultats basés sur vos préférences" + resultsBasedOnPreferences: "Résultats basés sur vos préférences", + collection: "Collection", + reviews: "Critiques", + soundtracks: "Bandes Sonores" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -628,7 +640,10 @@ enum L10n { selectRegionFirst: "Wählen Sie zuerst eine Region", servicesSelected: "%d ausgewählt", streamingServicesHint: "Zeigt Dienste an, die in der ausgewählten Region verfügbar sind.", - resultsBasedOnPreferences: "Ergebnisse basierend auf Ihren Präferenzen" + resultsBasedOnPreferences: "Ergebnisse basierend auf Ihren Präferenzen", + collection: "Sammlung", + reviews: "Bewertungen", + soundtracks: "Soundtracks" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -750,7 +765,10 @@ enum L10n { selectRegionFirst: "Seleziona prima una regione", servicesSelected: "%d selezionati", streamingServicesHint: "Mostra i servizi disponibili nella regione selezionata.", - resultsBasedOnPreferences: "Risultati basati sulle tue preferenze" + resultsBasedOnPreferences: "Risultati basati sulle tue preferenze", + collection: "Collezione", + reviews: "Recensioni", + soundtracks: "Colonne Sonore" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -871,7 +889,10 @@ enum L10n { selectRegionFirst: "最初に地域を選択してください", servicesSelected: "%d 件選択", streamingServicesHint: "選択した地域で利用可能なサービスを表示しています。", - resultsBasedOnPreferences: "設定に基づいた結果" + resultsBasedOnPreferences: "設定に基づいた結果", + collection: "コレクション", + reviews: "レビュー", + soundtracks: "サウンドトラック" ), ] } @@ -1011,4 +1032,9 @@ struct Strings { let servicesSelected: String let streamingServicesHint: String let resultsBasedOnPreferences: String + // Profile Tabs + let collection: String + let reviews: String + // Tab Bar + let soundtracks: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index d13e09c8..a3baa318 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -785,7 +785,7 @@ struct MovieDetails: Codable, Identifiable { var backdropURL: URL? { guard let backdropPath else { return nil } - return URL(string: "https://image.tmdb.org/t/p/w1280\(backdropPath)") + return URL(string: "https://image.tmdb.org/t/p/original\(backdropPath)") } } @@ -921,7 +921,7 @@ struct TMDBImage: Codable, Identifiable { } var backdropURL: URL? { - URL(string: "https://image.tmdb.org/t/p/w1280\(filePath)") + URL(string: "https://image.tmdb.org/t/p/original\(filePath)") } } diff --git a/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift b/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift index 068517a1..7c323edd 100644 --- a/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift @@ -31,6 +31,28 @@ class UserItemService { return result.userItems } + // MARK: - Get User Items Count + func getUserItemsCount(userId: String) async throws -> Int { + guard let url = URL(string: "\(API.baseURL)/user/items/count?userId=\(userId)") + else { + throw UserItemError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw UserItemError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(UserItemsCountResponse.self, from: data) + return result.count + } + // MARK: - Get User Item func getUserItem(tmdbId: Int, mediaType: String) async throws -> UserItem? { guard let token = UserDefaults.standard.string(forKey: "token"), @@ -303,6 +325,10 @@ struct AllUserItemsResponse: Codable { let userItems: [UserItemSummary] } +struct UserItemsCountResponse: Codable { + let count: Int +} + enum UserItemError: LocalizedError { case invalidURL case invalidResponse diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift index b660d2de..7ba2fa59 100644 --- a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -124,7 +124,7 @@ struct TopRoundedBorderModifier: ViewModifier { func body(content: Content) -> some View { content.overlay( - RoundedCornerShape(radius: cornerRadius, corners: [.topLeft, .topRight]) + TopEdgeShape(cornerRadius: cornerRadius) .stroke( colorScheme == .dark ? Color.appBorderAdaptive : Color.clear, lineWidth: 1 @@ -133,17 +133,37 @@ struct TopRoundedBorderModifier: ViewModifier { } } -// MARK: - Custom Shape for Top Rounded Corners Stroke -struct RoundedCornerShape: Shape { - var radius: CGFloat - var corners: UIRectCorner +// MARK: - Custom Shape for Top Edge Only (with rounded corners) +struct TopEdgeShape: Shape { + var cornerRadius: CGFloat func path(in rect: CGRect) -> Path { - let path = UIBezierPath( - roundedRect: rect, - byRoundingCorners: corners, - cornerRadii: CGSize(width: radius, height: radius) + var path = Path() + + // Start from bottom-left, go up to the curve start + path.move(to: CGPoint(x: 0, y: cornerRadius)) + + // Top-left corner curve + path.addArc( + center: CGPoint(x: cornerRadius, y: cornerRadius), + radius: cornerRadius, + startAngle: .degrees(180), + endAngle: .degrees(270), + clockwise: false ) - return Path(path.cgPath) + + // Top edge + path.addLine(to: CGPoint(x: rect.width - cornerRadius, y: 0)) + + // Top-right corner curve + path.addArc( + center: CGPoint(x: rect.width - cornerRadius, y: cornerRadius), + radius: cornerRadius, + startAngle: .degrees(270), + endAngle: .degrees(0), + clockwise: false + ) + + return path } } diff --git a/apps/ios/Plotwist/Plotwist/Utils/Constants.swift b/apps/ios/Plotwist/Plotwist/Utils/Constants.swift index 450ec9d6..78331f89 100644 --- a/apps/ios/Plotwist/Plotwist/Utils/Constants.swift +++ b/apps/ios/Plotwist/Plotwist/Utils/Constants.swift @@ -6,5 +6,5 @@ import Foundation enum API { - static let baseURL = "http://localhost:3333" + static let baseURL = "https://backend.plotwist.app" } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 89ac98a4..28c0fba7 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -235,7 +235,6 @@ struct MediaDetailView: View { .clipShape( RoundedCorner(radius: cornerRadius, corners: [.topLeft, .topRight]) ) - .topRoundedBorder(cornerRadius: cornerRadius) // Poster and Info (overlaid on top, outside clipShape) HStack(alignment: .bottom, spacing: 16) { diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift index 2fa41887..6ea888dc 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift @@ -203,6 +203,7 @@ struct MasonryImageCell: View { } .frame(width: width, height: height) .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterBorder(cornerRadius: 12) } .buttonStyle(.plain) } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index 14e482f5..1bd7bf7b 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -22,11 +22,17 @@ struct HomeView: View { } .tag(1) + SoundtracksTabView() + .tabItem { + Image(systemName: "map.fill") + } + .tag(2) + ProfileTabView() .tabItem { Image(systemName: "person.fill") } - .tag(2) + .tag(3) } .tint(.appForegroundAdaptive) .onReceive(NotificationCenter.default.publisher(for: .navigateToSearch)) { _ in diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index d57e9ed5..073114ee 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -22,242 +22,259 @@ enum ProfileStatusTab: String, CaseIterable { } } +// MARK: - Profile Main Tab +enum ProfileMainTab: CaseIterable { + case collection + case reviews + + func displayName(strings: Strings) -> String { + switch self { + case .collection: return strings.collection + case .reviews: return strings.reviews + } + } +} + struct ProfileTabView: View { @State private var user: User? @State private var isLoading = true @State private var showSettings = false @State private var strings = L10n.current - @State private var selectedTab: ProfileStatusTab = .watched + @State private var selectedMainTab: ProfileMainTab = .collection + @State private var selectedStatusTab: ProfileStatusTab = .watched @State private var userItems: [UserItemSummary] = [] @State private var isLoadingItems = false + @State private var totalCollectionCount: Int = 0 @ObservedObject private var themeManager = ThemeManager.shared - // Avatar size and offset calculations - private let avatarSize: CGFloat = 140 - private var avatarOffset: CGFloat { -avatarSize * 0.7 } + // Avatar size + private let avatarSize: CGFloat = 56 var body: some View { NavigationView { - GeometryReader { geometry in - let bannerHeight = geometry.size.height * 0.35 + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - if isLoading { - VStack { - Spacer() - ProgressView() + if isLoading { + VStack { + Spacer() + ProgressView() + Spacer() + } + } else if let user { + VStack(spacing: 0) { + // Header with action buttons + HStack { Spacer() - } - } else if let user { - ScrollView(showsIndicators: false) { - VStack(alignment: .leading, spacing: 0) { - // Banner Section - ZStack(alignment: .topTrailing) { - // Banner Background - if let bannerURL = user.bannerImageURL { - AsyncImage(url: bannerURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appInputFilled) - } - } - .frame(width: geometry.size.width, height: bannerHeight) - .clipped() - } else { - Rectangle() - .fill(Color.appInputFilled) - .frame(width: geometry.size.width, height: bannerHeight) - } - // Settings Button - Button { - showSettings = true - } label: { - Image(systemName: "gearshape") - .font(.system(size: 16, weight: .medium)) - .foregroundColor(.white) - .frame(width: 40, height: 40) - .background(.ultraThinMaterial) - .clipShape(Circle()) - } - .padding(.top, 60) - .padding(.trailing, 24) + // Action Buttons + HStack(spacing: 8) { + // Edit Profile Button + NavigationLink(destination: EditProfileView(user: user)) { + Image(systemName: "pencil") + .font(.system(size: 14)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 36, height: 36) + .background(Color.appInputFilled) + .clipShape(Circle()) } - .overlay( - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1), - alignment: .bottom - ) - // Profile Content - Centered - VStack(spacing: 16) { - // Avatar with offset + // Settings Button + Button { + showSettings = true + } label: { + Image(systemName: "gearshape") + .font(.system(size: 14)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 36, height: 36) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + } + } + .padding(.horizontal, 24) + .padding(.vertical, 12) + + ScrollView(showsIndicators: false) { + VStack(alignment: .leading, spacing: 0) { + // Profile Info - Avatar left, info right + HStack(alignment: .center, spacing: 12) { + // Avatar ProfileAvatar( avatarURL: user.avatarImageURL, username: user.username, size: avatarSize ) - .offset(y: avatarOffset) - .padding(.bottom, avatarOffset) - - // Member Since - if let memberDate = user.memberSinceDate { - Text("\(strings.memberSince) \(formattedMemberDate(memberDate))") - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - } - // Username + Edit Button - HStack(spacing: 10) { - Text(user.username) - .font(.title.bold()) - .foregroundColor(.appForegroundAdaptive) + // User Info + VStack(alignment: .leading, spacing: 2) { + // Username + Pro Badge + HStack(spacing: 8) { + Text(user.username) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) - if user.isPro { - ProBadge() + if user.isPro { + ProBadge() + } } - // Edit Profile Button - NavigationLink(destination: EditProfileView(user: user)) { - Image(systemName: "pencil") - .font(.system(size: 12)) - .foregroundColor(.appForegroundAdaptive) - .frame(width: 32, height: 32) - .background(Color.appInputFilled) - .clipShape(Circle()) + // Member Since + if let memberDate = user.memberSinceDate { + Text("\(strings.memberSince) \(formattedMemberDate(memberDate))") + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) } } - // Biography - if let biography = user.biography, !biography.isEmpty { - Text(biography) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .lineSpacing(4) - .multilineTextAlignment(.center) - .padding(.top, 4) - } + Spacer() } - .frame(maxWidth: .infinity) .padding(.horizontal, 24) - .padding(.top, 16) + .padding(.bottom, 12) - // Status Tabs - ProfileStatusTabs(selectedTab: $selectedTab, strings: strings) - .padding(.top, 20) - .onChange(of: selectedTab) { _ in - Task { await loadUserItems() } - } + // Biography + if let biography = user.biography, !biography.isEmpty { + Text(biography) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .lineSpacing(4) + .padding(.horizontal, 24) + } - // User Items Grid - if isLoadingItems { - LazyVGrid( - columns: [ - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - ], - spacing: 16 - ) { - ForEach(0..<6, id: \.self) { _ in - RoundedRectangle(cornerRadius: 12) - .fill(Color.appSkeletonAdaptive) - .aspectRatio(2 / 3, contentMode: .fit) + // Main Tabs (Collection / Reviews) + ProfileMainTabs( + selectedTab: $selectedMainTab, + strings: strings, + collectionCount: totalCollectionCount + ) + .padding(.top, 20) + .padding(.bottom, 8) + + // Tab Content + switch selectedMainTab { + case .collection: + // Status Tabs inside Collection + ProfileStatusTabs(selectedTab: $selectedStatusTab, strings: strings) + .padding(.top, 8) + .onChange(of: selectedStatusTab) { _ in + Task { await loadUserItems() } } - } - .padding(.horizontal, 24) - .padding(.top, 16) - } else if userItems.isEmpty { - // Empty state - Add first item (same grid as items) - LazyVGrid( - columns: [ - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - ], - spacing: 16 - ) { - Button { - NotificationCenter.default.post(name: .navigateToSearch, object: nil) - } label: { - RoundedRectangle(cornerRadius: 12) - .strokeBorder( - style: StrokeStyle(lineWidth: 2, dash: [8, 4]) - ) - .foregroundColor(.appBorderAdaptive) - .aspectRatio(2 / 3, contentMode: .fit) - .overlay( - Image(systemName: "plus") - .font(.system(size: 24, weight: .medium)) - .foregroundColor(.appMutedForegroundAdaptive) - ) + + // User Items Grid + if isLoadingItems { + LazyVGrid( + columns: [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ], + spacing: 16 + ) { + ForEach(0..<6, id: \.self) { _ in + RoundedRectangle(cornerRadius: 12) + .fill(Color.appSkeletonAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + } } - .buttonStyle(.plain) - } - .padding(.horizontal, 24) - .padding(.top, 16) - } else { - LazyVGrid( - columns: [ - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12), - ], - spacing: 16 - ) { - ForEach(userItems) { item in - NavigationLink { - MediaDetailView( - mediaId: item.tmdbId, - mediaType: item.mediaType == "MOVIE" ? "movie" : "tv" - ) + .padding(.horizontal, 24) + .padding(.top, 16) + } else if userItems.isEmpty { + // Empty state - Add first item + LazyVGrid( + columns: [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ], + spacing: 16 + ) { + Button { + NotificationCenter.default.post(name: .navigateToSearch, object: nil) } label: { - ProfileItemCard(tmdbId: item.tmdbId, mediaType: item.mediaType) + RoundedRectangle(cornerRadius: 12) + .strokeBorder( + style: StrokeStyle(lineWidth: 2, dash: [8, 4]) + ) + .foregroundColor(.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fit) + .overlay( + Image(systemName: "plus") + .font(.system(size: 24, weight: .medium)) + .foregroundColor(.appMutedForegroundAdaptive) + ) } .buttonStyle(.plain) } + .padding(.horizontal, 24) + .padding(.top, 16) + } else { + LazyVGrid( + columns: [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ], + spacing: 16 + ) { + ForEach(userItems) { item in + NavigationLink { + MediaDetailView( + mediaId: item.tmdbId, + mediaType: item.mediaType == "MOVIE" ? "movie" : "tv" + ) + } label: { + ProfileItemCard(tmdbId: item.tmdbId, mediaType: item.mediaType) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal, 24) + .padding(.top, 16) } - .padding(.horizontal, 24) - .padding(.top, 16) + + case .reviews: + // Reviews tab content - placeholder for now + VStack(spacing: 16) { + Image(systemName: "text.bubble") + .font(.system(size: 48)) + .foregroundColor(.appMutedForegroundAdaptive) + Text(strings.beFirstToReview) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } + .frame(maxWidth: .infinity) + .padding(.top, 60) } Spacer() .frame(height: 100) } } - .ignoresSafeArea(edges: .top) - } else { - // Error state - no user - VStack(spacing: 16) { - Spacer() - Image(systemName: "person.crop.circle.badge.exclamationmark") - .font(.system(size: 48)) - .foregroundColor(.appMutedForegroundAdaptive) - Text("Could not load profile") - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - Button("Try again") { - Task { - await loadUser() - } + } + } else { + // Error state - no user + VStack(spacing: 16) { + Spacer() + Image(systemName: "person.crop.circle.badge.exclamationmark") + .font(.system(size: 48)) + .foregroundColor(.appMutedForegroundAdaptive) + Text("Could not load profile") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + Button("Try again") { + Task { + await loadUser() } - .foregroundColor(.appForegroundAdaptive) - Spacer() } + .foregroundColor(.appForegroundAdaptive) + Spacer() } } } .task { await loadUser() await loadUserItems() + await loadTotalCollectionCount() } .sheet(isPresented: $showSettings) { SettingsSheet() @@ -301,13 +318,96 @@ struct ProfileTabView: View { do { userItems = try await UserItemService.shared.getAllUserItems( userId: userId, - status: selectedTab.rawValue + status: selectedStatusTab.rawValue ) } catch { print("Error loading user items: \(error)") userItems = [] } } + + private func loadTotalCollectionCount() async { + guard let userId = user?.id else { return } + + do { + totalCollectionCount = try await UserItemService.shared.getUserItemsCount(userId: userId) + } catch { + print("Error loading collection count: \(error)") + totalCollectionCount = 0 + } + } +} + +// MARK: - Profile Main Tabs (Collection / Reviews) +struct ProfileMainTabs: View { + @Binding var selectedTab: ProfileMainTab + let strings: Strings + var collectionCount: Int = 0 + + var body: some View { + HStack(spacing: 0) { + ForEach(ProfileMainTab.allCases, id: \.self) { tab in + Button { + withAnimation(.easeInOut(duration: 0.2)) { + selectedTab = tab + } + } label: { + VStack(spacing: 8) { + HStack(spacing: 6) { + Text(tab.displayName(strings: strings)) + .font(.subheadline.weight(.medium)) + .foregroundColor( + selectedTab == tab + ? .appForegroundAdaptive + : .appMutedForegroundAdaptive + ) + + // Badge for collection count + if tab == .collection && collectionCount > 0 { + CollectionCountBadge(count: collectionCount) + } + } + + Rectangle() + .fill(selectedTab == tab ? Color.appForegroundAdaptive : Color.clear) + .frame(height: 3) + } + } + .buttonStyle(.plain) + .frame(maxWidth: .infinity) + } + } + .padding(.horizontal, 24) + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1), + alignment: .bottom + ) + } +} + +// MARK: - Collection Count Badge +struct CollectionCountBadge: View { + let count: Int + @Environment(\.colorScheme) var colorScheme + + var body: some View { + Text("\(count)") + .font(.caption2.weight(.semibold)) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 6) + .padding(.vertical, 2) + .background(Color.appInputFilled) + .clipShape(Capsule()) + .overlay( + Capsule() + .stroke( + colorScheme == .dark ? Color.appBorderAdaptive : Color.clear, + lineWidth: 1 + ) + ) + } } // MARK: - Profile Status Tabs @@ -425,6 +525,8 @@ struct ProfileAvatar: View { let username: String let size: CGFloat + @Environment(\.colorScheme) var colorScheme + var body: some View { ZStack { if let avatarURL { @@ -446,7 +548,10 @@ struct ProfileAvatar: View { .clipShape(Circle()) .overlay( Circle() - .stroke(Color.appBorderAdaptive.opacity(0.5), lineWidth: 1) + .stroke( + colorScheme == .dark ? Color.appBorderAdaptive : Color.clear, + lineWidth: 1 + ) ) } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/SoundtracksTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/SoundtracksTabView.swift new file mode 100644 index 00000000..1ffa4642 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Home/SoundtracksTabView.swift @@ -0,0 +1,59 @@ +// +// SoundtracksTabView.swift +// Plotwist +// + +import SwiftUI + +struct SoundtracksTabView: View { + @State private var strings = L10n.current + @ObservedObject private var themeManager = ThemeManager.shared + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + HStack { + Text(strings.soundtracks) + .font(.title2.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + // Content - Coming soon placeholder + Spacer() + + VStack(spacing: 16) { + Image(systemName: "music.note.list") + .font(.system(size: 56)) + .foregroundColor(.appMutedForegroundAdaptive) + + Text("Coming soon") + .font(.title3.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + + Text("Discover soundtracks from your favorite movies and series.") + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .multilineTextAlignment(.center) + .padding(.horizontal, 48) + } + + Spacer() + } + } + .preferredColorScheme(themeManager.current.colorScheme) + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } +} + +#Preview { + SoundtracksTabView() +} From fd41022ea5664a4b78020aefb934855b2be90db4 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 12:36:09 -0300 Subject: [PATCH 48/77] feat(media): enhance MediaDetailView and ReviewButton with loading states; add isLoading properties to manage button states during data fetching, improving user experience and visual feedback --- .../Components/MediaDetailViewActions.swift | 37 +++++++++++++-- .../Plotwist/Components/ReviewButton.swift | 37 ++++++++++++--- .../Views/Details/MediaDetailView.swift | 16 +++++++ .../Plotwist/Views/Home/HomeView.swift | 2 +- .../Plotwist/Views/Home/ProfileTabView.swift | 47 +++++++++++++++++++ 5 files changed, 128 insertions(+), 11 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift b/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift index 007c6d4d..73229203 100644 --- a/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift +++ b/apps/ios/Plotwist/Plotwist/Components/MediaDetailViewActions.swift @@ -10,6 +10,8 @@ struct MediaDetailViewActions: View { let mediaType: String let userReview: Review? let userItem: UserItem? + let isLoadingReview: Bool + let isLoadingStatus: Bool let onReviewTapped: () -> Void let onStatusChanged: (UserItem?) -> Void @@ -18,12 +20,13 @@ struct MediaDetailViewActions: View { var body: some View { HStack(spacing: 12) { // Review Button - ReviewButton(hasReview: userReview != nil, action: onReviewTapped) + ReviewButton(hasReview: userReview != nil, isLoading: isLoadingReview, action: onReviewTapped) // Status Button StatusButton( currentStatus: userItem?.statusEnum, rewatchCount: userItem?.watchEntries?.count ?? 0, + isLoading: isLoadingStatus, action: { showStatusSheet = true } ) @@ -70,14 +73,22 @@ struct MediaDetailViewActions: View { struct StatusButton: View { let currentStatus: UserItemStatus? let rewatchCount: Int + let isLoading: Bool let action: () -> Void var body: some View { Button(action: action) { HStack(spacing: 6) { - Image(systemName: currentStatus?.icon ?? "pencil") - .font(.system(size: 13)) - .foregroundColor(statusIconColor ?? .appForegroundAdaptive) + if isLoading { + ProgressView() + .progressViewStyle(CircularProgressViewStyle()) + .scaleEffect(0.7) + .frame(width: 13, height: 13) + } else { + Image(systemName: currentStatus?.icon ?? "pencil") + .font(.system(size: 13)) + .foregroundColor(statusIconColor ?? .appForegroundAdaptive) + } Text(currentStatus?.displayName(strings: L10n.current) ?? L10n.current.updateStatus) .font(.footnote.weight(.medium)) @@ -98,7 +109,9 @@ struct StatusButton: View { .padding(.vertical, 10) .background(Color.appInputFilled) .cornerRadius(10) + .opacity(isLoading ? 0.5 : 1) } + .disabled(isLoading) } private var statusIconColor: Color? { @@ -120,6 +133,20 @@ struct StatusButton: View { mediaType: "movie", userReview: nil, userItem: nil, + isLoadingReview: true, + isLoadingStatus: true, + onReviewTapped: {}, + onStatusChanged: { _ in } + ) + .padding(.horizontal, 24) + + MediaDetailViewActions( + mediaId: 550, + mediaType: "movie", + userReview: nil, + userItem: nil, + isLoadingReview: false, + isLoadingStatus: false, onReviewTapped: {}, onStatusChanged: { _ in } ) @@ -151,6 +178,8 @@ struct StatusButton: View { updatedAt: "2025-01-10T12:00:00.000Z", watchEntries: [WatchEntry(id: "1", watchedAt: "2025-01-10T12:00:00.000Z")] ), + isLoadingReview: false, + isLoadingStatus: false, onReviewTapped: {}, onStatusChanged: { _ in } ) diff --git a/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift b/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift index a4762645..c483eff4 100644 --- a/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift +++ b/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift @@ -7,15 +7,40 @@ import SwiftUI struct ReviewButton: View { let hasReview: Bool + let isLoading: Bool let action: () -> Void + init(hasReview: Bool, isLoading: Bool = false, action: @escaping () -> Void) { + self.hasReview = hasReview + self.isLoading = isLoading + self.action = action + } + var body: some View { - ActionButton( - hasReview ? L10n.current.reviewed : L10n.current.review, - icon: hasReview ? "star.fill" : "star", - iconColor: hasReview ? .yellow : nil, - action: action - ) + Button(action: action) { + HStack(spacing: 6) { + if isLoading { + ProgressView() + .progressViewStyle(CircularProgressViewStyle()) + .scaleEffect(0.7) + .frame(width: 13, height: 13) + } else { + Image(systemName: hasReview ? "star.fill" : "star") + .font(.system(size: 13)) + .foregroundColor(hasReview ? .yellow : .appForegroundAdaptive) + } + + Text(hasReview ? L10n.current.reviewed : L10n.current.review) + .font(.footnote.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + } + .padding(.horizontal, 14) + .padding(.vertical, 10) + .background(Color.appInputFilled) + .cornerRadius(10) + .opacity(isLoading ? 0.5 : 1) + } + .disabled(isLoading) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 28c0fba7..61805d62 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -14,6 +14,8 @@ struct MediaDetailView: View { @State private var isLoading = true @State private var userReview: Review? @State private var userItem: UserItem? + @State private var isLoadingUserReview = false + @State private var isLoadingUserItem = false @State private var showReviewSheet = false @State private var reviewsRefreshId = UUID() @State private var backdropImages: [TMDBImage] = [] @@ -134,6 +136,8 @@ struct MediaDetailView: View { mediaType: mediaType, userReview: userReview, userItem: userItem, + isLoadingReview: isLoadingUserReview, + isLoadingStatus: isLoadingUserItem, onReviewTapped: { showReviewSheet = true }, @@ -289,6 +293,12 @@ struct MediaDetailView: View { ReviewSheet(mediaId: mediaId, mediaType: mediaType, existingReview: userReview) } .task { + // Start loading user data states immediately if authenticated + if AuthService.shared.isAuthenticated { + isLoadingUserReview = true + isLoadingUserItem = true + } + await loadDetails() await loadImages() if AuthService.shared.isAuthenticated { @@ -335,6 +345,9 @@ struct MediaDetailView: View { } private func loadUserReview() async { + isLoadingUserReview = true + defer { isLoadingUserReview = false } + do { userReview = try await ReviewService.shared.getUserReview( tmdbId: mediaId, @@ -346,6 +359,9 @@ struct MediaDetailView: View { } private func loadUserItem() async { + isLoadingUserItem = true + defer { isLoadingUserItem = false } + do { userItem = try await UserItemService.shared.getUserItem( tmdbId: mediaId, diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index 1bd7bf7b..de107dd4 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -24,7 +24,7 @@ struct HomeView: View { SoundtracksTabView() .tabItem { - Image(systemName: "map.fill") + Image(systemName: "flame.fill") } .tag(2) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 073114ee..0ec8a215 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -5,6 +5,14 @@ import SwiftUI +// MARK: - Scroll Offset Preference Key +struct ScrollOffsetPreferenceKey: PreferenceKey { + static var defaultValue: CGFloat = 0 + static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) { + value = nextValue() + } +} + // MARK: - Profile Status Tab enum ProfileStatusTab: String, CaseIterable { case watched = "WATCHED" @@ -45,10 +53,17 @@ struct ProfileTabView: View { @State private var userItems: [UserItemSummary] = [] @State private var isLoadingItems = false @State private var totalCollectionCount: Int = 0 + @State private var scrollOffset: CGFloat = 0 @ObservedObject private var themeManager = ThemeManager.shared // Avatar size private let avatarSize: CGFloat = 56 + // Scroll threshold to show header content + private let scrollThreshold: CGFloat = 50 + + private var isScrolled: Bool { + scrollOffset < -scrollThreshold + } var body: some View { NavigationView { @@ -65,6 +80,14 @@ struct ProfileTabView: View { VStack(spacing: 0) { // Header with action buttons HStack { + // Username (appears when scrolled) + if isScrolled { + Text(user.username) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + .transition(.opacity.combined(with: .move(edge: .leading))) + } + Spacer() // Action Buttons @@ -94,9 +117,28 @@ struct ProfileTabView: View { } .padding(.horizontal, 24) .padding(.vertical, 12) + .background(Color.appBackgroundAdaptive) + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + .opacity(isScrolled ? 1 : 0), + alignment: .bottom + ) + .animation(.easeInOut(duration: 0.2), value: isScrolled) ScrollView(showsIndicators: false) { VStack(alignment: .leading, spacing: 0) { + // Invisible anchor for scroll tracking + GeometryReader { geo in + Color.clear + .preference( + key: ScrollOffsetPreferenceKey.self, + value: geo.frame(in: .global).minY + ) + } + .frame(height: 0) + // Profile Info - Avatar left, info right HStack(alignment: .center, spacing: 12) { // Avatar @@ -250,6 +292,11 @@ struct ProfileTabView: View { .frame(height: 100) } } + .onPreferenceChange(ScrollOffsetPreferenceKey.self) { value in + // Initial position is around 120 (safe area + header) + // When scrolled down, value decreases + scrollOffset = value - 120 + } } } else { // Error state - no user From 9612806e16874d745f5ecf00c7632f97817736f8 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 12:47:40 -0300 Subject: [PATCH 49/77] refactor(image-loading): replace AsyncImage with CachedAsyncImage across multiple views for improved image caching and loading performance; introduce ImageCache service to manage cached images efficiently --- .../Components/PreferencesBadge.swift | 34 ++--- .../Plotwist/Components/ReviewItemView.swift | 15 +- .../Plotwist/Services/ImageCache.swift | 75 ++++++++++ .../Views/Details/MediaDetailView.swift | 51 +++---- .../Views/Details/MediaImagesView.swift | 108 +++++++------- .../Views/Details/RelatedSection.swift | 27 +--- .../Views/Details/WhereToWatchSection.swift | 17 +-- .../Views/Home/CategoryListView.swift | 27 +--- .../Plotwist/Views/Home/HomeTabView.swift | 27 +--- .../Plotwist/Views/Home/ProfileTabView.swift | 132 ++++++++---------- .../Plotwist/Views/Home/SearchTabView.swift | 27 +--- .../Views/Reviews/ReviewSectionView.swift | 15 +- 12 files changed, 267 insertions(+), 288 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Services/ImageCache.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/PreferencesBadge.swift b/apps/ios/Plotwist/Plotwist/Components/PreferencesBadge.swift index 0d77f103..a35fadae 100644 --- a/apps/ios/Plotwist/Plotwist/Components/PreferencesBadge.swift +++ b/apps/ios/Plotwist/Plotwist/Components/PreferencesBadge.swift @@ -261,16 +261,13 @@ struct PreferencesItemBadge: View { } if let logoURL { - AsyncImage(url: logoURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appInputFilled) - } + CachedAsyncImage(url: logoURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + Rectangle() + .fill(Color.appInputFilled) } .frame(width: 18, height: 18) .cornerRadius(4) @@ -651,16 +648,13 @@ struct ServicesPickerSheet: View { toggleProvider(provider.providerId) } label: { HStack(spacing: 12) { - AsyncImage(url: provider.logoURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appInputFilled) - } + CachedAsyncImage(url: provider.logoURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + Rectangle() + .fill(Color.appInputFilled) } .frame(width: 40, height: 40) .cornerRadius(8) diff --git a/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift b/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift index 589999db..cdc150ca 100644 --- a/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift +++ b/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift @@ -31,15 +31,12 @@ struct ReviewItemView: View { if let avatarUrl = review.user.avatarUrl, let url = URL(string: avatarUrl) { - AsyncImage(url: url) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - avatarFallback - } + CachedAsyncImage(url: url) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + avatarFallback } .frame(width: 40, height: 40) .clipShape(Circle()) diff --git a/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift b/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift new file mode 100644 index 00000000..e199d081 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift @@ -0,0 +1,75 @@ +// +// ImageCache.swift +// Plotwist +// + +import SwiftUI + +// MARK: - Image Cache Manager +class ImageCache { + static let shared = ImageCache() + private init() {} + + private let cache = NSCache() + + func image(for url: URL) -> UIImage? { + return cache.object(forKey: url as NSURL) + } + + func setImage(_ image: UIImage, for url: URL) { + cache.setObject(image, forKey: url as NSURL) + } +} + +// MARK: - Cached Async Image +struct CachedAsyncImage: View { + let url: URL? + let content: (Image) -> Content + let placeholder: () -> Placeholder + + @State private var loadedImage: UIImage? + + init( + url: URL?, + @ViewBuilder content: @escaping (Image) -> Content, + @ViewBuilder placeholder: @escaping () -> Placeholder + ) { + self.url = url + self.content = content + self.placeholder = placeholder + } + + var body: some View { + Group { + if let loadedImage { + content(Image(uiImage: loadedImage)) + } else { + placeholder() + .task(id: url) { + await loadImage() + } + } + } + } + + @MainActor + private func loadImage() async { + guard let url else { return } + + // Check cache first + if let cachedImage = ImageCache.shared.image(for: url) { + loadedImage = cachedImage + return + } + + do { + let (data, _) = try await URLSession.shared.data(from: url) + if let image = UIImage(data: data) { + ImageCache.shared.setImage(image, for: url) + loadedImage = image + } + } catch { + print("Failed to load image: \(error)") + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 61805d62..0938e97e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -48,16 +48,13 @@ struct MediaDetailView: View { ZStack(alignment: .topLeading) { // Backdrop Image/Carousel if backdropImages.isEmpty { - AsyncImage(url: details.backdropURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appBorderAdaptive) - } + CachedAsyncImage(url: details.backdropURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + Rectangle() + .fill(Color.appBorderAdaptive) } .frame(height: backdropHeight + cornerRadius) .frame(maxWidth: .infinity) @@ -70,16 +67,13 @@ struct MediaDetailView: View { TabView(selection: $currentBackdropIndex) { ForEach(Array(backdropImages.prefix(10).enumerated()), id: \.element.id) { index, backdrop in - AsyncImage(url: backdrop.backdropURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appBorderAdaptive) - } + CachedAsyncImage(url: backdrop.backdropURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + Rectangle() + .fill(Color.appBorderAdaptive) } .tag(index) } @@ -243,16 +237,13 @@ struct MediaDetailView: View { // Poster and Info (overlaid on top, outside clipShape) HStack(alignment: .bottom, spacing: 16) { // Poster - AsyncImage(url: details.posterURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - } + CachedAsyncImage(url: details.posterURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 12)) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift index 6ea888dc..b3b5b9e9 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaImagesView.swift @@ -190,16 +190,13 @@ struct MasonryImageCell: View { var body: some View { Button(action: onTap) { - AsyncImage(url: image.thumbnailURL) { phase in - switch phase { - case .success(let loadedImage): - loadedImage - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appBorderAdaptive) - } + CachedAsyncImage(url: image.thumbnailURL) { loadedImage in + loadedImage + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + Rectangle() + .fill(Color.appBorderAdaptive) } .frame(width: width, height: height) .clipShape(RoundedRectangle(cornerRadius: 12)) @@ -223,59 +220,56 @@ struct ImageFullScreenView: View { ZStack { Color.black.ignoresSafeArea() - AsyncImage(url: image.fullURL) { phase in - switch phase { - case .success(let loadedImage): - loadedImage - .resizable() - .aspectRatio(contentMode: .fit) - .scaleEffect(scale) - .offset(offset) - .gesture( - MagnificationGesture() - .onChanged { value in - let delta = value / lastScale - lastScale = value - scale = min(max(scale * delta, 1), 4) - } - .onEnded { _ in - lastScale = 1.0 - if scale < 1 { - withAnimation { - scale = 1 - } - } - } - ) - .gesture( - DragGesture() - .onChanged { value in - if scale > 1 { - offset = CGSize( - width: lastOffset.width + value.translation.width, - height: lastOffset.height + value.translation.height - ) + CachedAsyncImage(url: image.fullURL) { loadedImage in + loadedImage + .resizable() + .aspectRatio(contentMode: .fit) + .scaleEffect(scale) + .offset(offset) + .gesture( + MagnificationGesture() + .onChanged { value in + let delta = value / lastScale + lastScale = value + scale = min(max(scale * delta, 1), 4) + } + .onEnded { _ in + lastScale = 1.0 + if scale < 1 { + withAnimation { + scale = 1 } } - .onEnded { _ in - lastOffset = offset - } - ) - .onTapGesture(count: 2) { - withAnimation { + } + ) + .gesture( + DragGesture() + .onChanged { value in if scale > 1 { - scale = 1 - offset = .zero - lastOffset = .zero - } else { - scale = 2 + offset = CGSize( + width: lastOffset.width + value.translation.width, + height: lastOffset.height + value.translation.height + ) } } + .onEnded { _ in + lastOffset = offset + } + ) + .onTapGesture(count: 2) { + withAnimation { + if scale > 1 { + scale = 1 + offset = .zero + lastOffset = .zero + } else { + scale = 2 + } } - default: - ProgressView() - .tint(.white) - } + } + } placeholder: { + ProgressView() + .tint(.white) } // Close button diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift index bc7e1302..4a0fbc85 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift @@ -91,26 +91,13 @@ struct RelatedPosterCard: View { let item: SearchResult var body: some View { - AsyncImage(url: item.imageURL) { phase in - switch phase { - case .empty: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - case .failure: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .overlay( - Image(systemName: "film") - .foregroundColor(.appMutedForegroundAdaptive) - ) - @unknown default: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - } + CachedAsyncImage(url: item.imageURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 16)) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift index 6c5f6a23..718c9f60 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift @@ -138,16 +138,13 @@ struct ProviderRow: View { var body: some View { HStack(spacing: 8) { - AsyncImage(url: provider.logoURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - RoundedRectangle(cornerRadius: 6) - .fill(Color.appBorderAdaptive) - } + CachedAsyncImage(url: provider.logoURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 6) + .fill(Color.appBorderAdaptive) } .frame(width: 24, height: 24) .clipShape(RoundedRectangle(cornerRadius: 6)) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift index 7caeeb9a..04cc448c 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift @@ -482,26 +482,13 @@ struct CategoryPosterCard: View { let item: SearchResult var body: some View { - AsyncImage(url: item.imageURL) { phase in - switch phase { - case .empty: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - case .failure: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .overlay( - Image(systemName: "film") - .foregroundColor(.appMutedForegroundAdaptive) - ) - @unknown default: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - } + CachedAsyncImage(url: item.imageURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) } .aspectRatio(2 / 3, contentMode: .fit) .clipShape(RoundedRectangle(cornerRadius: 16)) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift index 47b1796f..c3b08631 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift @@ -95,26 +95,13 @@ struct HomePosterCard: View { let item: SearchResult var body: some View { - AsyncImage(url: item.imageURL) { phase in - switch phase { - case .empty: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - case .failure: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - .overlay( - Image(systemName: "film") - .foregroundColor(.appMutedForegroundAdaptive) - ) - @unknown default: - RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) - } + CachedAsyncImage(url: item.imageURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 16) + .fill(Color.appBorderAdaptive) } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 16)) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 0ec8a215..e72b5b84 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -54,15 +54,17 @@ struct ProfileTabView: View { @State private var isLoadingItems = false @State private var totalCollectionCount: Int = 0 @State private var scrollOffset: CGFloat = 0 + @State private var initialScrollOffset: CGFloat? = nil @ObservedObject private var themeManager = ThemeManager.shared // Avatar size private let avatarSize: CGFloat = 56 - // Scroll threshold to show header content - private let scrollThreshold: CGFloat = 50 + // Scroll threshold to show header content (height of profile info section) + private let scrollThreshold: CGFloat = 80 private var isScrolled: Bool { - scrollOffset < -scrollThreshold + guard let initial = initialScrollOffset else { return false } + return scrollOffset < initial - scrollThreshold } var body: some View { @@ -79,13 +81,22 @@ struct ProfileTabView: View { } else if let user { VStack(spacing: 0) { // Header with action buttons - HStack { - // Username (appears when scrolled) + HStack(spacing: 12) { + // Avatar + Username (appears when scrolled) if isScrolled { - Text(user.username) - .font(.headline) - .foregroundColor(.appForegroundAdaptive) - .transition(.opacity.combined(with: .move(edge: .leading))) + HStack(spacing: 10) { + ProfileAvatar( + avatarURL: user.avatarImageURL, + username: user.username, + size: 32 + ) + .transition(.opacity.combined(with: .move(edge: .bottom))) + + Text(user.username) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + .transition(.opacity.combined(with: .move(edge: .bottom))) + } } Spacer() @@ -129,16 +140,6 @@ struct ProfileTabView: View { ScrollView(showsIndicators: false) { VStack(alignment: .leading, spacing: 0) { - // Invisible anchor for scroll tracking - GeometryReader { geo in - Color.clear - .preference( - key: ScrollOffsetPreferenceKey.self, - value: geo.frame(in: .global).minY - ) - } - .frame(height: 0) - // Profile Info - Avatar left, info right HStack(alignment: .center, spacing: 12) { // Avatar @@ -291,11 +292,18 @@ struct ProfileTabView: View { Spacer() .frame(height: 100) } - } - .onPreferenceChange(ScrollOffsetPreferenceKey.self) { value in - // Initial position is around 120 (safe area + header) - // When scrolled down, value decreases - scrollOffset = value - 120 + .background( + GeometryReader { geo -> Color in + DispatchQueue.main.async { + let offset = geo.frame(in: .global).minY + if initialScrollOffset == nil { + initialScrollOffset = offset + } + scrollOffset = offset + } + return Color.clear + } + ) } } } else { @@ -513,26 +521,13 @@ struct ProfileItemCard: View { @State private var isLoading = true var body: some View { - AsyncImage(url: posterURL) { phase in - switch phase { - case .empty: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appSkeletonAdaptive) - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - case .failure: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - .overlay( - Image(systemName: "film") - .foregroundColor(.appMutedForegroundAdaptive) - ) - @unknown default: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - } + CachedAsyncImage(url: posterURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appSkeletonAdaptive) } .aspectRatio(2 / 3, contentMode: .fit) .clipShape(RoundedRectangle(cornerRadius: 12)) @@ -577,15 +572,12 @@ struct ProfileAvatar: View { var body: some View { ZStack { if let avatarURL { - AsyncImage(url: avatarURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - avatarPlaceholder - } + CachedAsyncImage(url: avatarURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + avatarPlaceholder } } else { avatarPlaceholder @@ -945,16 +937,13 @@ struct ProfileBadge: View { } if let logoURL { - AsyncImage(url: logoURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appInputFilled) - } + CachedAsyncImage(url: logoURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + Rectangle() + .fill(Color.appInputFilled) } .frame(width: 18, height: 18) .cornerRadius(4) @@ -1555,16 +1544,13 @@ struct EditStreamingServicesView: View { } label: { HStack(spacing: 12) { // Provider Logo - AsyncImage(url: provider.logoURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appInputFilled) - } + CachedAsyncImage(url: provider.logoURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + Rectangle() + .fill(Color.appInputFilled) } .frame(width: 40, height: 40) .cornerRadius(8) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift index 38a26a2e..64a900c9 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift @@ -319,26 +319,13 @@ struct PosterCard: View { let result: SearchResult var body: some View { - AsyncImage(url: result.imageURL) { phase in - switch phase { - case .empty: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - case .failure: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - .overlay( - Image(systemName: result.mediaType == "person" ? "person.fill" : "film") - .foregroundColor(.appMutedForegroundAdaptive) - ) - @unknown default: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - } + CachedAsyncImage(url: result.imageURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) } .aspectRatio(2 / 3, contentMode: .fit) .clipShape(RoundedRectangle(cornerRadius: 12)) diff --git a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift index b2b6d11f..7a23508d 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift @@ -317,15 +317,12 @@ struct ReviewCardView: View { if let avatarUrl = review.user.avatarUrl, let url = URL(string: avatarUrl) { - AsyncImage(url: url) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - avatarFallback - } + CachedAsyncImage(url: url) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + avatarFallback } .frame(width: 40, height: 40) .clipShape(Circle()) From 0daecee765199d1d73bf28fe5e137e5d05e1323a Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 12:55:59 -0300 Subject: [PATCH 50/77] refactor(image-loading): replace AsyncImage with CachedAsyncImage across multiple views for improved image caching and loading performance; introduce ImageCache service to manage cached images efficiently --- .../Plotwist/Components/StatusSheet.swift | 8 +- .../Plotwist/Services/CollectionCache.swift | 78 +++++++++++++++++++ .../Plotwist/Services/ReviewService.swift | 67 +++++++++++++++- .../Plotwist/Services/UserItemService.swift | 46 ++++++++++- apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 26 +++++++ .../Views/Details/MediaDetailView.swift | 51 +++++++----- .../Plotwist/Views/Details/ReviewSheet.swift | 8 +- .../Plotwist/Views/Home/HomeView.swift | 13 ++-- .../Plotwist/Views/Home/ProfileTabView.swift | 57 ++++++++++---- 9 files changed, 310 insertions(+), 44 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Services/CollectionCache.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift b/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift index 6e2d9a7c..c419d7fd 100644 --- a/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift @@ -160,7 +160,10 @@ struct StatusSheet: View { Task { do { - try await UserItemService.shared.deleteUserItem(id: itemId) + try await UserItemService.shared.deleteUserItem(id: itemId, tmdbId: mediaId, mediaType: mediaType) + + // Invalidate collection cache + CollectionCache.shared.invalidateCache() await MainActor.run { isLoading = false @@ -192,6 +195,9 @@ struct StatusSheet: View { status: status ) + // Invalidate collection cache + CollectionCache.shared.invalidateCache() + await MainActor.run { isLoading = false // Update currentItemId with the newly created/updated item diff --git a/apps/ios/Plotwist/Plotwist/Services/CollectionCache.swift b/apps/ios/Plotwist/Plotwist/Services/CollectionCache.swift new file mode 100644 index 00000000..085c8723 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Services/CollectionCache.swift @@ -0,0 +1,78 @@ +// +// CollectionCache.swift +// Plotwist +// + +import Foundation + +// MARK: - Collection Cache +class CollectionCache { + static let shared = CollectionCache() + private init() {} + + // Cache for user items by status + private var itemsCache: [String: [UserItemSummary]] = [:] + // Cache for total count + private var totalCountCache: Int? + // Cache timestamp + private var lastUpdated: Date? + // Cache duration (5 minutes) + private let cacheDuration: TimeInterval = 300 + + private func cacheKey(userId: String, status: String) -> String { + return "\(userId)_\(status)" + } + + // MARK: - Items Cache + + func getItems(userId: String, status: String) -> [UserItemSummary]? { + guard !isCacheExpired else { + clearCache() + return nil + } + return itemsCache[cacheKey(userId: userId, status: status)] + } + + func setItems(_ items: [UserItemSummary], userId: String, status: String) { + itemsCache[cacheKey(userId: userId, status: status)] = items + lastUpdated = Date() + } + + // MARK: - Total Count Cache + + func getTotalCount() -> Int? { + guard !isCacheExpired else { + clearCache() + return nil + } + return totalCountCache + } + + func setTotalCount(_ count: Int) { + totalCountCache = count + lastUpdated = Date() + } + + // MARK: - Cache Management + + private var isCacheExpired: Bool { + guard let lastUpdated else { return true } + return Date().timeIntervalSince(lastUpdated) > cacheDuration + } + + func clearCache() { + itemsCache.removeAll() + totalCountCache = nil + lastUpdated = nil + } + + func invalidateCache() { + clearCache() + NotificationCenter.default.post(name: .collectionCacheInvalidated, object: nil) + } +} + +// MARK: - Notification Names +extension Notification.Name { + static let collectionCacheInvalidated = Notification.Name("collectionCacheInvalidated") +} diff --git a/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift b/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift index 1bfd3d99..bed73228 100644 --- a/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift @@ -9,6 +9,33 @@ class ReviewService { static let shared = ReviewService() private init() {} + // MARK: - Cache + private var reviewCache: [String: CachedReview] = [:] + private let cacheDuration: TimeInterval = 300 // 5 minutes + + private struct CachedReview { + let review: Review? + let timestamp: Date + } + + private func cacheKey(tmdbId: Int, mediaType: String, seasonNumber: Int?, episodeNumber: Int?) + -> String + { + var key = "\(tmdbId)-\(mediaType)" + if let season = seasonNumber { key += "-s\(season)" } + if let episode = episodeNumber { key += "-e\(episode)" } + return key + } + + func invalidateCache(tmdbId: Int, mediaType: String, seasonNumber: Int? = nil, episodeNumber: Int? = nil) { + let key = cacheKey(tmdbId: tmdbId, mediaType: mediaType, seasonNumber: seasonNumber, episodeNumber: episodeNumber) + reviewCache.removeValue(forKey: key) + } + + func invalidateAllCache() { + reviewCache.removeAll() + } + // MARK: - Get User Review func getUserReview( tmdbId: Int, @@ -16,6 +43,14 @@ class ReviewService { seasonNumber: Int? = nil, episodeNumber: Int? = nil ) async throws -> Review? { + let key = cacheKey(tmdbId: tmdbId, mediaType: mediaType, seasonNumber: seasonNumber, episodeNumber: episodeNumber) + + // Check cache + if let cached = reviewCache[key], + Date().timeIntervalSince(cached.timestamp) < cacheDuration { + return cached.review + } + var urlString = "\(API.baseURL)/review?tmdbId=\(tmdbId)&mediaType=\(mediaType)" if let seasonNumber = seasonNumber { @@ -42,6 +77,8 @@ class ReviewService { } if http.statusCode == 404 { + // Cache nil result + reviewCache[key] = CachedReview(review: nil, timestamp: Date()) return nil } @@ -52,6 +89,10 @@ class ReviewService { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase let result = try decoder.decode(ReviewResponse.self, from: data) + + // Cache result + reviewCache[key] = CachedReview(review: result.review, timestamp: Date()) + return result.review } @@ -101,6 +142,14 @@ class ReviewService { } throw ReviewError.invalidResponse } + + // Invalidate cache + invalidateCache( + tmdbId: reviewData.tmdbId, + mediaType: reviewData.mediaType, + seasonNumber: reviewData.seasonNumber, + episodeNumber: reviewData.episodeNumber + ) } // MARK: - Update Review @@ -135,10 +184,18 @@ class ReviewService { guard http.statusCode == 200 else { throw ReviewError.invalidResponse } + + // Invalidate cache + invalidateCache( + tmdbId: reviewData.tmdbId, + mediaType: reviewData.mediaType, + seasonNumber: reviewData.seasonNumber, + episodeNumber: reviewData.episodeNumber + ) } // MARK: - Delete Review - func deleteReview(id: String) async throws { + func deleteReview(id: String, tmdbId: Int, mediaType: String, seasonNumber: Int? = nil, episodeNumber: Int? = nil) async throws { guard let url = URL(string: "\(API.baseURL)/review/by/\(id)"), let token = UserDefaults.standard.string(forKey: "token") else { @@ -158,6 +215,14 @@ class ReviewService { guard http.statusCode == 200 || http.statusCode == 204 else { throw ReviewError.invalidResponse } + + // Invalidate cache + invalidateCache( + tmdbId: tmdbId, + mediaType: mediaType, + seasonNumber: seasonNumber, + episodeNumber: episodeNumber + ) } // MARK: - Get Reviews List diff --git a/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift b/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift index 7c323edd..65747e5d 100644 --- a/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/UserItemService.swift @@ -9,6 +9,28 @@ class UserItemService { static let shared = UserItemService() private init() {} + // MARK: - Cache + private var userItemCache: [String: CachedUserItem] = [:] + private let cacheDuration: TimeInterval = 300 // 5 minutes + + private struct CachedUserItem { + let userItem: UserItem? + let timestamp: Date + } + + private func cacheKey(tmdbId: Int, mediaType: String) -> String { + return "\(tmdbId)-\(mediaType)" + } + + func invalidateCache(tmdbId: Int, mediaType: String) { + let key = cacheKey(tmdbId: tmdbId, mediaType: mediaType) + userItemCache.removeValue(forKey: key) + } + + func invalidateAllCache() { + userItemCache.removeAll() + } + // MARK: - Get All User Items by Status func getAllUserItems(userId: String, status: String) async throws -> [UserItemSummary] { guard let url = URL(string: "\(API.baseURL)/user/items/all?userId=\(userId)&status=\(status)") @@ -55,6 +77,14 @@ class UserItemService { // MARK: - Get User Item func getUserItem(tmdbId: Int, mediaType: String) async throws -> UserItem? { + let key = cacheKey(tmdbId: tmdbId, mediaType: mediaType) + + // Check cache + if let cached = userItemCache[key], + Date().timeIntervalSince(cached.timestamp) < cacheDuration { + return cached.userItem + } + guard let token = UserDefaults.standard.string(forKey: "token"), let url = URL(string: "\(API.baseURL)/user/item?tmdbId=\(tmdbId)&mediaType=\(mediaType)") else { @@ -71,6 +101,8 @@ class UserItemService { } if http.statusCode == 404 { + // Cache nil result + userItemCache[key] = CachedUserItem(userItem: nil, timestamp: Date()) return nil } @@ -81,6 +113,10 @@ class UserItemService { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase let result = try decoder.decode(UserItemResponse.self, from: data) + + // Cache result + userItemCache[key] = CachedUserItem(userItem: result.userItem, timestamp: Date()) + return result.userItem } @@ -120,11 +156,16 @@ class UserItemService { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase let result = try decoder.decode(UpsertUserItemResponse.self, from: data) + + // Update cache with new value + let key = cacheKey(tmdbId: tmdbId, mediaType: mediaType) + userItemCache[key] = CachedUserItem(userItem: result.userItem, timestamp: Date()) + return result.userItem } // MARK: - Delete User Item - func deleteUserItem(id: String) async throws { + func deleteUserItem(id: String, tmdbId: Int, mediaType: String) async throws { guard let url = URL(string: "\(API.baseURL)/user/item/\(id)"), let token = UserDefaults.standard.string(forKey: "token") else { @@ -144,6 +185,9 @@ class UserItemService { guard http.statusCode == 200 || http.statusCode == 204 else { throw UserItemError.invalidResponse } + + // Invalidate cache + invalidateCache(tmdbId: tmdbId, mediaType: mediaType) } // MARK: - Add Watch Entry (Rewatch) diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift index 7ba2fa59..0f8ec94d 100644 --- a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -5,8 +5,34 @@ // Dark theme matched to web globals.css import SwiftUI +import UIKit extension Color { + // MARK: - Hex Initializer + init(hex: String) { + let hex = hex.trimmingCharacters(in: CharacterSet.alphanumerics.inverted) + var int: UInt64 = 0 + Scanner(string: hex).scanHexInt64(&int) + let a, r, g, b: UInt64 + switch hex.count { + case 3: // RGB (12-bit) + (a, r, g, b) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17) + case 6: // RGB (24-bit) + (a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF) + case 8: // ARGB (32-bit) + (a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF) + default: + (a, r, g, b) = (1, 1, 1, 0) + } + self.init( + .sRGB, + red: Double(r) / 255, + green: Double(g) / 255, + blue: Double(b) / 255, + opacity: Double(a) / 255 + ) + } + // MARK: - Adaptive Colors (Light/Dark mode) // Dark: --background: 240 10% 3.9% (web) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 0938e97e..61805d62 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -48,13 +48,16 @@ struct MediaDetailView: View { ZStack(alignment: .topLeading) { // Backdrop Image/Carousel if backdropImages.isEmpty { - CachedAsyncImage(url: details.backdropURL) { image in - image - .resizable() - .aspectRatio(contentMode: .fill) - } placeholder: { - Rectangle() - .fill(Color.appBorderAdaptive) + AsyncImage(url: details.backdropURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appBorderAdaptive) + } } .frame(height: backdropHeight + cornerRadius) .frame(maxWidth: .infinity) @@ -67,13 +70,16 @@ struct MediaDetailView: View { TabView(selection: $currentBackdropIndex) { ForEach(Array(backdropImages.prefix(10).enumerated()), id: \.element.id) { index, backdrop in - CachedAsyncImage(url: backdrop.backdropURL) { image in - image - .resizable() - .aspectRatio(contentMode: .fill) - } placeholder: { - Rectangle() - .fill(Color.appBorderAdaptive) + AsyncImage(url: backdrop.backdropURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + Rectangle() + .fill(Color.appBorderAdaptive) + } } .tag(index) } @@ -237,13 +243,16 @@ struct MediaDetailView: View { // Poster and Info (overlaid on top, outside clipShape) HStack(alignment: .bottom, spacing: 16) { // Poster - CachedAsyncImage(url: details.posterURL) { image in - image - .resizable() - .aspectRatio(contentMode: .fill) - } placeholder: { - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) + AsyncImage(url: details.posterURL) { phase in + switch phase { + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + default: + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + } } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 12)) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift index 91d4db50..9f0d0a7e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift @@ -218,7 +218,13 @@ struct ReviewSheet: View { Task { do { - try await ReviewService.shared.deleteReview(id: existingReview.id) + try await ReviewService.shared.deleteReview( + id: existingReview.id, + tmdbId: mediaId, + mediaType: mediaType == "movie" ? "MOVIE" : "TV_SHOW", + seasonNumber: existingReview.seasonNumber, + episodeNumber: existingReview.episodeNumber + ) await MainActor.run { isDeleting = false diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index de107dd4..a6379a9c 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -22,17 +22,18 @@ struct HomeView: View { } .tag(1) - SoundtracksTabView() - .tabItem { - Image(systemName: "flame.fill") - } - .tag(2) + // TODO: Re-enable when Soundtracks feature is ready + // SoundtracksTabView() + // .tabItem { + // Image(systemName: "flame.fill") + // } + // .tag(2) ProfileTabView() .tabItem { Image(systemName: "person.fill") } - .tag(3) + .tag(2) } .tint(.appForegroundAdaptive) .onReceive(NotificationCenter.default.publisher(for: .navigateToSearch)) { _ in diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index e72b5b84..2398bac4 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -341,6 +341,12 @@ struct ProfileTabView: View { .onReceive(NotificationCenter.default.publisher(for: .profileUpdated)) { _ in Task { await loadUser() } } + .onReceive(NotificationCenter.default.publisher(for: .collectionCacheInvalidated)) { _ in + Task { + await loadUserItems(forceRefresh: true) + await loadTotalCollectionCount(forceRefresh: true) + } + } .navigationBarHidden(true) } } @@ -364,28 +370,49 @@ struct ProfileTabView: View { return formatter.string(from: date) } - private func loadUserItems() async { + private func loadUserItems(forceRefresh: Bool = false) async { guard let userId = user?.id else { return } + // Check cache first + if !forceRefresh, + let cachedItems = CollectionCache.shared.getItems( + userId: userId, status: selectedStatusTab.rawValue) + { + userItems = cachedItems + return + } + isLoadingItems = true defer { isLoadingItems = false } do { - userItems = try await UserItemService.shared.getAllUserItems( + let items = try await UserItemService.shared.getAllUserItems( userId: userId, status: selectedStatusTab.rawValue ) + userItems = items + // Save to cache + CollectionCache.shared.setItems(items, userId: userId, status: selectedStatusTab.rawValue) } catch { print("Error loading user items: \(error)") userItems = [] } } - private func loadTotalCollectionCount() async { + private func loadTotalCollectionCount(forceRefresh: Bool = false) async { guard let userId = user?.id else { return } + // Check cache first + if !forceRefresh, let cachedCount = CollectionCache.shared.getTotalCount() { + totalCollectionCount = cachedCount + return + } + do { - totalCollectionCount = try await UserItemService.shared.getUserItemsCount(userId: userId) + let count = try await UserItemService.shared.getUserItemsCount(userId: userId) + totalCollectionCount = count + // Save to cache + CollectionCache.shared.setTotalCount(count) } catch { print("Error loading collection count: \(error)") totalCollectionCount = 0 @@ -607,20 +634,24 @@ struct ProfileAvatar: View { // MARK: - Pro Badge struct ProBadge: View { + @Environment(\.colorScheme) private var colorScheme + var body: some View { Text("PRO") - .font(.system(size: 10, weight: .bold)) - .foregroundColor(.white) + .font(.system(size: 10, weight: .semibold)) + .foregroundColor(colorScheme == .dark ? .white : .appForegroundAdaptive) .padding(.horizontal, 8) - .padding(.vertical, 4) + .padding(.vertical, 3) .background( - LinearGradient( - colors: [Color.purple, Color.blue], - startPoint: .leading, - endPoint: .trailing - ) + colorScheme == .dark + ? Color(hex: "0a0a0f") + : Color(hex: "f5f5f5") + ) + .clipShape(RoundedRectangle(cornerRadius: 6)) + .overlay( + RoundedRectangle(cornerRadius: 6) + .stroke(Color.appBorderAdaptive, lineWidth: 1) ) - .clipShape(Capsule()) } } From b44693d9ca2f43671663ac745aaa20ea1f98341b Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 13:13:55 -0300 Subject: [PATCH 51/77] feat(localization): add language flags to Language enum and update localization strings for profile; enhance ProfileTabView with new theme and language editing options --- .../Plotwist/Localization/Language.swift | 12 + .../Plotwist/Localization/Strings.swift | 8 + .../Plotwist/Services/AuthService.swift | 27 ++ .../Plotwist/Views/Home/ProfileTabView.swift | 436 +++++++++++------- 4 files changed, 322 insertions(+), 161 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Localization/Language.swift b/apps/ios/Plotwist/Plotwist/Localization/Language.swift index 06bceaa4..fbee8cad 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Language.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Language.swift @@ -25,6 +25,18 @@ enum Language: String, CaseIterable { case .jaJP: return "日本語" } } + + var flag: String { + switch self { + case .enUS: return "🇺🇸" + case .ptBR: return "🇧🇷" + case .esES: return "🇪🇸" + case .frFR: return "🇫🇷" + case .deDE: return "🇩🇪" + case .itIT: return "🇮🇹" + case .jaJP: return "🇯🇵" + } + } static var current: Language { get { diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 1464a32b..fff852a0 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -126,6 +126,7 @@ enum L10n { buy: "Buy", unavailable: "Unavailable", // Profile + profile: "Profile", memberSince: "Member since", editProfile: "Edit", accountData: "Account", @@ -251,6 +252,7 @@ enum L10n { rent: "Alugar", buy: "Comprar", unavailable: "Indisponível", + profile: "Perfil", memberSince: "Membro desde", editProfile: "Editar", accountData: "Conta", @@ -376,6 +378,7 @@ enum L10n { rent: "Alquilar", buy: "Comprar", unavailable: "No disponible", + profile: "Perfil", memberSince: "Miembro desde", editProfile: "Editar", accountData: "Cuenta", @@ -501,6 +504,7 @@ enum L10n { rent: "Louer", buy: "Acheter", unavailable: "Indisponible", + profile: "Profil", memberSince: "Membre depuis", editProfile: "Modifier", accountData: "Compte", @@ -626,6 +630,7 @@ enum L10n { rent: "Leihen", buy: "Kaufen", unavailable: "Nicht verfügbar", + profile: "Profil", memberSince: "Mitglied seit", editProfile: "Bearbeiten", accountData: "Konto", @@ -751,6 +756,7 @@ enum L10n { rent: "Noleggia", buy: "Acquista", unavailable: "Non disponibile", + profile: "Profilo", memberSince: "Membro dal", editProfile: "Modifica", accountData: "Account", @@ -875,6 +881,7 @@ enum L10n { rent: "レンタル", buy: "購入", unavailable: "利用不可", + profile: "プロフィール", memberSince: "メンバー登録日", editProfile: "編集", accountData: "アカウント", @@ -1017,6 +1024,7 @@ struct Strings { let buy: String let unavailable: String // Profile + let profile: String let memberSince: String let editProfile: String let accountData: String diff --git a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift index 4c83bc7e..c65e7bf9 100644 --- a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift @@ -9,6 +9,19 @@ class AuthService { static let shared = AuthService() private init() {} + // MARK: - Cache + private var preferencesCache: CachedPreferences? + private let cacheDuration: TimeInterval = 300 // 5 minutes + + private struct CachedPreferences { + let preferences: UserPreferences? + let timestamp: Date + } + + func invalidatePreferencesCache() { + preferencesCache = nil + } + // MARK: - Sign In func signIn(login: String, password: String) async throws -> String { guard let url = URL(string: "\(API.baseURL)/login") else { @@ -195,6 +208,12 @@ class AuthService { // MARK: - Get User Preferences func getUserPreferences() async throws -> UserPreferences? { + // Check cache + if let cached = preferencesCache, + Date().timeIntervalSince(cached.timestamp) < cacheDuration { + return cached.preferences + } + guard let token = UserDefaults.standard.string(forKey: "token"), let url = URL(string: "\(API.baseURL)/user/preferences") else { @@ -214,6 +233,10 @@ class AuthService { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase let wrapper = try decoder.decode(UserPreferencesResponse.self, from: data) + + // Cache result + preferencesCache = CachedPreferences(preferences: wrapper.userPreferences, timestamp: Date()) + return wrapper.userPreferences } @@ -242,6 +265,9 @@ class AuthService { guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { throw AuthError.invalidResponse } + + // Invalidate cache after update + invalidatePreferencesCache() } // MARK: - Get User Stats @@ -267,6 +293,7 @@ class AuthService { // MARK: - Sign Out func signOut() { UserDefaults.standard.removeObject(forKey: "token") + invalidatePreferencesCache() NotificationCenter.default.post(name: .authChanged, object: nil) } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 2398bac4..6102958e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -46,7 +46,6 @@ enum ProfileMainTab: CaseIterable { struct ProfileTabView: View { @State private var user: User? @State private var isLoading = true - @State private var showSettings = false @State private var strings = L10n.current @State private var selectedMainTab: ProfileMainTab = .collection @State private var selectedStatusTab: ProfileStatusTab = .watched @@ -102,28 +101,13 @@ struct ProfileTabView: View { Spacer() // Action Buttons - HStack(spacing: 8) { - // Edit Profile Button - NavigationLink(destination: EditProfileView(user: user)) { - Image(systemName: "pencil") - .font(.system(size: 14)) - .foregroundColor(.appForegroundAdaptive) - .frame(width: 36, height: 36) - .background(Color.appInputFilled) - .clipShape(Circle()) - } - - // Settings Button - Button { - showSettings = true - } label: { - Image(systemName: "gearshape") - .font(.system(size: 14)) - .foregroundColor(.appForegroundAdaptive) - .frame(width: 36, height: 36) - .background(Color.appInputFilled) - .clipShape(Circle()) - } + NavigationLink(destination: EditProfileView(user: user)) { + Image(systemName: "ellipsis") + .font(.system(size: 14)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 36, height: 36) + .background(Color.appInputFilled) + .clipShape(Circle()) } } .padding(.horizontal, 24) @@ -331,10 +315,6 @@ struct ProfileTabView: View { await loadUserItems() await loadTotalCollectionCount() } - .sheet(isPresented: $showSettings) { - SettingsSheet() - .standardSheetStyle(detents: [.medium]) - } .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current } @@ -734,7 +714,7 @@ struct EditProfileView: View { Spacer() - Text(strings.editProfile) + Text(strings.profile) .font(.title3.bold()) .foregroundColor(.appForegroundAdaptive) @@ -854,7 +834,55 @@ struct EditProfileView: View { } .opacity(0.5) } + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 24) + + // Theme Field + NavigationLink(destination: EditThemeView()) { + EditProfileBadgeRow(label: strings.theme) { + ProfileBadge( + text: themeDisplayName(themeManager.current), icon: themeManager.current.icon) + } + } + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 24) + + // Language Field + NavigationLink(destination: EditLanguageView()) { + EditProfileBadgeRow(label: strings.language) { + ProfileBadge(text: Language.current.displayName, prefix: Language.current.flag) + } + } + } + + // Sign Out Section + VStack(spacing: 0) { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.top, 24) + + Button { + AuthService.shared.signOut() + } label: { + HStack(spacing: 8) { + Image(systemName: "rectangle.portrait.and.arrow.right") + Text(strings.signOut) + } + .font(.subheadline.weight(.medium)) + .foregroundColor(.appDestructive) + .frame(maxWidth: .infinity) + .padding(.vertical, 16) + } } + .padding(.horizontal, 24) + .padding(.bottom, 40) } } } @@ -890,6 +918,218 @@ struct EditProfileView: View { print("Error loading preferences: \(error)") } } + + private func themeDisplayName(_ theme: AppTheme) -> String { + switch theme { + case .system: return strings.themeSystem + case .light: return strings.themeLight + case .dark: return strings.themeDark + } + } +} + +// MARK: - Edit Theme View +struct EditThemeView: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(strings.theme) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + Color.clear + .frame(width: 40, height: 40) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } + + // Theme Options + VStack(spacing: 0) { + ForEach(AppTheme.allCases, id: \.self) { theme in + Button { + themeManager.current = theme + } label: { + HStack { + Image(systemName: theme.icon) + .font(.system(size: 18)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 32) + + Text(themeDisplayName(theme)) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + if themeManager.current == theme { + Image(systemName: "checkmark") + .font(.system(size: 14, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + .contentShape(Rectangle()) + } + + if theme != AppTheme.allCases.last { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 24) + } + } + } + .padding(.top, 8) + + Spacer() + } + } + .navigationBarHidden(true) + .preferredColorScheme(effectiveColorScheme) + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func themeDisplayName(_ theme: AppTheme) -> String { + switch theme { + case .system: return strings.themeSystem + case .light: return strings.themeLight + case .dark: return strings.themeDark + } + } +} + +// MARK: - Edit Language View +struct EditLanguageView: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(strings.language) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + Color.clear + .frame(width: 40, height: 40) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } + + // Language Options + VStack(spacing: 0) { + ForEach(Language.allCases, id: \.self) { lang in + Button { + Language.current = lang + } label: { + HStack(spacing: 12) { + Text(lang.flag) + .font(.title2) + + Text(lang.displayName) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + if Language.current == lang { + Image(systemName: "checkmark") + .font(.system(size: 14, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + .contentShape(Rectangle()) + } + + if lang != Language.allCases.last { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 24) + } + } + } + .padding(.top, 8) + + Spacer() + } + } + .navigationBarHidden(true) + .preferredColorScheme(effectiveColorScheme) + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } } // MARK: - Edit Profile Row @@ -958,6 +1198,7 @@ struct EditProfileBadgeRow: View { struct ProfileBadge: View { let text: String var prefix: String? = nil + var icon: String? = nil var logoURL: URL? = nil var body: some View { @@ -967,6 +1208,12 @@ struct ProfileBadge: View { .font(.caption) } + if let icon { + Image(systemName: icon) + .font(.system(size: 12)) + .foregroundColor(.appForegroundAdaptive) + } + if let logoURL { CachedAsyncImage(url: logoURL) { image in image @@ -1747,139 +1994,6 @@ struct EditFieldView: View { } } -// MARK: - Settings Sheet -struct SettingsSheet: View { - @Environment(\.colorScheme) private var systemColorScheme - @ObservedObject private var themeManager = ThemeManager.shared - @State private var strings = L10n.current - - private var effectiveColorScheme: ColorScheme { - themeManager.current.colorScheme ?? systemColorScheme - } - - var body: some View { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - VStack(spacing: 32) { - Text(strings.settings) - .font(.title3.bold()) - .foregroundColor(.appForegroundAdaptive) - .padding(.top, 8) - - // Theme Picker - VStack(alignment: .leading, spacing: 12) { - Text(strings.theme) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appForegroundAdaptive) - - HStack(spacing: 12) { - ForEach(AppTheme.allCases, id: \.self) { theme in - ThemeOptionButton( - theme: theme, - isSelected: themeManager.current == theme, - label: themeDisplayName(theme) - ) { - themeManager.current = theme - } - } - } - } - - // Language Picker - VStack(alignment: .leading, spacing: 12) { - Text(strings.language) - .font(.subheadline.weight(.medium)) - .foregroundColor(.appForegroundAdaptive) - - Menu { - ForEach(Language.allCases, id: \.self) { lang in - Button { - Language.current = lang - } label: { - HStack { - Text(lang.displayName) - if Language.current == lang { - Image(systemName: "checkmark") - } - } - } - } - } label: { - HStack { - Text(Language.current.displayName) - Spacer() - Image(systemName: "chevron.down") - } - .padding(12) - .foregroundColor(.appForegroundAdaptive) - .background(Color.appInputFilled) - .clipShape(RoundedRectangle(cornerRadius: 12)) - } - } - - Spacer() - - // Sign Out Button - Button { - AuthService.shared.signOut() - } label: { - HStack(spacing: 8) { - Image(systemName: "rectangle.portrait.and.arrow.right") - Text(strings.signOut) - } - .font(.subheadline.weight(.medium)) - .foregroundColor(.appDestructive) - .frame(maxWidth: .infinity) - .padding(.vertical, 14) - .background(Color.appDestructive.opacity(0.1)) - .cornerRadius(12) - } - } - .padding(.horizontal, 24) - .padding(.top, 16) - .padding(.bottom, 24) - } - .preferredColorScheme(effectiveColorScheme) - .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in - strings = L10n.current - } - } - - private func themeDisplayName(_ theme: AppTheme) -> String { - switch theme { - case .system: return strings.themeSystem - case .light: return strings.themeLight - case .dark: return strings.themeDark - } - } -} - -// MARK: - Theme Option Button -struct ThemeOptionButton: View { - let theme: AppTheme - let isSelected: Bool - let label: String - let action: () -> Void - - var body: some View { - Button(action: action) { - VStack(spacing: 8) { - Image(systemName: theme.icon) - .font(.system(size: 20)) - - Text(label) - .font(.caption) - } - .frame(maxWidth: .infinity) - .padding(.vertical, 16) - .foregroundColor(isSelected ? .appForegroundAdaptive : .appMutedForegroundAdaptive) - .background(isSelected ? Color.appInputFilled : Color.clear) - .clipShape(RoundedRectangle(cornerRadius: 12)) - } - } -} - #Preview { ProfileTabView() } From 1ae7baf191f20833ccef4f06928fdcd45bc88610 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 13:26:35 -0300 Subject: [PATCH 52/77] feat(profile): add biography feature to user profile; implement EditBiographyView for editing and saving user biography, enhance ProfileTabView with biography display and layout adjustments --- .../Plotwist/Localization/Strings.swift | 31 ++- .../Plotwist/Plotwist/Utils/Constants.swift | 2 +- .../Views/Details/MediaDetailView.swift | 6 +- .../Plotwist/Views/Home/ProfileTabView.swift | 177 +++++++++++++++++- 4 files changed, 200 insertions(+), 16 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index fff852a0..f7865915 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -144,7 +144,9 @@ enum L10n { resultsBasedOnPreferences: "Results based on your preferences", collection: "Collection", reviews: "Reviews", - soundtracks: "Soundtracks" + soundtracks: "Soundtracks", + biography: "Biography", + biographyPlaceholder: "Tell us about yourself..." ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -270,7 +272,9 @@ enum L10n { resultsBasedOnPreferences: "Resultados baseados nas suas preferências", collection: "Coleção", reviews: "Reviews", - soundtracks: "Trilhas" + soundtracks: "Trilhas", + biography: "Biografia", + biographyPlaceholder: "Conte um pouco sobre você..." ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -396,7 +400,9 @@ enum L10n { resultsBasedOnPreferences: "Resultados según tus preferencias", collection: "Colección", reviews: "Reseñas", - soundtracks: "Bandas Sonoras" + soundtracks: "Bandas Sonoras", + biography: "Biografía", + biographyPlaceholder: "Cuéntanos sobre ti..." ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -522,7 +528,9 @@ enum L10n { resultsBasedOnPreferences: "Résultats basés sur vos préférences", collection: "Collection", reviews: "Critiques", - soundtracks: "Bandes Sonores" + soundtracks: "Bandes Sonores", + biography: "Biographie", + biographyPlaceholder: "Parlez-nous de vous..." ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -648,7 +656,9 @@ enum L10n { resultsBasedOnPreferences: "Ergebnisse basierend auf Ihren Präferenzen", collection: "Sammlung", reviews: "Bewertungen", - soundtracks: "Soundtracks" + soundtracks: "Soundtracks", + biography: "Biografie", + biographyPlaceholder: "Erzählen Sie uns von sich..." ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -774,7 +784,9 @@ enum L10n { resultsBasedOnPreferences: "Risultati basati sulle tue preferenze", collection: "Collezione", reviews: "Recensioni", - soundtracks: "Colonne Sonore" + soundtracks: "Colonne Sonore", + biography: "Biografia", + biographyPlaceholder: "Raccontaci di te..." ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -899,7 +911,9 @@ enum L10n { resultsBasedOnPreferences: "設定に基づいた結果", collection: "コレクション", reviews: "レビュー", - soundtracks: "サウンドトラック" + soundtracks: "サウンドトラック", + biography: "自己紹介", + biographyPlaceholder: "自己紹介を書いてください..." ), ] } @@ -1045,4 +1059,7 @@ struct Strings { let reviews: String // Tab Bar let soundtracks: String + // Biography + let biography: String + let biographyPlaceholder: String } diff --git a/apps/ios/Plotwist/Plotwist/Utils/Constants.swift b/apps/ios/Plotwist/Plotwist/Utils/Constants.swift index 78331f89..36ba6df2 100644 --- a/apps/ios/Plotwist/Plotwist/Utils/Constants.swift +++ b/apps/ios/Plotwist/Plotwist/Utils/Constants.swift @@ -6,5 +6,5 @@ import Foundation enum API { - static let baseURL = "https://backend.plotwist.app" + static let baseURL = "http://localhost:3333" } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 61805d62..a8a8f753 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -298,7 +298,7 @@ struct MediaDetailView: View { isLoadingUserReview = true isLoadingUserItem = true } - + await loadDetails() await loadImages() if AuthService.shared.isAuthenticated { @@ -347,7 +347,7 @@ struct MediaDetailView: View { private func loadUserReview() async { isLoadingUserReview = true defer { isLoadingUserReview = false } - + do { userReview = try await ReviewService.shared.getUserReview( tmdbId: mediaId, @@ -361,7 +361,7 @@ struct MediaDetailView: View { private func loadUserItem() async { isLoadingUserItem = true defer { isLoadingUserItem = false } - + do { userItem = try await UserItemService.shared.getUserItem( tmdbId: mediaId, diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 6102958e..03d63e1d 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -161,11 +161,15 @@ struct ProfileTabView: View { // Biography if let biography = user.biography, !biography.isEmpty { - Text(biography) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .lineSpacing(4) - .padding(.horizontal, 24) + HStack { + Text(biography) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .lineSpacing(4) + .multilineTextAlignment(.leading) + Spacer(minLength: 0) + } + .padding(.horizontal, 24) } // Main Tabs (Collection / Reviews) @@ -773,6 +777,20 @@ struct EditProfileView: View { ) } + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(height: 1) + .padding(.leading, 24) + + // Biography Field + NavigationLink(destination: EditBiographyView(currentBiography: user.biography)) { + EditProfileRow( + label: strings.biography, + value: user.biography ?? strings.notSet, + labelWidth: labelWidth + ) + } + Rectangle() .fill(Color.appBorderAdaptive.opacity(0.3)) .frame(height: 1) @@ -1487,6 +1505,155 @@ struct EditUsernameView: View { } } +// MARK: - Edit Biography View +struct EditBiographyView: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + @State private var biography: String + @State private var isLoading = false + @State private var error: String? + + let currentBiography: String? + + init(currentBiography: String?) { + self.currentBiography = currentBiography + _biography = State(initialValue: currentBiography ?? "") + } + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + private var hasChanges: Bool { + biography != (currentBiography ?? "") + } + + private var canSave: Bool { + hasChanges + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header with back button, title, and Done button + VStack(spacing: 0) { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appInputFilled) + .clipShape(Circle()) + } + + Spacer() + + Text(strings.biography) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + // Save Button (Primary) + Button { + Task { await saveBiography() } + } label: { + if isLoading { + ProgressView() + .tint(.appBackgroundAdaptive) + .frame(width: 40, height: 40) + .background(Color.appForegroundAdaptive) + .clipShape(Circle()) + } else { + Image(systemName: "checkmark") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor( + canSave ? .appBackgroundAdaptive : .appMutedForegroundAdaptive + ) + .frame(width: 40, height: 40) + .background(canSave ? Color.appForegroundAdaptive : Color.clear) + .clipShape(Circle()) + } + } + .disabled(!canSave || isLoading) + } + .padding(.horizontal, 24) + .padding(.vertical, 16) + + // Border bottom + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + } + + // Content + VStack(alignment: .leading, spacing: 8) { + Text(strings.biography) + .font(.subheadline.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + + TextEditor(text: $biography) + .frame(minHeight: 120, maxHeight: 200) + .padding(12) + .multilineTextAlignment(.leading) + .scrollContentBackground(.hidden) + .background(Color.appInputFilled) + .cornerRadius(12) + .overlay( + Group { + if biography.isEmpty { + Text(strings.biographyPlaceholder) + .font(.body) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 16) + .padding(.vertical, 20) + .allowsHitTesting(false) + } + }, + alignment: .topLeading + ) + + if let error { + Text(error) + .font(.caption) + .foregroundColor(.appDestructive) + } + + Spacer() + } + .padding(.horizontal, 24) + .padding(.top, 24) + } + } + .navigationBarHidden(true) + .preferredColorScheme(effectiveColorScheme) + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + } + + private func saveBiography() async { + error = nil + isLoading = true + defer { isLoading = false } + + do { + _ = try await AuthService.shared.updateUser(biography: biography) + NotificationCenter.default.post(name: .profileUpdated, object: nil) + dismiss() + } catch { + self.error = error.localizedDescription + } + } +} + // MARK: - Edit Region View struct EditRegionView: View { @Environment(\.dismiss) private var dismiss From c94acfe3279c8a206f23f5a873428ac4a999e4b7 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 13:32:26 -0300 Subject: [PATCH 53/77] feat(review): add user reviews count functionality; implement getUserReviewsCount method in ReviewService and integrate it into ProfileTabView for displaying total reviews count --- .../Plotwist/Services/ReviewService.swift | 22 ++++++ .../Plotwist/Views/Home/ProfileTabView.swift | 76 ++++++++++++++----- 2 files changed, 81 insertions(+), 17 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift b/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift index bed73228..38093327 100644 --- a/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/ReviewService.swift @@ -225,6 +225,24 @@ class ReviewService { ) } + // MARK: - Get User Reviews Count + func getUserReviewsCount(userId: String) async throws -> Int { + guard let url = URL(string: "\(API.baseURL)/user/\(userId)/reviews-count") else { + throw ReviewError.invalidURL + } + + let (data, response) = try await URLSession.shared.data(from: url) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw ReviewError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let result = try decoder.decode(ReviewsCountResponse.self, from: data) + return result.reviewsCount + } + // MARK: - Get Reviews List func getReviews( tmdbId: Int, @@ -291,6 +309,10 @@ struct ReviewResponse: Codable { let review: Review? } +struct ReviewsCountResponse: Codable { + let reviewsCount: Int +} + struct ReviewUser: Codable { let id: String let username: String diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 03d63e1d..fb25d466 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -52,6 +52,7 @@ struct ProfileTabView: View { @State private var userItems: [UserItemSummary] = [] @State private var isLoadingItems = false @State private var totalCollectionCount: Int = 0 + @State private var totalReviewsCount: Int = 0 @State private var scrollOffset: CGFloat = 0 @State private var initialScrollOffset: CGFloat? = nil @ObservedObject private var themeManager = ThemeManager.shared @@ -176,7 +177,8 @@ struct ProfileTabView: View { ProfileMainTabs( selectedTab: $selectedMainTab, strings: strings, - collectionCount: totalCollectionCount + collectionCount: totalCollectionCount, + reviewsCount: totalReviewsCount ) .padding(.top, 20) .padding(.bottom, 8) @@ -318,6 +320,7 @@ struct ProfileTabView: View { await loadUser() await loadUserItems() await loadTotalCollectionCount() + await loadTotalReviewsCount() } .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current @@ -402,6 +405,18 @@ struct ProfileTabView: View { totalCollectionCount = 0 } } + + private func loadTotalReviewsCount() async { + guard let userId = user?.id else { return } + + do { + let count = try await ReviewService.shared.getUserReviewsCount(userId: userId) + totalReviewsCount = count + } catch { + print("Error loading reviews count: \(error)") + totalReviewsCount = 0 + } + } } // MARK: - Profile Main Tabs (Collection / Reviews) @@ -409,12 +424,21 @@ struct ProfileMainTabs: View { @Binding var selectedTab: ProfileMainTab let strings: Strings var collectionCount: Int = 0 + var reviewsCount: Int = 0 + @Namespace private var tabNamespace + + private func badgeCount(for tab: ProfileMainTab) -> Int { + switch tab { + case .collection: return collectionCount + case .reviews: return reviewsCount + } + } var body: some View { HStack(spacing: 0) { ForEach(ProfileMainTab.allCases, id: \.self) { tab in Button { - withAnimation(.easeInOut(duration: 0.2)) { + withAnimation(.spring(response: 0.35, dampingFraction: 0.8)) { selectedTab = tab } } label: { @@ -428,15 +452,32 @@ struct ProfileMainTabs: View { : .appMutedForegroundAdaptive ) - // Badge for collection count - if tab == .collection && collectionCount > 0 { - CollectionCountBadge(count: collectionCount) + // Animated badge + if badgeCount(for: tab) > 0 { + if selectedTab == tab { + CollectionCountBadge(count: badgeCount(for: tab)) + .transition(.asymmetric( + insertion: .move(edge: .leading).combined(with: .opacity), + removal: .scale(scale: 0.8).combined(with: .opacity) + )) + .animation(.easeOut(duration: 0.15), value: selectedTab) + } } } - Rectangle() - .fill(selectedTab == tab ? Color.appForegroundAdaptive : Color.clear) - .frame(height: 3) + // Sliding indicator + ZStack { + Rectangle() + .fill(Color.clear) + .frame(height: 3) + + if selectedTab == tab { + Rectangle() + .fill(Color.appForegroundAdaptive) + .frame(height: 3) + .matchedGeometryEffect(id: "tabIndicator", in: tabNamespace) + } + } } } .buttonStyle(.plain) @@ -460,18 +501,19 @@ struct CollectionCountBadge: View { var body: some View { Text("\(count)") - .font(.caption2.weight(.semibold)) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.horizontal, 6) - .padding(.vertical, 2) - .background(Color.appInputFilled) + .font(.system(size: 10, weight: .semibold)) + .foregroundColor(colorScheme == .dark ? .white : .appForegroundAdaptive) + .padding(.horizontal, 8) + .padding(.vertical, 3) + .background( + colorScheme == .dark + ? Color(hex: "0a0a0f") + : Color(hex: "f5f5f5") + ) .clipShape(Capsule()) .overlay( Capsule() - .stroke( - colorScheme == .dark ? Color.appBorderAdaptive : Color.clear, - lineWidth: 1 - ) + .stroke(Color.appBorderAdaptive, lineWidth: 1) ) } } From 3a449e5bfccf9f2ba8a3137fb9cf1de69cc60b7f Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 13:53:57 -0300 Subject: [PATCH 54/77] feat(home): enhance HomeTabView with greeting messages based on time of day; implement localized strings for greetings and add navigation to profile; refactor category tab handling for improved UI consistency --- .../Plotwist/Localization/Strings.swift | 62 ++- .../Plotwist/Services/AuthService.swift | 1 + .../Views/Home/CategoryListView.swift | 78 +++- .../Plotwist/Views/Home/HomeTabView.swift | 391 +++++++++++++++++- .../Plotwist/Views/Home/HomeView.swift | 3 + .../Plotwist/Views/Home/ProfileTabView.swift | 8 +- 6 files changed, 518 insertions(+), 25 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index f7865915..601a80f9 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -146,7 +146,13 @@ enum L10n { reviews: "Reviews", soundtracks: "Soundtracks", biography: "Biography", - biographyPlaceholder: "Tell us about yourself..." + biographyPlaceholder: "Tell us about yourself...", + // Home + goodMorning: "Good morning", + goodAfternoon: "Good afternoon", + goodEvening: "Good evening", + continueWatching: "Continue Watching", + upNext: "Up Next" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -274,7 +280,13 @@ enum L10n { reviews: "Reviews", soundtracks: "Trilhas", biography: "Biografia", - biographyPlaceholder: "Conte um pouco sobre você..." + biographyPlaceholder: "Conte um pouco sobre você...", + // Home + goodMorning: "Bom dia", + goodAfternoon: "Boa tarde", + goodEvening: "Boa noite", + continueWatching: "Continuar Assistindo", + upNext: "Para Assistir" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -402,7 +414,13 @@ enum L10n { reviews: "Reseñas", soundtracks: "Bandas Sonoras", biography: "Biografía", - biographyPlaceholder: "Cuéntanos sobre ti..." + biographyPlaceholder: "Cuéntanos sobre ti...", + // Home + goodMorning: "Buenos días", + goodAfternoon: "Buenas tardes", + goodEvening: "Buenas noches", + continueWatching: "Seguir Viendo", + upNext: "Próximos" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -530,7 +548,13 @@ enum L10n { reviews: "Critiques", soundtracks: "Bandes Sonores", biography: "Biographie", - biographyPlaceholder: "Parlez-nous de vous..." + biographyPlaceholder: "Parlez-nous de vous...", + // Home + goodMorning: "Bonjour", + goodAfternoon: "Bon après-midi", + goodEvening: "Bonsoir", + continueWatching: "Continuer à Regarder", + upNext: "À Suivre" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -658,7 +682,13 @@ enum L10n { reviews: "Bewertungen", soundtracks: "Soundtracks", biography: "Biografie", - biographyPlaceholder: "Erzählen Sie uns von sich..." + biographyPlaceholder: "Erzählen Sie uns von sich...", + // Home + goodMorning: "Guten Morgen", + goodAfternoon: "Guten Tag", + goodEvening: "Guten Abend", + continueWatching: "Weiterschauen", + upNext: "Als Nächstes" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -786,7 +816,13 @@ enum L10n { reviews: "Recensioni", soundtracks: "Colonne Sonore", biography: "Biografia", - biographyPlaceholder: "Raccontaci di te..." + biographyPlaceholder: "Raccontaci di te...", + // Home + goodMorning: "Buongiorno", + goodAfternoon: "Buon pomeriggio", + goodEvening: "Buonasera", + continueWatching: "Continua a Guardare", + upNext: "Prossimi" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -913,7 +949,13 @@ enum L10n { reviews: "レビュー", soundtracks: "サウンドトラック", biography: "自己紹介", - biographyPlaceholder: "自己紹介を書いてください..." + biographyPlaceholder: "自己紹介を書いてください...", + // Home + goodMorning: "おはようございます", + goodAfternoon: "こんにちは", + goodEvening: "こんばんは", + continueWatching: "視聴を続ける", + upNext: "次に見る" ), ] } @@ -1062,4 +1104,10 @@ struct Strings { // Biography let biography: String let biographyPlaceholder: String + // Home + let goodMorning: String + let goodAfternoon: String + let goodEvening: String + let continueWatching: String + let upNext: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift index c65e7bf9..d9eb9595 100644 --- a/apps/ios/Plotwist/Plotwist/Services/AuthService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/AuthService.swift @@ -377,4 +377,5 @@ extension Notification.Name { static let authChanged = Notification.Name("authChanged") static let profileUpdated = Notification.Name("profileUpdated") static let navigateToSearch = Notification.Name("navigateToSearch") + static let navigateToProfile = Notification.Name("navigateToProfile") } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift index 04cc448c..4a1e2713 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/CategoryListView.swift @@ -5,8 +5,14 @@ import SwiftUI +// MARK: - Category Tab Protocol +protocol CategoryTab: Hashable, CaseIterable { + var title: String { get } + var isDisabled: Bool { get } +} + // MARK: - Movie Subcategory -enum MovieSubcategory: CaseIterable, SegmentedTab { +enum MovieSubcategory: CaseIterable, CategoryTab { case popular case nowPlaying case topRated @@ -30,7 +36,7 @@ enum MovieSubcategory: CaseIterable, SegmentedTab { } // MARK: - TV Series Subcategory -enum TVSeriesSubcategory: CaseIterable, SegmentedTab { +enum TVSeriesSubcategory: CaseIterable, CategoryTab { case popular case airingToday case onTheAir @@ -54,7 +60,7 @@ enum TVSeriesSubcategory: CaseIterable, SegmentedTab { } // MARK: - Anime Type -enum AnimeType: CaseIterable, SegmentedTab { +enum AnimeType: CaseIterable, CategoryTab { case tvSeries case movies @@ -71,6 +77,66 @@ enum AnimeType: CaseIterable, SegmentedTab { } } +// MARK: - Category Tabs View (same style as Profile tabs) +struct CategoryTabsView: View where Tab.AllCases: RandomAccessCollection { + @Binding var selectedTab: Tab + var onTabChange: (() -> Void)? + @Namespace private var tabNamespace + + var body: some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 0) { + ForEach(Array(Tab.allCases), id: \.self) { tab in + Button { + if !tab.isDisabled { + withAnimation(.spring(response: 0.35, dampingFraction: 0.8)) { + selectedTab = tab + } + onTabChange?() + } + } label: { + VStack(spacing: 8) { + Text(tab.title) + .font(.subheadline.weight(.medium)) + .foregroundColor( + tab.isDisabled + ? .appMutedForegroundAdaptive.opacity(0.5) + : (selectedTab == tab + ? .appForegroundAdaptive + : .appMutedForegroundAdaptive) + ) + .padding(.horizontal, 16) + + // Sliding indicator + ZStack { + Rectangle() + .fill(Color.clear) + .frame(height: 3) + + if selectedTab == tab { + Rectangle() + .fill(Color.appForegroundAdaptive) + .frame(height: 3) + .matchedGeometryEffect(id: "categoryTabIndicator", in: tabNamespace) + } + } + } + } + .buttonStyle(.plain) + .disabled(tab.isDisabled) + } + } + .padding(.horizontal, 8) + } + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1), + alignment: .bottom + ) + } +} + struct CategoryListView: View { let categoryType: HomeCategoryType var initialMovieSubcategory: MovieSubcategory? @@ -152,7 +218,7 @@ struct CategoryListView: View { // Tabs in header if categoryType == .movies { - UnderlineTabBar( + CategoryTabsView( selectedTab: $selectedMovieSubcategory, onTabChange: { Task { @@ -161,7 +227,7 @@ struct CategoryListView: View { } ) } else if categoryType == .tvSeries { - UnderlineTabBar( + CategoryTabsView( selectedTab: $selectedTVSeriesSubcategory, onTabChange: { Task { @@ -170,7 +236,7 @@ struct CategoryListView: View { } ) } else if categoryType == .animes { - UnderlineTabBar( + CategoryTabsView( selectedTab: $selectedAnimeType, onTabChange: { Task { diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift index c3b08631..26b95840 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift @@ -6,24 +6,399 @@ import SwiftUI struct HomeTabView: View { + @Environment(\.colorScheme) private var systemColorScheme + @ObservedObject private var themeManager = ThemeManager.shared + @State private var strings = L10n.current + @State private var user: User? + @State private var watchingItems: [SearchResult] = [] + @State private var watchlistItems: [SearchResult] = [] + @State private var isLoadingUser = true + @State private var isLoadingWatching = true + @State private var isLoadingWatchlist = true + @State private var needsRefresh = false + + private var effectiveColorScheme: ColorScheme { + themeManager.current.colorScheme ?? systemColorScheme + } + + private var greeting: String { + let hour = Calendar.current.component(.hour, from: Date()) + if hour >= 5 && hour < 12 { + return strings.goodMorning + } else if hour >= 12 && hour < 18 { + return strings.goodAfternoon + } else { + return strings.goodEvening + } + } + var body: some View { NavigationView { ZStack { Color.appBackgroundAdaptive.ignoresSafeArea() - VStack(spacing: 24) { - Spacer() + ScrollView(showsIndicators: false) { + VStack(alignment: .leading, spacing: 24) { + // Header with greeting + HomeHeaderView( + greeting: greeting, + username: user?.username, + avatarURL: user?.avatarImageURL, + isLoading: isLoadingUser, + onAvatarTapped: { + NotificationCenter.default.post(name: .navigateToProfile, object: nil) + } + ) + .padding(.horizontal, 24) + .padding(.top, 16) - Image("logo-white") - .resizable() - .scaledToFit() - .frame(width: 120, height: 120) - .opacity(0.3) + // Continue Watching Section + if !watchingItems.isEmpty { + ContinueWatchingSection( + items: watchingItems, + title: strings.continueWatching + ) + } else if isLoadingWatching { + HomeSectionSkeleton() + } - Spacer() + // Watchlist Section + if !watchlistItems.isEmpty { + WatchlistSection( + items: watchlistItems, + title: strings.upNext + ) + } else if isLoadingWatchlist { + HomeSectionSkeleton() + } + + Spacer(minLength: 100) + } } } .navigationBarHidden(true) + .preferredColorScheme(effectiveColorScheme) + .onAppear { + // Refresh when returning to view if needed + if needsRefresh { + needsRefresh = false + Task { + await loadWatchingItems() + await loadWatchlistItems() + } + } + } + } + .task { + await loadData() + } + .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in + strings = L10n.current + } + .onReceive(NotificationCenter.default.publisher(for: .profileUpdated)) { _ in + Task { await loadUser() } + } + .onReceive(NotificationCenter.default.publisher(for: .collectionCacheInvalidated)) { _ in + // Mark for refresh instead of immediately reloading + // This prevents navigation issues when the list changes while navigated + needsRefresh = true + } + } + + private func loadData() async { + await withTaskGroup(of: Void.self) { group in + group.addTask { await loadUser() } + group.addTask { await loadWatchingItems() } + group.addTask { await loadWatchlistItems() } + } + } + + @MainActor + private func loadUser() async { + isLoadingUser = true + defer { isLoadingUser = false } + + guard AuthService.shared.isAuthenticated else { return } + + do { + user = try await AuthService.shared.getCurrentUser() + } catch { + print("Error loading user: \(error)") + } + } + + @MainActor + private func loadWatchingItems() async { + isLoadingWatching = true + defer { isLoadingWatching = false } + + guard AuthService.shared.isAuthenticated else { return } + + let fetchedUser = try? await AuthService.shared.getCurrentUser() + guard let currentUser = user ?? fetchedUser else { return } + + do { + let items = try await UserItemService.shared.getAllUserItems( + userId: currentUser.id, + status: UserItemStatus.watching.rawValue + ) + + // Fetch details for each item from TMDB + var results: [SearchResult] = [] + for item in items.prefix(10) { + do { + if item.mediaType == "MOVIE" { + let details = try await TMDBService.shared.getMovieDetails( + id: item.tmdbId, + language: Language.current.rawValue + ) + results.append( + SearchResult( + id: details.id, + mediaType: "movie", + title: details.title, + name: details.name, + posterPath: details.posterPath, + profilePath: nil, + releaseDate: details.releaseDate, + firstAirDate: details.firstAirDate, + overview: details.overview, + voteAverage: details.voteAverage, + knownForDepartment: nil + )) + } else { + let details = try await TMDBService.shared.getTVSeriesDetails( + id: item.tmdbId, + language: Language.current.rawValue + ) + results.append( + SearchResult( + id: details.id, + mediaType: "tv", + title: details.title, + name: details.name, + posterPath: details.posterPath, + profilePath: nil, + releaseDate: details.releaseDate, + firstAirDate: details.firstAirDate, + overview: details.overview, + voteAverage: details.voteAverage, + knownForDepartment: nil + )) + } + } catch { + print("Error fetching details for \(item.tmdbId): \(error)") + } + } + + watchingItems = results + } catch { + print("Error loading watching items: \(error)") + } + } + + @MainActor + private func loadWatchlistItems() async { + isLoadingWatchlist = true + defer { isLoadingWatchlist = false } + + guard AuthService.shared.isAuthenticated else { return } + + let fetchedUser = try? await AuthService.shared.getCurrentUser() + guard let currentUser = user ?? fetchedUser else { return } + + do { + let items = try await UserItemService.shared.getAllUserItems( + userId: currentUser.id, + status: UserItemStatus.watchlist.rawValue + ) + + // Fetch details for each item from TMDB + var results: [SearchResult] = [] + for item in items.prefix(10) { + do { + if item.mediaType == "MOVIE" { + let details = try await TMDBService.shared.getMovieDetails( + id: item.tmdbId, + language: Language.current.rawValue + ) + results.append( + SearchResult( + id: details.id, + mediaType: "movie", + title: details.title, + name: details.name, + posterPath: details.posterPath, + profilePath: nil, + releaseDate: details.releaseDate, + firstAirDate: details.firstAirDate, + overview: details.overview, + voteAverage: details.voteAverage, + knownForDepartment: nil + )) + } else { + let details = try await TMDBService.shared.getTVSeriesDetails( + id: item.tmdbId, + language: Language.current.rawValue + ) + results.append( + SearchResult( + id: details.id, + mediaType: "tv", + title: details.title, + name: details.name, + posterPath: details.posterPath, + profilePath: nil, + releaseDate: details.releaseDate, + firstAirDate: details.firstAirDate, + overview: details.overview, + voteAverage: details.voteAverage, + knownForDepartment: nil + )) + } + } catch { + print("Error fetching details for \(item.tmdbId): \(error)") + } + } + + watchlistItems = results + } catch { + print("Error loading watchlist items: \(error)") + } + } +} + +// MARK: - Home Header View +struct HomeHeaderView: View { + let greeting: String + let username: String? + let avatarURL: URL? + let isLoading: Bool + var onAvatarTapped: (() -> Void)? + + var body: some View { + HStack(spacing: 16) { + if isLoading { + HStack(spacing: 0) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 180, height: 24) + } + } else if let username { + Text("\(greeting), ") + .font(.title2.bold()) + .foregroundColor(.appForegroundAdaptive) + + Text("@\(username)") + .font(.title2.bold()) + .foregroundColor(.appMutedForegroundAdaptive) + } else { + Text(greeting) + .font(.title2.bold()) + .foregroundColor(.appForegroundAdaptive) + } + + Spacer() + + if isLoading { + Circle() + .fill(Color.appSkeletonAdaptive) + .frame(width: 44, height: 44) + } else { + Button { + onAvatarTapped?() + } label: { + ProfileAvatar(avatarURL: avatarURL, username: username ?? "", size: 44) + } + .buttonStyle(.plain) + } + } + } +} + +// MARK: - Home Section Card +struct HomeSectionCard: View { + let item: SearchResult + + var body: some View { + CachedAsyncImage(url: item.imageURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + } + .frame(width: 120, height: 180) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterBorder(cornerRadius: 12) + .posterShadow() + } +} + +// MARK: - Continue Watching Section +struct ContinueWatchingSection: View { + let items: [SearchResult] + let title: String + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + Text(title) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + .padding(.horizontal, 24) + + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(items) { item in + NavigationLink { + MediaDetailView( + mediaId: item.id, + mediaType: item.mediaType ?? "movie" + ) + } label: { + HomeSectionCard(item: item) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 4) + } + .scrollClipDisabled() + } + } +} + +// MARK: - Watchlist Section +struct WatchlistSection: View { + let items: [SearchResult] + let title: String + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + Text(title) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + .padding(.horizontal, 24) + + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(items) { item in + NavigationLink { + MediaDetailView( + mediaId: item.id, + mediaType: item.mediaType ?? "movie" + ) + } label: { + HomeSectionCard(item: item) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 4) + } + .scrollClipDisabled() } } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift index a6379a9c..299a16ca 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeView.swift @@ -39,6 +39,9 @@ struct HomeView: View { .onReceive(NotificationCenter.default.publisher(for: .navigateToSearch)) { _ in selectedTab = 1 } + .onReceive(NotificationCenter.default.publisher(for: .navigateToProfile)) { _ in + selectedTab = 2 + } .onAppear { let appearance = UITabBarAppearance() appearance.configureWithOpaqueBackground() diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index fb25d466..86ca241b 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -702,7 +702,7 @@ struct EditProfileView: View { private var currentRegionName: String { guard let region = userPreferences?.watchRegion else { - return strings.notSet + return "-" } return regionName(for: region) } @@ -828,7 +828,7 @@ struct EditProfileView: View { NavigationLink(destination: EditBiographyView(currentBiography: user.biography)) { EditProfileRow( label: strings.biography, - value: user.biography ?? strings.notSet, + value: user.biography?.isEmpty == false ? user.biography! : "-", labelWidth: labelWidth ) } @@ -849,7 +849,7 @@ struct EditProfileView: View { prefix: currentRegionFlag ) } else { - Text(strings.notSet) + Text("-") .font(.subheadline) .foregroundColor(.appMutedForegroundAdaptive) } @@ -871,7 +871,7 @@ struct EditProfileView: View { ) { EditProfileBadgeRow(label: strings.streamingServices) { if selectedProviders.isEmpty { - Text(strings.notSet) + Text("-") .font(.subheadline) .foregroundColor(.appMutedForegroundAdaptive) } else { From 16445792e848c67cdc8b11105795968ab381d99f Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 14:54:53 -0300 Subject: [PATCH 55/77] feat(collection): implement movie collection feature; add collection details fetching in TMDBService, enhance MediaDetailView to display collection information, and create new views for collection presentation --- .../Plotwist/Localization/Strings.swift | 38 +++- .../Plotwist/Services/TMDBService.swift | 67 +++++++ .../Plotwist/Plotwist/Utils/Constants.swift | 2 +- .../Views/Details/MediaDetailView.swift | 55 ++++++ .../Views/Details/MovieCollectionViews.swift | 186 ++++++++++++++++++ .../Plotwist/Views/Home/ProfileTabView.swift | 16 +- 6 files changed, 347 insertions(+), 17 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/MovieCollectionViews.swift diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 601a80f9..0445ec47 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -152,7 +152,10 @@ enum L10n { goodAfternoon: "Good afternoon", goodEvening: "Good evening", continueWatching: "Continue Watching", - upNext: "Up Next" + upNext: "Up Next", + // Collection + partOf: "Part of", + seeCollection: "See Collection" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -286,7 +289,10 @@ enum L10n { goodAfternoon: "Boa tarde", goodEvening: "Boa noite", continueWatching: "Continuar Assistindo", - upNext: "Para Assistir" + upNext: "Para Assistir", + // Collection + partOf: "Parte de", + seeCollection: "Ver Coleção" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -420,7 +426,10 @@ enum L10n { goodAfternoon: "Buenas tardes", goodEvening: "Buenas noches", continueWatching: "Seguir Viendo", - upNext: "Próximos" + upNext: "Próximos", + // Collection + partOf: "Parte de", + seeCollection: "Ver Colección" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -554,7 +563,10 @@ enum L10n { goodAfternoon: "Bon après-midi", goodEvening: "Bonsoir", continueWatching: "Continuer à Regarder", - upNext: "À Suivre" + upNext: "À Suivre", + // Collection + partOf: "Fait partie de", + seeCollection: "Voir la Collection" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -688,7 +700,10 @@ enum L10n { goodAfternoon: "Guten Tag", goodEvening: "Guten Abend", continueWatching: "Weiterschauen", - upNext: "Als Nächstes" + upNext: "Als Nächstes", + // Collection + partOf: "Teil von", + seeCollection: "Sammlung ansehen" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -822,7 +837,10 @@ enum L10n { goodAfternoon: "Buon pomeriggio", goodEvening: "Buonasera", continueWatching: "Continua a Guardare", - upNext: "Prossimi" + upNext: "Prossimi", + // Collection + partOf: "Parte di", + seeCollection: "Vedi Collezione" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -955,7 +973,10 @@ enum L10n { goodAfternoon: "こんにちは", goodEvening: "こんばんは", continueWatching: "視聴を続ける", - upNext: "次に見る" + upNext: "次に見る", + // Collection + partOf: "の一部", + seeCollection: "コレクションを見る" ), ] } @@ -1110,4 +1131,7 @@ struct Strings { let goodEvening: String let continueWatching: String let upNext: String + // Collection + let partOf: String + let seeCollection: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index a3baa318..933da8f1 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -640,6 +640,27 @@ class TMDBService { return try decoder.decode(WatchProvidersResponse.self, from: data) } + // MARK: - Get Collection Details + func getCollectionDetails(id: Int, language: String = "en-US") async throws -> MovieCollection { + guard let url = URL(string: "\(baseURL)/collection/\(id)?language=\(language)") else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return try decoder.decode(MovieCollection.self, from: data) + } + // MARK: - Get Related Content (Recommendations) func getRelatedContent( id: Int, mediaType: String, variant: String = "recommendations", language: String = "en-US" @@ -753,6 +774,7 @@ struct MovieDetails: Codable, Identifiable { let voteAverage: Double? let runtime: Int? let genres: [Genre]? + let belongsToCollection: BelongsToCollection? var displayTitle: String { title ?? name ?? "Unknown" @@ -789,6 +811,51 @@ struct MovieDetails: Codable, Identifiable { } } +// MARK: - Belongs To Collection +struct BelongsToCollection: Codable, Identifiable { + let id: Int + let name: String + let posterPath: String? + let backdropPath: String? + + var backdropURL: URL? { + guard let backdropPath else { return nil } + return URL(string: "https://image.tmdb.org/t/p/original\(backdropPath)") + } +} + +// MARK: - Movie Collection (Detailed) +struct MovieCollection: Codable, Identifiable { + let id: Int + let name: String + let overview: String? + let posterPath: String? + let backdropPath: String? + let parts: [CollectionPart] + + var backdropURL: URL? { + guard let backdropPath else { return nil } + return URL(string: "https://image.tmdb.org/t/p/original\(backdropPath)") + } +} + +struct CollectionPart: Codable, Identifiable { + let id: Int + let title: String + let posterPath: String? + let releaseDate: String? + + var posterURL: URL? { + guard let posterPath else { return nil } + return URL(string: "https://image.tmdb.org/t/p/w500\(posterPath)") + } + + var year: String? { + guard let releaseDate, releaseDate.count >= 4 else { return nil } + return String(releaseDate.prefix(4)) + } +} + struct Genre: Codable, Identifiable { let id: Int let name: String diff --git a/apps/ios/Plotwist/Plotwist/Utils/Constants.swift b/apps/ios/Plotwist/Plotwist/Utils/Constants.swift index 36ba6df2..78331f89 100644 --- a/apps/ios/Plotwist/Plotwist/Utils/Constants.swift +++ b/apps/ios/Plotwist/Plotwist/Utils/Constants.swift @@ -6,5 +6,5 @@ import Foundation enum API { - static let baseURL = "http://localhost:3333" + static let baseURL = "https://backend.plotwist.app" } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index a8a8f753..ed7e8954 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -27,6 +27,11 @@ struct MediaDetailView: View { @State private var hasWhereToWatch = false @State private var hasRecommendations = false + // Collection state + @State private var collection: MovieCollection? + @State private var showCollectionSheet = false + @State private var selectedCollectionMovieId: Int? + // Layout constants private let cornerRadius: CGFloat = 24 private let posterOverlapOffset: CGFloat = -70 @@ -172,6 +177,17 @@ struct MediaDetailView: View { .padding(.top, 16) } + // Collection Section (only for movies that belong to a collection) + if let collection = collection { + MovieCollectionSection( + collection: collection, + onSeeCollectionTapped: { + showCollectionSheet = true + } + ) + .padding(.top, 24) + } + // Divider before first content section if hasReviews || hasWhereToWatch || hasRecommendations { Rectangle() @@ -292,6 +308,29 @@ struct MediaDetailView: View { .sheet(isPresented: $showReviewSheet) { ReviewSheet(mediaId: mediaId, mediaType: mediaType, existingReview: userReview) } + .sheet(isPresented: $showCollectionSheet) { + if let collection = collection { + MovieCollectionSheet(collection: collection) { movieId in + selectedCollectionMovieId = movieId + } + } + } + .background( + NavigationLink( + destination: Group { + if let movieId = selectedCollectionMovieId { + MediaDetailView(mediaId: movieId, mediaType: "movie") + } + }, + isActive: Binding( + get: { selectedCollectionMovieId != nil }, + set: { if !$0 { selectedCollectionMovieId = nil } } + ) + ) { + EmptyView() + } + .hidden() + ) .task { // Start loading user data states immediately if authenticated if AuthService.shared.isAuthenticated { @@ -301,6 +340,7 @@ struct MediaDetailView: View { await loadDetails() await loadImages() + await loadCollection() if AuthService.shared.isAuthenticated { await loadUserReview() await loadUserItem() @@ -403,6 +443,21 @@ struct MediaDetailView: View { } } } + + private func loadCollection() async { + // Only load collection for movies + guard mediaType == "movie" else { return } + guard let details = details, let belongsTo = details.belongsToCollection else { return } + + do { + collection = try await TMDBService.shared.getCollectionDetails( + id: belongsTo.id, + language: Language.current.rawValue + ) + } catch { + collection = nil + } + } } // MARK: - Badge View diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MovieCollectionViews.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MovieCollectionViews.swift new file mode 100644 index 00000000..c9909da8 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MovieCollectionViews.swift @@ -0,0 +1,186 @@ +// +// MovieCollectionViews.swift +// Plotwist +// + +import SwiftUI + +// MARK: - Movie Collection Section +struct MovieCollectionSection: View { + let collection: MovieCollection + let onSeeCollectionTapped: () -> Void + + private var strings: Strings { L10n.current } + + var body: some View { + GeometryReader { geometry in + ZStack(alignment: .bottomLeading) { + // Backdrop with darkened overlay + CachedAsyncImage(url: collection.backdropURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: geometry.size.width, height: geometry.size.height) + } placeholder: { + Rectangle() + .fill(Color.appBorderAdaptive) + } + .overlay( + LinearGradient( + colors: [ + Color.black.opacity(0.8), + Color.black.opacity(0.4), + Color.black.opacity(0.2), + ], + startPoint: .bottom, + endPoint: .top + ) + ) + + // Content + VStack(alignment: .leading, spacing: 12) { + VStack(alignment: .leading, spacing: 4) { + Text(strings.partOf) + .font(.caption) + .foregroundColor(.white.opacity(0.8)) + + Text(collection.name) + .font(.title3.bold()) + .foregroundColor(.white) + } + + Button { + onSeeCollectionTapped() + } label: { + Text(strings.seeCollection) + .font(.footnote.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + .padding(.horizontal, 14) + .padding(.vertical, 10) + .background(Color.appBackgroundAdaptive) + .cornerRadius(10) + } + .buttonStyle(.plain) + } + .padding(20) + } + .frame(width: geometry.size.width, height: geometry.size.height) + .clipped() + } + .frame(height: 240) + .clipShape(RoundedRectangle(cornerRadius: 16)) + .posterBorder(cornerRadius: 16) + .padding(.horizontal, 24) + } +} + +// MARK: - Movie Collection Sheet +struct MovieCollectionSheet: View { + let collection: MovieCollection + let onMovieSelected: (Int) -> Void + @Environment(\.dismiss) private var dismiss + @ObservedObject private var themeManager = ThemeManager.shared + + private let columns = [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ] + + private var sortedParts: [CollectionPart] { + collection.parts.sorted(by: { ($0.releaseDate ?? "") < ($1.releaseDate ?? "") }) + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Drag Indicator + RoundedRectangle(cornerRadius: 2.5) + .fill(Color.gray.opacity(0.4)) + .frame(width: 36, height: 5) + .padding(.top, 12) + .padding(.bottom, 8) + + ScrollView { + VStack(alignment: .leading, spacing: 8) { + // Title + Text(collection.name) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + .frame(maxWidth: .infinity, alignment: .center) + .padding(.top, 4) + + // Collection overview if available + if let overview = collection.overview, !overview.isEmpty { + Text(overview) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 24) + .padding(.top, 8) + } + + // Movies grid - using regular VStack + HStack for eager loading + VStack(spacing: 12) { + ForEach(0..<(sortedParts.count + 2) / 3, id: \.self) { rowIndex in + HStack(spacing: 12) { + ForEach(0..<3) { colIndex in + let index = rowIndex * 3 + colIndex + if index < sortedParts.count { + let movie = sortedParts[index] + Button { + dismiss() + DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { + onMovieSelected(movie.id) + } + } label: { + CollectionPosterCard(movie: movie) + } + .buttonStyle(.plain) + } else { + // Empty space for incomplete rows + Color.clear + .aspectRatio(2 / 3, contentMode: .fill) + } + } + } + } + } + .padding(.horizontal, 24) + .padding(.top, 16) + } + .padding(.bottom, 24) + } + } + } + .presentationDetents([.medium, .large]) + .presentationCornerRadius(24) + .presentationDragIndicator(.hidden) + .preferredColorScheme(themeManager.current.colorScheme) + } +} + +// MARK: - Collection Poster Card +struct CollectionPosterCard: View { + let movie: CollectionPart + + var body: some View { + CachedAsyncImage(url: movie.posterURL) { image in + image + .resizable() + .aspectRatio(2 / 3, contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 8) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fill) + .overlay( + ProgressView() + .scaleEffect(0.7) + ) + } + .clipShape(RoundedRectangle(cornerRadius: 8)) + .posterBorder(cornerRadius: 8) + .posterShadow() + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 86ca241b..f2240b4c 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -162,15 +162,13 @@ struct ProfileTabView: View { // Biography if let biography = user.biography, !biography.isEmpty { - HStack { - Text(biography) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .lineSpacing(4) - .multilineTextAlignment(.leading) - Spacer(minLength: 0) - } - .padding(.horizontal, 24) + Text(biography) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .lineSpacing(4) + .multilineTextAlignment(.leading) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) } // Main Tabs (Collection / Reviews) From 67894152770c0c89c1dc8de0e2cb4438dc0c87e3 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 15:03:27 -0300 Subject: [PATCH 56/77] refactor(profile-tab): improve transition animation for badge count and align text in EditProfileRow; enhance visual consistency and readability --- .../Plotwist/Plotwist/Views/Home/ProfileTabView.swift | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index f2240b4c..518b2d1d 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -454,10 +454,12 @@ struct ProfileMainTabs: View { if badgeCount(for: tab) > 0 { if selectedTab == tab { CollectionCountBadge(count: badgeCount(for: tab)) - .transition(.asymmetric( - insertion: .move(edge: .leading).combined(with: .opacity), - removal: .scale(scale: 0.8).combined(with: .opacity) - )) + .transition( + .asymmetric( + insertion: .move(edge: .leading).combined(with: .opacity), + removal: .scale(scale: 0.8).combined(with: .opacity) + ) + ) .animation(.easeOut(duration: 0.15), value: selectedTab) } } @@ -1213,6 +1215,7 @@ struct EditProfileRow: View { Text(value) .font(.subheadline) .foregroundColor(.appForegroundAdaptive) + .multilineTextAlignment(.leading) } .frame(maxWidth: .infinity, alignment: .leading) From ed16cc747ed635db854e67e3fb8e0250bb79e796 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sat, 24 Jan 2026 15:25:59 -0300 Subject: [PATCH 57/77] feat(seasons): implement seasons feature for TV series; add SeasonsSection and SeasonsListView for displaying season details, enhance MediaDetailView to integrate seasons, and update localization strings for seasons and ratings --- .../Plotwist/Localization/Strings.swift | 102 ++++- .../Plotwist/Services/TMDBService.swift | 88 ++++ .../Views/Details/MediaDetailView.swift | 27 +- .../Views/Details/SeasonsListView.swift | 421 ++++++++++++++++++ .../Views/Details/SeasonsSection.swift | 112 +++++ 5 files changed, 740 insertions(+), 10 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/SeasonsSection.swift diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 0445ec47..9ab2c307 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -155,7 +155,18 @@ enum L10n { upNext: "Up Next", // Collection partOf: "Part of", - seeCollection: "See Collection" + seeCollection: "See Collection", + // Seasons + tabSeasons: "Seasons", + episodesCount: "%d episodes", + grid: "Grid", + overview: "Overview", + // Ratings + ratingAwesome: "Awesome", + ratingGreat: "Great", + ratingGood: "Good", + ratingBad: "Bad", + ratingTerrible: "Terrible" ), .ptBR: Strings( loginLabel: "E-mail ou nome de usuário", @@ -292,7 +303,18 @@ enum L10n { upNext: "Para Assistir", // Collection partOf: "Parte de", - seeCollection: "Ver Coleção" + seeCollection: "Ver Coleção", + // Seasons + tabSeasons: "Temporadas", + episodesCount: "%d episódios", + grid: "Grade", + overview: "Visão Geral", + // Ratings + ratingAwesome: "Incrível", + ratingGreat: "Ótimo", + ratingGood: "Bom", + ratingBad: "Ruim", + ratingTerrible: "Péssimo" ), .esES: Strings( loginLabel: "Correo electrónico o nombre de usuario", @@ -429,7 +451,18 @@ enum L10n { upNext: "Próximos", // Collection partOf: "Parte de", - seeCollection: "Ver Colección" + seeCollection: "Ver Colección", + // Seasons + tabSeasons: "Temporadas", + episodesCount: "%d episodios", + grid: "Cuadrícula", + overview: "Resumen", + // Ratings + ratingAwesome: "Increíble", + ratingGreat: "Genial", + ratingGood: "Bueno", + ratingBad: "Malo", + ratingTerrible: "Terrible" ), .frFR: Strings( loginLabel: "E-mail ou nom d'utilisateur", @@ -566,7 +599,18 @@ enum L10n { upNext: "À Suivre", // Collection partOf: "Fait partie de", - seeCollection: "Voir la Collection" + seeCollection: "Voir la Collection", + // Seasons + tabSeasons: "Saisons", + episodesCount: "%d épisodes", + grid: "Grille", + overview: "Aperçu", + // Ratings + ratingAwesome: "Incroyable", + ratingGreat: "Génial", + ratingGood: "Bon", + ratingBad: "Mauvais", + ratingTerrible: "Terrible" ), .deDE: Strings( loginLabel: "E-Mail oder Benutzername", @@ -703,7 +747,18 @@ enum L10n { upNext: "Als Nächstes", // Collection partOf: "Teil von", - seeCollection: "Sammlung ansehen" + seeCollection: "Sammlung ansehen", + // Seasons + tabSeasons: "Staffeln", + episodesCount: "%d Episoden", + grid: "Raster", + overview: "Übersicht", + // Ratings + ratingAwesome: "Fantastisch", + ratingGreat: "Toll", + ratingGood: "Gut", + ratingBad: "Schlecht", + ratingTerrible: "Schrecklich" ), .itIT: Strings( loginLabel: "E-mail o nome utente", @@ -840,7 +895,18 @@ enum L10n { upNext: "Prossimi", // Collection partOf: "Parte di", - seeCollection: "Vedi Collezione" + seeCollection: "Vedi Collezione", + // Seasons + tabSeasons: "Stagioni", + episodesCount: "%d episodi", + grid: "Griglia", + overview: "Panoramica", + // Ratings + ratingAwesome: "Fantastico", + ratingGreat: "Ottimo", + ratingGood: "Buono", + ratingBad: "Cattivo", + ratingTerrible: "Terribile" ), .jaJP: Strings( loginLabel: "メールアドレスまたはユーザー名", @@ -976,7 +1042,18 @@ enum L10n { upNext: "次に見る", // Collection partOf: "の一部", - seeCollection: "コレクションを見る" + seeCollection: "コレクションを見る", + // Seasons + tabSeasons: "シーズン", + episodesCount: "%d 話", + grid: "グリッド", + overview: "概要", + // Ratings + ratingAwesome: "最高", + ratingGreat: "素晴らしい", + ratingGood: "良い", + ratingBad: "悪い", + ratingTerrible: "最悪" ), ] } @@ -1134,4 +1211,15 @@ struct Strings { // Collection let partOf: String let seeCollection: String + // Seasons + let tabSeasons: String + let episodesCount: String + let grid: String + let overview: String + // Ratings + let ratingAwesome: String + let ratingGreat: String + let ratingGood: String + let ratingBad: String + let ratingTerrible: String } diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index 933da8f1..335f25f6 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -596,6 +596,32 @@ class TMDBService { return try decoder.decode(MovieDetails.self, from: data) } + // MARK: - Season Details + func getSeasonDetails(seriesId: Int, seasonNumber: Int, language: String = "en-US") async throws + -> SeasonDetails + { + guard + let url = URL( + string: "\(baseURL)/tv/\(seriesId)/season/\(seasonNumber)?language=\(language)") + else { + throw TMDBError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Accept") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse, http.statusCode == 200 else { + throw TMDBError.invalidResponse + } + + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return try decoder.decode(SeasonDetails.self, from: data) + } + // MARK: - Get Images func getImages(id: Int, mediaType: String) async throws -> MediaImages { let type = mediaType == "movie" ? "movie" : "tv" @@ -775,6 +801,7 @@ struct MovieDetails: Codable, Identifiable { let runtime: Int? let genres: [Genre]? let belongsToCollection: BelongsToCollection? + let seasons: [Season]? // TV Series seasons var displayTitle: String { title ?? name ?? "Unknown" @@ -809,6 +836,67 @@ struct MovieDetails: Codable, Identifiable { guard let backdropPath else { return nil } return URL(string: "https://image.tmdb.org/t/p/original\(backdropPath)") } + + /// Filtered seasons for display (excludes specials with season 0 and empty seasons) + var displaySeasons: [Season] { + guard let seasons else { return [] } + return seasons.filter { $0.seasonNumber != 0 && $0.episodeCount > 0 } + } +} + +// MARK: - Season Model (TV Series) +struct Season: Codable, Identifiable { + let id: Int + let name: String + let seasonNumber: Int + let episodeCount: Int + let overview: String? + let posterPath: String? + let airDate: String? + + var posterURL: URL? { + guard let posterPath else { return nil } + return URL(string: "https://image.tmdb.org/t/p/w500\(posterPath)") + } + + var year: String? { + guard let airDate, airDate.count >= 4 else { return nil } + return String(airDate.prefix(4)) + } +} + +// MARK: - Season Details (with episodes) +struct SeasonDetails: Codable, Identifiable { + let id: Int + let name: String + let seasonNumber: Int + let episodes: [Episode] + let overview: String? + let posterPath: String? + let airDate: String? + + var posterURL: URL? { + guard let posterPath else { return nil } + return URL(string: "https://image.tmdb.org/t/p/w500\(posterPath)") + } +} + +// MARK: - Episode Model +struct Episode: Codable, Identifiable { + let id: Int + let name: String + let episodeNumber: Int + let seasonNumber: Int + let overview: String? + let stillPath: String? + let airDate: String? + let voteAverage: Double + let voteCount: Int + + var stillURL: URL? { + guard let stillPath else { return nil } + return URL(string: "https://image.tmdb.org/t/p/w500\(stillPath)") + } } // MARK: - Belongs To Collection diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index ed7e8954..f07eebda 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -25,6 +25,7 @@ struct MediaDetailView: View { // Section visibility state @State private var hasReviews = false @State private var hasWhereToWatch = false + @State private var hasSeasons = false @State private var hasRecommendations = false // Collection state @@ -189,7 +190,7 @@ struct MediaDetailView: View { } // Divider before first content section - if hasReviews || hasWhereToWatch || hasRecommendations { + if hasReviews || hasWhereToWatch || hasSeasons || hasRecommendations { Rectangle() .fill(Color.appBorderAdaptive.opacity(0.5)) .frame(height: 1) @@ -213,7 +214,7 @@ struct MediaDetailView: View { ) // Divider after reviews - if hasReviews && (hasWhereToWatch || hasRecommendations) { + if hasReviews && (hasWhereToWatch || hasSeasons || hasRecommendations) { Rectangle() .fill(Color.appBorderAdaptive.opacity(0.5)) .frame(height: 1) @@ -231,7 +232,27 @@ struct MediaDetailView: View { ) // Divider after where to watch - if hasWhereToWatch && hasRecommendations { + if hasWhereToWatch && (hasSeasons || hasRecommendations) { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + + // Seasons Section (only for TV series) + if mediaType != "movie" { + SeasonsSection( + seasons: details.displaySeasons, + seriesId: mediaId, + onContentLoaded: { hasContent in + hasSeasons = hasContent + } + ) + } + + // Divider after seasons + if hasSeasons && hasRecommendations { Rectangle() .fill(Color.appBorderAdaptive.opacity(0.5)) .frame(height: 1) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift new file mode 100644 index 00000000..93bf7f07 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift @@ -0,0 +1,421 @@ +// +// SeasonsListView.swift +// Plotwist +// + +import SwiftUI + +// MARK: - Seasons Tab +enum SeasonsTab: CaseIterable { + case grid + case overview + + func displayName(strings: Strings) -> String { + switch self { + case .grid: return strings.grid + case .overview: return strings.overview + } + } +} + +// MARK: - Seasons List View +struct SeasonsListView: View { + let seasons: [Season] + let seriesId: Int + + @Environment(\.dismiss) private var dismiss + @State private var selectedTab: SeasonsTab = .grid + @State private var seasonsDetails: [SeasonDetails] = [] + @State private var isLoadingDetails = false + @ObservedObject private var themeManager = ThemeManager.shared + + private let strings = L10n.current + + private let columns = [ + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + GridItem(.flexible(), spacing: 12), + ] + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + VStack(spacing: 0) { + // Header + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + } + + Spacer() + + Text(strings.tabSeasons) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + // Placeholder for symmetry + Color.clear + .frame(width: 40, height: 40) + } + .padding(.horizontal, 16) + .padding(.vertical, 12) + + // Tabs + SeasonsTabs(selectedTab: $selectedTab, strings: strings) + .padding(.top, 8) + + // Content + ScrollView { + switch selectedTab { + case .grid: + gridContent + case .overview: + overviewContent + } + } + } + } + .navigationBarHidden(true) + .preferredColorScheme(themeManager.current.colorScheme) + .task { + await loadSeasonsDetails() + } + } + + // MARK: - Grid Content + private var gridContent: some View { + LazyVGrid(columns: columns, spacing: 16) { + ForEach(seasons) { season in + VStack(alignment: .leading, spacing: 8) { + CachedAsyncImage(url: season.posterURL) { image in + image + .resizable() + .aspectRatio(2 / 3, contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fill) + .overlay( + VStack(spacing: 4) { + Image(systemName: "photo") + .font(.title3) + .foregroundColor(.appMutedForegroundAdaptive) + Text(season.name) + .font(.caption2) + .foregroundColor(.appMutedForegroundAdaptive) + .multilineTextAlignment(.center) + .lineLimit(2) + .padding(.horizontal, 4) + } + ) + } + .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterBorder(cornerRadius: 12) + .posterShadow() + } + } + } + .padding(.horizontal, 24) + .padding(.top, 16) + .padding(.bottom, 24) + } + + // MARK: - Overview Content + private var overviewContent: some View { + VStack(spacing: 0) { + if isLoadingDetails { + // Loading skeleton + VStack(spacing: 0) { + ForEach(0..<10, id: \.self) { _ in + HStack(spacing: 0) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 30, height: 20) + .padding(.horizontal, 12) + .padding(.vertical, 10) + + ForEach(0.. 0 { + RatingBadge(rating: episode.voteAverage) + .frame(maxWidth: .infinity) + .padding(.vertical, 6) + } else { + Text("-") + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(maxWidth: .infinity) + .padding(.vertical, 10) + } + } + } + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1), + alignment: .bottom + ) + } + } + } + .padding(.horizontal, 24) + } +} + +// MARK: - Rating Badge +struct RatingBadge: View { + let rating: Double + + private var ratingColor: Color { + switch rating { + case 8.0...: return RatingColor.awesome + case 6.0..<8.0: return RatingColor.great + case 4.0..<6.0: return RatingColor.good + case 2.0..<4.0: return RatingColor.bad + default: return RatingColor.terrible + } + } + + var body: some View { + Text(String(format: "%.1f", rating)) + .font(.caption.weight(.semibold)) + .foregroundColor(ratingColor) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background(ratingColor.opacity(0.15)) + .clipShape(RoundedRectangle(cornerRadius: 6)) + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsSection.swift new file mode 100644 index 00000000..d3226c9c --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsSection.swift @@ -0,0 +1,112 @@ +// +// SeasonsSection.swift +// Plotwist +// + +import SwiftUI + +struct SeasonsSection: View { + let seasons: [Season] + let seriesId: Int + var onContentLoaded: ((Bool) -> Void)? + + private let strings = L10n.current + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + if !seasons.isEmpty { + // Title with navigation + NavigationLink { + SeasonsListView(seasons: seasons, seriesId: seriesId) + } label: { + HStack(spacing: 6) { + Text(strings.tabSeasons) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + Image(systemName: "chevron.right") + .font(.caption.weight(.semibold)) + .foregroundColor(.appMutedForegroundAdaptive) + + Spacer() + } + .padding(.horizontal, 24) + } + .buttonStyle(.plain) + + // Horizontal scroll of seasons (posters only) + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(seasons) { season in + SeasonPosterCard(season: season) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 4) + } + .scrollClipDisabled() + } + } + .onAppear { + onContentLoaded?(!seasons.isEmpty) + } + } +} + +// MARK: - Season Poster Card +struct SeasonPosterCard: View { + let season: Season + + var body: some View { + CachedAsyncImage(url: season.posterURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + .overlay( + VStack(spacing: 4) { + Image(systemName: "photo") + .font(.title2) + .foregroundColor(.appMutedForegroundAdaptive) + Text(season.name) + .font(.caption2) + .foregroundColor(.appMutedForegroundAdaptive) + .multilineTextAlignment(.center) + .lineLimit(2) + .padding(.horizontal, 4) + } + ) + } + .frame(width: 120, height: 180) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterBorder(cornerRadius: 12) + .posterShadow() + } +} + +// MARK: - Seasons Section Skeleton +struct SeasonsSectionSkeleton: View { + var body: some View { + VStack(alignment: .leading, spacing: 12) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 100, height: 20) + .padding(.horizontal, 24) + + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(0..<4, id: \.self) { _ in + RoundedRectangle(cornerRadius: 12) + .fill(Color.appSkeletonAdaptive) + .frame(width: 120, height: 180) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 4) + } + .scrollClipDisabled() + } + } +} From 0325583f54871fded9900d47b0187b10f162d831 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sun, 25 Jan 2026 16:13:39 -0300 Subject: [PATCH 58/77] feat(assets): add AppIcon image and update Contents.json to reference the new icon; enhance visual consistency in the app's branding --- .../AppIcon.appiconset/AppIcon.png | Bin 0 -> 323870 bytes .../AppIcon.appiconset/Contents.json | 3 + .../Views/Details/SeasonsListView.swift | 162 ++++++++++-------- 3 files changed, 93 insertions(+), 72 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/AppIcon.png diff --git a/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/AppIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..a58be8fee5cca4d6381a231b34ad9a3017cdf33a GIT binary patch literal 323870 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

^BlED}U9RvxDZu;Eil!BKCdS51D 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 literal 0 HcmV?d00001 diff --git a/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/Contents.json b/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/Contents.json index 23058801..87d40152 100644 --- a/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,6 +1,7 @@ { "images" : [ { + "filename" : "AppIcon.png", "idiom" : "universal", "platform" : "ios", "size" : "1024x1024" @@ -12,6 +13,7 @@ "value" : "dark" } ], + "filename" : "AppIcon.png", "idiom" : "universal", "platform" : "ios", "size" : "1024x1024" @@ -23,6 +25,7 @@ "value" : "tinted" } ], + "filename" : "AppIcon.png", "idiom" : "universal", "platform" : "ios", "size" : "1024x1024" diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift index 93bf7f07..491fed49 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift @@ -166,17 +166,17 @@ struct SeasonsListView: View { .frame(maxWidth: .infinity, maxHeight: .infinity) .padding(.top, 60) } else { - // Color legend - RatingLegend() - .padding(.horizontal, 24) - .padding(.top, 16) - // Episodes ratings table SeasonsOverviewTable( seasons: seasons, seasonsDetails: seasonsDetails ) .padding(.top, 16) + + // Color legend (after table) + RatingLegend() + .padding(.horizontal, 24) + .padding(.top, 20) } } .padding(.bottom, 24) @@ -316,82 +316,100 @@ struct SeasonsOverviewTable: View { var body: some View { VStack(spacing: 0) { // Header row - HStack(spacing: 0) { - // EP column header - Text("EP") - .font(.caption.weight(.semibold)) - .foregroundColor(.appMutedForegroundAdaptive) - .frame(width: 36) - .padding(.vertical, 10) - .overlay( - Rectangle() - .fill(Color.appBorderAdaptive) - .frame(width: 1), - alignment: .trailing - ) - - // Season column headers - ForEach(seasons) { season in - Text("S\(season.seasonNumber)") - .font(.caption.weight(.semibold)) - .foregroundColor(.appMutedForegroundAdaptive) - .frame(maxWidth: .infinity) - .padding(.vertical, 10) - } - } - .background(Color.appBackgroundAdaptive) - .overlay( - Rectangle() - .fill(Color.appBorderAdaptive) - .frame(height: 1), - alignment: .bottom - ) + headerRow // Episode rows - VStack(spacing: 0) { - ForEach(1...maxEpisodes, id: \.self) { episodeNumber in - HStack(spacing: 0) { - // Episode number - Text("\(episodeNumber)") - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - .frame(width: 36) - .padding(.vertical, 10) - .overlay( - Rectangle() - .fill(Color.appBorderAdaptive) - .frame(width: 1), - alignment: .trailing - ) + episodeRows + } + .clipShape(RoundedRectangle(cornerRadius: 8)) + .overlay( + RoundedRectangle(cornerRadius: 8) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + .padding(.horizontal, 24) + } + + // MARK: - Header Row + private var headerRow: some View { + HStack(spacing: 0) { + // EP column header + Text("EP") + .font(.caption.weight(.bold)) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: 44) + .padding(.vertical, 12) + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(width: 1), + alignment: .trailing + ) - // Ratings for each season - ForEach(seasons) { season in - let seasonDetail = seasonsDetails.first { $0.seasonNumber == season.seasonNumber } - let episode = seasonDetail?.episodes.first { $0.episodeNumber == episodeNumber } + // Season column headers + ForEach(seasons) { season in + Text("S\(season.seasonNumber)") + .font(.caption.weight(.semibold)) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(maxWidth: .infinity) + .padding(.vertical, 12) + } + } + .background(Color.appInputFilled) + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1), + alignment: .bottom + ) + } - if let episode = episode, episode.voteAverage > 0 { - RatingBadge(rating: episode.voteAverage) - .frame(maxWidth: .infinity) - .padding(.vertical, 6) - } else { - Text("-") - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - .frame(maxWidth: .infinity) - .padding(.vertical, 10) - } + // MARK: - Episode Rows + private var episodeRows: some View { + VStack(spacing: 0) { + ForEach(1...maxEpisodes, id: \.self) { episodeNumber in + HStack(spacing: 0) { + // Episode number + Text("\(episodeNumber)") + .font(.caption.weight(.medium)) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: 44) + .padding(.vertical, 10) + .background(Color.appInputFilled) + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(width: 1), + alignment: .trailing + ) + + // Ratings for each season + ForEach(seasons) { season in + let seasonDetail = seasonsDetails.first { $0.seasonNumber == season.seasonNumber } + let episode = seasonDetail?.episodes.first { $0.episodeNumber == episodeNumber } + + if let episode = episode, episode.voteAverage > 0 { + RatingBadge(rating: episode.voteAverage) + .frame(maxWidth: .infinity) + .padding(.vertical, 6) + } else { + Text("–") + .font(.caption) + .foregroundColor(.appBorderAdaptive) + .frame(maxWidth: .infinity) + .padding(.vertical, 10) } } - .overlay( - Rectangle() - .fill(Color.appBorderAdaptive) - .frame(height: 1), - alignment: .bottom - ) + } + .background(Color.appBackgroundAdaptive) + + // Divider (except for last row) + if episodeNumber < maxEpisodes { + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) } } } - .padding(.horizontal, 24) } } From d2e5851b983937b1d1f51e0156e9acecce5b7f8c Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sun, 25 Jan 2026 16:22:29 -0300 Subject: [PATCH 59/77] fix(assets): update AppIcon image to improve visual branding consistency across the app --- .../AppIcon.appiconset/AppIcon.png | Bin 323870 -> 39730 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/AppIcon.png index a58be8fee5cca4d6381a231b34ad9a3017cdf33a..7cb97063a94d316c52529419faa5465bf9c0a6b7 100644 GIT binary patch literal 39730 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 +W9v?iX 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 X=7s%q#x4X3tya4@C@k>G0%h`lG;VNg literal 323870 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

^BlED}U9RvxDZu;Eil!BKCdS51D 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 From b5a434ac715dfbb5fe707c31b529d48cc977069c Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Sun, 25 Jan 2026 16:24:26 -0300 Subject: [PATCH 60/77] fix(assets): update AppIcon image to enhance visual branding consistency --- .../AppIcon.appiconset/AppIcon.png | Bin 39730 -> 191172 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/apps/ios/Plotwist/Plotwist/Assets.xcassets/AppIcon.appiconset/AppIcon.png index 7cb97063a94d316c52529419faa5465bf9c0a6b7..f877a1c86d91992e12a646e766a99e8f6a77437e 100644 GIT binary patch literal 191172 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ŋ|0%V!Ts`x?-?h{X|lk6(+xSd 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 i*S~(@|Bq{Zf%)(d literal 39730 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 +W9v?iX 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 X=7s%q#x4X3tya4@C@k>G0%h`lG;VNg From d804241d293e1ce81b65e3df47cd55e8915fa822 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 11:56:12 -0300 Subject: [PATCH 61/77] feat(caching): enhance caching mechanisms by introducing HomeDataCache for user and item data, refactor CollectionCache to support additional user and reviews caching, and optimize image loading with improved async handling in ImageCache; update MediaDetailView and HomeTabView to utilize new caching features for better performance and user experience --- .../Plotwist/Services/CollectionCache.swift | 56 ++- .../Plotwist/Services/HomeDataCache.swift | 109 ++++++ .../Plotwist/Services/ImageCache.swift | 323 +++++++++++++++++- .../Views/Details/MediaDetailView.swift | 90 ++--- .../Plotwist/Views/Home/HomeTabView.swift | 134 +++++--- 5 files changed, 587 insertions(+), 125 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Services/HomeDataCache.swift diff --git a/apps/ios/Plotwist/Plotwist/Services/CollectionCache.swift b/apps/ios/Plotwist/Plotwist/Services/CollectionCache.swift index 085c8723..cde3a986 100644 --- a/apps/ios/Plotwist/Plotwist/Services/CollectionCache.swift +++ b/apps/ios/Plotwist/Plotwist/Services/CollectionCache.swift @@ -6,7 +6,7 @@ import Foundation // MARK: - Collection Cache -class CollectionCache { +final class CollectionCache { static let shared = CollectionCache() private init() {} @@ -14,20 +14,38 @@ class CollectionCache { private var itemsCache: [String: [UserItemSummary]] = [:] // Cache for total count private var totalCountCache: Int? + // Cache for reviews count + private var reviewsCountCache: Int? + // Cache for user profile + private var userCache: User? // Cache timestamp private var lastUpdated: Date? // Cache duration (5 minutes) private let cacheDuration: TimeInterval = 300 + // Flag to track if initial load was done + private var hasLoadedOnce = false private func cacheKey(userId: String, status: String) -> String { return "\(userId)_\(status)" } + // MARK: - User Cache + + var user: User? { + guard !isCacheExpired else { return nil } + return userCache + } + + func setUser(_ user: User?) { + userCache = user + lastUpdated = Date() + hasLoadedOnce = true + } + // MARK: - Items Cache func getItems(userId: String, status: String) -> [UserItemSummary]? { guard !isCacheExpired else { - clearCache() return nil } return itemsCache[cacheKey(userId: userId, status: status)] @@ -36,13 +54,13 @@ class CollectionCache { func setItems(_ items: [UserItemSummary], userId: String, status: String) { itemsCache[cacheKey(userId: userId, status: status)] = items lastUpdated = Date() + hasLoadedOnce = true } // MARK: - Total Count Cache func getTotalCount() -> Int? { guard !isCacheExpired else { - clearCache() return nil } return totalCountCache @@ -53,6 +71,30 @@ class CollectionCache { lastUpdated = Date() } + // MARK: - Reviews Count Cache + + func getReviewsCount() -> Int? { + guard !isCacheExpired else { + return nil + } + return reviewsCountCache + } + + func setReviewsCount(_ count: Int) { + reviewsCountCache = count + lastUpdated = Date() + } + + // MARK: - Cache State + + var shouldShowSkeleton: Bool { + !hasLoadedOnce + } + + var isDataAvailable: Bool { + userCache != nil || !itemsCache.isEmpty + } + // MARK: - Cache Management private var isCacheExpired: Bool { @@ -63,13 +105,21 @@ class CollectionCache { func clearCache() { itemsCache.removeAll() totalCountCache = nil + reviewsCountCache = nil + userCache = nil lastUpdated = nil + // Don't reset hasLoadedOnce to avoid showing skeleton again } func invalidateCache() { clearCache() NotificationCenter.default.post(name: .collectionCacheInvalidated, object: nil) } + + func fullReset() { + clearCache() + hasLoadedOnce = false + } } // MARK: - Notification Names diff --git a/apps/ios/Plotwist/Plotwist/Services/HomeDataCache.swift b/apps/ios/Plotwist/Plotwist/Services/HomeDataCache.swift new file mode 100644 index 00000000..4e66c13f --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Services/HomeDataCache.swift @@ -0,0 +1,109 @@ +// +// HomeDataCache.swift +// Plotwist +// + +import Foundation + +// MARK: - Home Data Cache +final class HomeDataCache { + static let shared = HomeDataCache() + private init() {} + + // Cache for watching items + private var watchingItemsCache: [SearchResult]? + // Cache for watchlist items + private var watchlistItemsCache: [SearchResult]? + // Cache for user data + private var userCache: User? + // Cache timestamp + private var lastUpdated: Date? + // Cache duration (5 minutes) + private let cacheDuration: TimeInterval = 300 + // Flag to track if initial load was done + private var hasLoadedOnce = false + + // MARK: - Watching Items + + var watchingItems: [SearchResult]? { + guard !isCacheExpired else { + return nil + } + return watchingItemsCache + } + + func setWatchingItems(_ items: [SearchResult]) { + watchingItemsCache = items + lastUpdated = Date() + hasLoadedOnce = true + } + + // MARK: - Watchlist Items + + var watchlistItems: [SearchResult]? { + guard !isCacheExpired else { + return nil + } + return watchlistItemsCache + } + + func setWatchlistItems(_ items: [SearchResult]) { + watchlistItemsCache = items + lastUpdated = Date() + hasLoadedOnce = true + } + + // MARK: - User + + var user: User? { + guard !isCacheExpired else { + return nil + } + return userCache + } + + func setUser(_ user: User?) { + userCache = user + lastUpdated = Date() + } + + // MARK: - Cache State + + var shouldShowSkeleton: Bool { + !hasLoadedOnce + } + + var isDataAvailable: Bool { + watchingItemsCache != nil || watchlistItemsCache != nil + } + + // MARK: - Cache Management + + private var isCacheExpired: Bool { + guard let lastUpdated else { return true } + return Date().timeIntervalSince(lastUpdated) > cacheDuration + } + + func clearCache() { + watchingItemsCache = nil + watchlistItemsCache = nil + userCache = nil + lastUpdated = nil + // Don't reset hasLoadedOnce to avoid showing skeleton again + } + + func invalidateCache() { + clearCache() + NotificationCenter.default.post(name: .homeDataCacheInvalidated, object: nil) + } + + func fullReset() { + clearCache() + hasLoadedOnce = false + } +} + +// MARK: - Notification Names +extension Notification.Name { + static let homeDataCacheInvalidated = Notification.Name("homeDataCacheInvalidated") +} diff --git a/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift b/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift index e199d081..d3dc10fd 100644 --- a/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift +++ b/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift @@ -4,37 +4,227 @@ // import SwiftUI +import UIKit // MARK: - Image Cache Manager -class ImageCache { +final class ImageCache: @unchecked Sendable { static let shared = ImageCache() - private init() {} - private let cache = NSCache() + private let memoryCache = NSCache() + private let fileManager = FileManager.default + private let diskCacheURL: URL + private let ioQueue = DispatchQueue(label: "com.plotwist.imagecache.io", qos: .userInitiated) + + // Actor for managing ongoing tasks safely + private let taskManager = TaskManager() + + private init() { + // Setup disk cache directory + let cacheDir = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] + diskCacheURL = cacheDir.appendingPathComponent("ImageCache", isDirectory: true) + + // Create directory if needed + try? fileManager.createDirectory(at: diskCacheURL, withIntermediateDirectories: true) + + // Configure memory cache + memoryCache.countLimit = 100 + memoryCache.totalCostLimit = 100 * 1024 * 1024 // 100MB + } + + // MARK: - Public API func image(for url: URL) -> UIImage? { - return cache.object(forKey: url as NSURL) + // Check memory cache first (fast) + if let cached = memoryCache.object(forKey: url as NSURL) { + return cached + } + + // Check disk cache (slower, but synchronous for simplicity) + if let diskImage = loadFromDisk(url: url) { + memoryCache.setObject(diskImage, forKey: url as NSURL) + return diskImage + } + + return nil } func setImage(_ image: UIImage, for url: URL) { - cache.setObject(image, forKey: url as NSURL) + // Save to memory + memoryCache.setObject(image, forKey: url as NSURL) + + // Save to disk asynchronously + ioQueue.async { [weak self] in + self?.saveToDisk(image: image, url: url) + } + } + + /// Load image with deduplication of concurrent requests + func loadImage(from url: URL, priority: TaskPriority = .medium) async -> UIImage? { + // Check caches first + if let cached = image(for: url) { + return cached + } + + // Use actor for safe concurrent access + return await taskManager.loadImage(url: url, priority: priority) { [weak self] in + do { + let (data, _) = try await URLSession.shared.data(from: url) + guard let image = UIImage(data: data) else { return nil } + + // Use downsampled version for large images + let optimizedImage = self?.downsampleIfNeeded(image, maxDimension: 1920) ?? image + + self?.setImage(optimizedImage, for: url) + return optimizedImage + } catch { + return nil + } + } + } + + /// Prefetch multiple images (for carousel) + func prefetch(urls: [URL], priority: TaskPriority = .low) { + Task(priority: priority) { + await withTaskGroup(of: Void.self) { group in + for url in urls { + group.addTask { [weak self] in + _ = await self?.loadImage(from: url, priority: .low) + } + } + } + } + } + + /// Clear all caches + func clearCache() { + memoryCache.removeAllObjects() + ioQueue.async { [weak self] in + guard let self else { return } + try? self.fileManager.removeItem(at: self.diskCacheURL) + try? self.fileManager.createDirectory(at: self.diskCacheURL, withIntermediateDirectories: true) + } + } + + // MARK: - Private Helpers + + private func cacheKey(for url: URL) -> String { + return url.absoluteString.data(using: .utf8)?.base64EncodedString() ?? url.lastPathComponent + } + + private func diskPath(for url: URL) -> URL { + return diskCacheURL.appendingPathComponent(cacheKey(for: url)) + } + + private func loadFromDisk(url: URL) -> UIImage? { + let path = diskPath(for: url) + guard let data = try? Data(contentsOf: path) else { return nil } + return UIImage(data: data) + } + + private func saveToDisk(image: UIImage, url: URL) { + let path = diskPath(for: url) + guard let data = image.jpegData(compressionQuality: 0.85) else { return } + try? data.write(to: path) + } + + private func downsampleIfNeeded(_ image: UIImage, maxDimension: CGFloat) -> UIImage { + let size = image.size + guard size.width > maxDimension || size.height > maxDimension else { return image } + + let scale = maxDimension / max(size.width, size.height) + let newSize = CGSize(width: size.width * scale, height: size.height * scale) + + let renderer = UIGraphicsImageRenderer(size: newSize) + return renderer.image { _ in + image.draw(in: CGRect(origin: .zero, size: newSize)) + } } } -// MARK: - Cached Async Image +// MARK: - Task Manager Actor (for safe concurrent task management) +private actor TaskManager { + private var ongoingTasks: [URL: Task] = [:] + + func loadImage( + url: URL, + priority: TaskPriority, + loader: @escaping @Sendable () async -> UIImage? + ) async -> UIImage? { + // Check if there's already an ongoing task for this URL + if let existingTask = ongoingTasks[url] { + return await existingTask.value + } + + // Create new task + let task = Task(priority: priority) { + await loader() + } + + ongoingTasks[url] = task + + let result = await task.value + ongoingTasks.removeValue(forKey: url) + + return result + } +} + +// MARK: - Shimmer Effect +struct ShimmerModifier: ViewModifier { + func body(content: Content) -> some View { + content + .overlay( + TimelineView(.animation(minimumInterval: 0.016, paused: false)) { timeline in + let phase = calculatePhase(from: timeline.date) + GeometryReader { geometry in + LinearGradient( + gradient: Gradient(colors: [ + .clear, + Color.white.opacity(0.3), + .clear + ]), + startPoint: .leading, + endPoint: .trailing + ) + .frame(width: geometry.size.width * 2) + .offset(x: -geometry.size.width + (geometry.size.width * 2 * phase)) + } + } + .mask(content) + ) + } + + private func calculatePhase(from date: Date) -> CGFloat { + let duration: Double = 1.2 + let elapsed = date.timeIntervalSinceReferenceDate.truncatingRemainder(dividingBy: duration) + return CGFloat(elapsed / duration) + } +} + +extension View { + func shimmer() -> some View { + modifier(ShimmerModifier()) + } +} + +// MARK: - Cached Async Image (Enhanced) struct CachedAsyncImage: View { let url: URL? let content: (Image) -> Content let placeholder: () -> Placeholder + let priority: TaskPriority @State private var loadedImage: UIImage? + @State private var isLoading = false init( url: URL?, + priority: TaskPriority = .medium, @ViewBuilder content: @escaping (Image) -> Content, @ViewBuilder placeholder: @escaping () -> Placeholder ) { self.url = url + self.priority = priority self.content = content self.placeholder = placeholder } @@ -43,9 +233,10 @@ struct CachedAsyncImage: View { Group { if let loadedImage { content(Image(uiImage: loadedImage)) + .transition(.opacity.animation(.easeIn(duration: 0.2))) } else { placeholder() - .task(id: url) { + .task(id: url, priority: priority) { await loadImage() } } @@ -54,22 +245,120 @@ struct CachedAsyncImage: View { @MainActor private func loadImage() async { - guard let url else { return } + guard let url, !isLoading else { return } + isLoading = true - // Check cache first - if let cachedImage = ImageCache.shared.image(for: url) { - loadedImage = cachedImage + // Check cache synchronously first for instant display + if let cached = ImageCache.shared.image(for: url) { + loadedImage = cached + isLoading = false return } - do { - let (data, _) = try await URLSession.shared.data(from: url) - if let image = UIImage(data: data) { - ImageCache.shared.setImage(image, for: url) + // Load from network + if let image = await ImageCache.shared.loadImage(from: url, priority: priority) { + withAnimation(.easeIn(duration: 0.2)) { loadedImage = image } - } catch { - print("Failed to load image: \(error)") } + isLoading = false + } +} + +// MARK: - Backdrop Image View (Optimized for MediaDetailView) +struct BackdropImage: View { + let url: URL? + let height: CGFloat + + @State private var loadedImage: UIImage? + @State private var showImage = false + + var body: some View { + ZStack { + // Shimmer placeholder + Rectangle() + .fill(Color.appBorderAdaptive) + .shimmer() + .opacity(showImage ? 0 : 1) + + // Actual image with fade-in + if let loadedImage { + Image(uiImage: loadedImage) + .resizable() + .aspectRatio(contentMode: .fill) + .opacity(showImage ? 1 : 0) + } + } + .frame(height: height) + .frame(maxWidth: .infinity) + .clipped() + .task(id: url) { + await loadImage() + } + } + + @MainActor + private func loadImage() async { + guard let url else { return } + + // Check cache for instant display + if let cached = ImageCache.shared.image(for: url) { + loadedImage = cached + withAnimation(.easeIn(duration: 0.15)) { + showImage = true + } + return + } + + // Load with high priority for visible content + if let image = await ImageCache.shared.loadImage(from: url, priority: .high) { + loadedImage = image + withAnimation(.easeIn(duration: 0.25)) { + showImage = true + } + } + } +} + +// MARK: - Carousel Backdrop View (with prefetching) +struct CarouselBackdropView: View { + let images: [TMDBImage] + let height: CGFloat + @Binding var currentIndex: Int + + var body: some View { + TabView(selection: $currentIndex) { + ForEach(Array(images.prefix(10).enumerated()), id: \.offset) { index, backdrop in + BackdropImage(url: backdrop.backdropURL, height: height) + .tag(index) + } + } + .tabViewStyle(.page(indexDisplayMode: .never)) + .frame(height: height) + .frame(maxWidth: .infinity) + .clipped() + .onAppear { + prefetchImages() + } + .onChange(of: currentIndex) { _, newIndex in + prefetchAdjacentImages(around: newIndex) + } + } + + private func prefetchImages() { + // Prefetch first 3 images immediately + let initialUrls = images.prefix(3).compactMap { $0.backdropURL } + ImageCache.shared.prefetch(urls: initialUrls, priority: .high) + + // Prefetch rest with lower priority + let remainingUrls = images.dropFirst(3).prefix(7).compactMap { $0.backdropURL } + ImageCache.shared.prefetch(urls: remainingUrls, priority: .low) + } + + private func prefetchAdjacentImages(around index: Int) { + // Prefetch next 2 images when user swipes + let nextIndices = [index + 1, index + 2].filter { $0 < images.count && $0 < 10 } + let urls = nextIndices.compactMap { images[$0].backdropURL } + ImageCache.shared.prefetch(urls: urls, priority: .medium) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index f07eebda..9c93e3fa 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -52,48 +52,22 @@ struct MediaDetailView: View { VStack(alignment: .leading, spacing: 0) { // Backdrop Section (stays behind content) ZStack(alignment: .topLeading) { - // Backdrop Image/Carousel + // Backdrop Image/Carousel (using optimized cached loading) if backdropImages.isEmpty { - AsyncImage(url: details.backdropURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appBorderAdaptive) - } - } - .frame(height: backdropHeight + cornerRadius) - .frame(maxWidth: .infinity) - .clipped() + BackdropImage( + url: details.backdropURL, + height: backdropHeight + cornerRadius + ) } else { ZStack(alignment: .bottomTrailing) { NavigationLink( destination: MediaImagesView(mediaId: mediaId, mediaType: mediaType) ) { - TabView(selection: $currentBackdropIndex) { - ForEach(Array(backdropImages.prefix(10).enumerated()), id: \.element.id) { - index, backdrop in - AsyncImage(url: backdrop.backdropURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - Rectangle() - .fill(Color.appBorderAdaptive) - } - } - .tag(index) - } - } - .tabViewStyle(.page(indexDisplayMode: .never)) - .frame(height: backdropHeight + cornerRadius) - .frame(maxWidth: .infinity) - .clipped() + CarouselBackdropView( + images: backdropImages, + height: backdropHeight + cornerRadius, + currentIndex: $currentBackdropIndex + ) } .buttonStyle(.plain) @@ -279,17 +253,18 @@ struct MediaDetailView: View { // Poster and Info (overlaid on top, outside clipShape) HStack(alignment: .bottom, spacing: 16) { - // Poster - AsyncImage(url: details.posterURL) { phase in - switch phase { - case .success(let image): - image - .resizable() - .aspectRatio(contentMode: .fill) - default: - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - } + // Poster (using cached image loading) + CachedAsyncImage( + url: details.posterURL, + priority: .high + ) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + .shimmer() } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 12)) @@ -440,31 +415,12 @@ struct MediaDetailView: View { do { let images = try await TMDBService.shared.getImages(id: mediaId, mediaType: mediaType) backdropImages = images.sortedBackdrops - - // Preload backdrop images in background - await preloadBackdropImages() + // Note: Prefetching is now handled automatically by CarouselBackdropView } catch { backdropImages = [] } } - private func preloadBackdropImages() async { - let imagesToPreload = Array(backdropImages.prefix(10)) - - await withTaskGroup(of: Void.self) { group in - for image in imagesToPreload { - guard let url = image.backdropURL else { continue } - group.addTask { - do { - let (_, _) = try await URLSession.shared.data(from: url) - } catch { - // Silently ignore preload failures - } - } - } - } - } - private func loadCollection() async { // Only load collection for movies guard mediaType == "movie" else { return } diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift index 26b95840..0fd01216 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/HomeTabView.swift @@ -12,10 +12,11 @@ struct HomeTabView: View { @State private var user: User? @State private var watchingItems: [SearchResult] = [] @State private var watchlistItems: [SearchResult] = [] - @State private var isLoadingUser = true - @State private var isLoadingWatching = true - @State private var isLoadingWatchlist = true + @State private var isInitialLoad = true @State private var needsRefresh = false + @State private var hasAppeared = false + + private let cache = HomeDataCache.shared private var effectiveColorScheme: ColorScheme { themeManager.current.colorScheme ?? systemColorScheme @@ -32,6 +33,19 @@ struct HomeTabView: View { } } + // Only show skeleton on first load when no cached data + private var showWatchingSkeleton: Bool { + isInitialLoad && cache.shouldShowSkeleton && watchingItems.isEmpty + } + + private var showWatchlistSkeleton: Bool { + isInitialLoad && cache.shouldShowSkeleton && watchlistItems.isEmpty + } + + private var showUserSkeleton: Bool { + isInitialLoad && user == nil && cache.user == nil + } + var body: some View { NavigationView { ZStack { @@ -44,7 +58,7 @@ struct HomeTabView: View { greeting: greeting, username: user?.username, avatarURL: user?.avatarImageURL, - isLoading: isLoadingUser, + isLoading: showUserSkeleton, onAvatarTapped: { NotificationCenter.default.post(name: .navigateToProfile, object: nil) } @@ -53,23 +67,23 @@ struct HomeTabView: View { .padding(.top, 16) // Continue Watching Section - if !watchingItems.isEmpty { + if showWatchingSkeleton { + HomeSectionSkeleton() + } else if !watchingItems.isEmpty { ContinueWatchingSection( items: watchingItems, title: strings.continueWatching ) - } else if isLoadingWatching { - HomeSectionSkeleton() } // Watchlist Section - if !watchlistItems.isEmpty { + if showWatchlistSkeleton { + HomeSectionSkeleton() + } else if !watchlistItems.isEmpty { WatchlistSection( items: watchlistItems, title: strings.upNext ) - } else if isLoadingWatchlist { - HomeSectionSkeleton() } Spacer(minLength: 100) @@ -79,12 +93,18 @@ struct HomeTabView: View { .navigationBarHidden(true) .preferredColorScheme(effectiveColorScheme) .onAppear { + // Restore from cache immediately on appear + if !hasAppeared { + hasAppeared = true + restoreFromCache() + } + // Refresh when returning to view if needed if needsRefresh { needsRefresh = false Task { - await loadWatchingItems() - await loadWatchlistItems() + await loadWatchingItems(forceRefresh: true) + await loadWatchlistItems(forceRefresh: true) } } } @@ -96,41 +116,69 @@ struct HomeTabView: View { strings = L10n.current } .onReceive(NotificationCenter.default.publisher(for: .profileUpdated)) { _ in - Task { await loadUser() } + Task { await loadUser(forceRefresh: true) } } .onReceive(NotificationCenter.default.publisher(for: .collectionCacheInvalidated)) { _ in - // Mark for refresh instead of immediately reloading - // This prevents navigation issues when the list changes while navigated needsRefresh = true } + .onReceive(NotificationCenter.default.publisher(for: .homeDataCacheInvalidated)) { _ in + needsRefresh = true + } + } + + private func restoreFromCache() { + if let cachedUser = cache.user { + user = cachedUser + } + if let cachedWatching = cache.watchingItems { + watchingItems = cachedWatching + } + if let cachedWatchlist = cache.watchlistItems { + watchlistItems = cachedWatchlist + } } private func loadData() async { + // If we have cached data, don't show loading state + if cache.isDataAvailable { + isInitialLoad = false + } + await withTaskGroup(of: Void.self) { group in group.addTask { await loadUser() } group.addTask { await loadWatchingItems() } group.addTask { await loadWatchlistItems() } } + + isInitialLoad = false } @MainActor - private func loadUser() async { - isLoadingUser = true - defer { isLoadingUser = false } + private func loadUser(forceRefresh: Bool = false) async { + // Use cache if available and not forcing refresh + if !forceRefresh, let cachedUser = cache.user { + user = cachedUser + return + } guard AuthService.shared.isAuthenticated else { return } do { - user = try await AuthService.shared.getCurrentUser() + let fetchedUser = try await AuthService.shared.getCurrentUser() + user = fetchedUser + cache.setUser(fetchedUser) } catch { print("Error loading user: \(error)") } } @MainActor - private func loadWatchingItems() async { - isLoadingWatching = true - defer { isLoadingWatching = false } + private func loadWatchingItems(forceRefresh: Bool = false) async { + // Use cache if available and not forcing refresh + if !forceRefresh, let cachedItems = cache.watchingItems { + watchingItems = cachedItems + return + } guard AuthService.shared.isAuthenticated else { return } @@ -192,15 +240,19 @@ struct HomeTabView: View { } watchingItems = results + cache.setWatchingItems(results) } catch { print("Error loading watching items: \(error)") } } @MainActor - private func loadWatchlistItems() async { - isLoadingWatchlist = true - defer { isLoadingWatchlist = false } + private func loadWatchlistItems(forceRefresh: Bool = false) async { + // Use cache if available and not forcing refresh + if !forceRefresh, let cachedItems = cache.watchlistItems { + watchlistItems = cachedItems + return + } guard AuthService.shared.isAuthenticated else { return } @@ -262,6 +314,7 @@ struct HomeTabView: View { } watchlistItems = results + cache.setWatchlistItems(results) } catch { print("Error loading watchlist items: \(error)") } @@ -279,18 +332,17 @@ struct HomeHeaderView: View { var body: some View { HStack(spacing: 16) { if isLoading { - HStack(spacing: 0) { - RoundedRectangle(cornerRadius: 4) - .fill(Color.appSkeletonAdaptive) - .frame(width: 180, height: 24) - } + RoundedRectangle(cornerRadius: 4) + .fill(Color.appSkeletonAdaptive) + .frame(width: 180, height: 24) + .shimmer() } else if let username { - Text("\(greeting), ") + (Text("\(greeting), ") .font(.title2.bold()) .foregroundColor(.appForegroundAdaptive) + Text("@\(username)") .font(.title2.bold()) - .foregroundColor(.appMutedForegroundAdaptive) + .foregroundColor(.appMutedForegroundAdaptive)) } else { Text(greeting) .font(.title2.bold()) @@ -303,6 +355,7 @@ struct HomeHeaderView: View { Circle() .fill(Color.appSkeletonAdaptive) .frame(width: 44, height: 44) + .shimmer() } else { Button { onAvatarTapped?() @@ -326,7 +379,8 @@ struct HomeSectionCard: View { .aspectRatio(contentMode: .fill) } placeholder: { RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) + .fill(Color.appSkeletonAdaptive) + .shimmer() } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 12)) @@ -476,7 +530,8 @@ struct HomePosterCard: View { .aspectRatio(contentMode: .fill) } placeholder: { RoundedRectangle(cornerRadius: 16) - .fill(Color.appBorderAdaptive) + .fill(Color.appSkeletonAdaptive) + .shimmer() } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 16)) @@ -488,22 +543,25 @@ struct HomePosterCard: View { // MARK: - Home Section Skeleton struct HomeSectionSkeleton: View { var body: some View { - VStack(alignment: .leading, spacing: 16) { + VStack(alignment: .leading, spacing: 12) { + // Title skeleton - matches .font(.headline) height RoundedRectangle(cornerRadius: 4) .fill(Color.appSkeletonAdaptive) - .frame(width: 140, height: 20) + .frame(width: 140, height: 17) + .shimmer() .padding(.horizontal, 24) ScrollView(.horizontal, showsIndicators: false) { HStack(spacing: 12) { ForEach(0..<5, id: \.self) { _ in - RoundedRectangle(cornerRadius: 16) + RoundedRectangle(cornerRadius: 12) .fill(Color.appSkeletonAdaptive) .frame(width: 120, height: 180) + .shimmer() } } .padding(.horizontal, 24) - .padding(.vertical, 16) + .padding(.vertical, 4) } .scrollClipDisabled() } From 23e6b287ddf8a29b80ca31cfc9d4815ccd508191 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 11:57:35 -0300 Subject: [PATCH 62/77] refactor(profile-tab): update ProfileTabView to improve caching logic and loading state management; rename loading state variable for clarity, implement initial load handling, and streamline data loading process from cache --- .../Plotwist/Views/Home/ProfileTabView.swift | 88 +++++++++++++++---- 1 file changed, 71 insertions(+), 17 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift index 518b2d1d..9ef537e2 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/ProfileTabView.swift @@ -45,7 +45,7 @@ enum ProfileMainTab: CaseIterable { struct ProfileTabView: View { @State private var user: User? - @State private var isLoading = true + @State private var isInitialLoad = true @State private var strings = L10n.current @State private var selectedMainTab: ProfileMainTab = .collection @State private var selectedStatusTab: ProfileStatusTab = .watched @@ -55,8 +55,11 @@ struct ProfileTabView: View { @State private var totalReviewsCount: Int = 0 @State private var scrollOffset: CGFloat = 0 @State private var initialScrollOffset: CGFloat? = nil + @State private var hasAppeared = false @ObservedObject private var themeManager = ThemeManager.shared + private let cache = CollectionCache.shared + // Avatar size private let avatarSize: CGFloat = 56 // Scroll threshold to show header content (height of profile info section) @@ -67,12 +70,17 @@ struct ProfileTabView: View { return scrollOffset < initial - scrollThreshold } + // Only show loading on first load when no cached data + private var showLoading: Bool { + isInitialLoad && cache.shouldShowSkeleton && user == nil + } + var body: some View { NavigationView { ZStack { Color.appBackgroundAdaptive.ignoresSafeArea() - if isLoading { + if showLoading { VStack { Spacer() ProgressView() @@ -314,17 +322,21 @@ struct ProfileTabView: View { } } } + .onAppear { + // Restore from cache immediately on appear + if !hasAppeared { + hasAppeared = true + restoreFromCache() + } + } .task { - await loadUser() - await loadUserItems() - await loadTotalCollectionCount() - await loadTotalReviewsCount() + await loadData() } .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current } .onReceive(NotificationCenter.default.publisher(for: .profileUpdated)) { _ in - Task { await loadUser() } + Task { await loadUser(forceRefresh: true) } } .onReceive(NotificationCenter.default.publisher(for: .collectionCacheInvalidated)) { _ in Task { @@ -336,12 +348,47 @@ struct ProfileTabView: View { } } - private func loadUser() async { - isLoading = true - defer { isLoading = false } + private func restoreFromCache() { + if let cachedUser = cache.user { + user = cachedUser + } + if let cachedCount = cache.getTotalCount() { + totalCollectionCount = cachedCount + } + if let cachedReviewsCount = cache.getReviewsCount() { + totalReviewsCount = cachedReviewsCount + } + if let userId = user?.id ?? cache.user?.id, + let cachedItems = cache.getItems(userId: userId, status: selectedStatusTab.rawValue) { + userItems = cachedItems + } + } + + private func loadData() async { + // If we have cached data, don't show loading state + if cache.isDataAvailable { + isInitialLoad = false + } + + await loadUser() + await loadUserItems() + await loadTotalCollectionCount() + await loadTotalReviewsCount() + + isInitialLoad = false + } + + private func loadUser(forceRefresh: Bool = false) async { + // Use cache if available and not forcing refresh + if !forceRefresh, let cachedUser = cache.user { + user = cachedUser + return + } do { - user = try await AuthService.shared.getCurrentUser() + let fetchedUser = try await AuthService.shared.getCurrentUser() + user = fetchedUser + cache.setUser(fetchedUser) } catch { print("Error loading user: \(error)") user = nil @@ -360,8 +407,7 @@ struct ProfileTabView: View { // Check cache first if !forceRefresh, - let cachedItems = CollectionCache.shared.getItems( - userId: userId, status: selectedStatusTab.rawValue) + let cachedItems = cache.getItems(userId: userId, status: selectedStatusTab.rawValue) { userItems = cachedItems return @@ -377,7 +423,7 @@ struct ProfileTabView: View { ) userItems = items // Save to cache - CollectionCache.shared.setItems(items, userId: userId, status: selectedStatusTab.rawValue) + cache.setItems(items, userId: userId, status: selectedStatusTab.rawValue) } catch { print("Error loading user items: \(error)") userItems = [] @@ -388,7 +434,7 @@ struct ProfileTabView: View { guard let userId = user?.id else { return } // Check cache first - if !forceRefresh, let cachedCount = CollectionCache.shared.getTotalCount() { + if !forceRefresh, let cachedCount = cache.getTotalCount() { totalCollectionCount = cachedCount return } @@ -397,19 +443,27 @@ struct ProfileTabView: View { let count = try await UserItemService.shared.getUserItemsCount(userId: userId) totalCollectionCount = count // Save to cache - CollectionCache.shared.setTotalCount(count) + cache.setTotalCount(count) } catch { print("Error loading collection count: \(error)") totalCollectionCount = 0 } } - private func loadTotalReviewsCount() async { + private func loadTotalReviewsCount(forceRefresh: Bool = false) async { guard let userId = user?.id else { return } + // Check cache first + if !forceRefresh, let cachedCount = cache.getReviewsCount() { + totalReviewsCount = cachedCount + return + } + do { let count = try await ReviewService.shared.getUserReviewsCount(userId: userId) totalReviewsCount = count + // Save to cache + cache.setReviewsCount(count) } catch { print("Error loading reviews count: \(error)") totalReviewsCount = 0 From 9635a7bddd5b878e3049686c98fbe98025cfa8c6 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 12:06:45 -0300 Subject: [PATCH 63/77] feat(caching): introduce SearchDataCache for managing popular content caching; implement cache retrieval and storage in SearchTabView, enhancing loading state management and improving user experience --- .../Plotwist/Services/SearchDataCache.swift | 134 ++++++++++++++++++ .../Plotwist/Views/Home/SearchTabView.swift | 70 ++++++++- 2 files changed, 198 insertions(+), 6 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Services/SearchDataCache.swift diff --git a/apps/ios/Plotwist/Plotwist/Services/SearchDataCache.swift b/apps/ios/Plotwist/Plotwist/Services/SearchDataCache.swift new file mode 100644 index 00000000..beb72a31 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Services/SearchDataCache.swift @@ -0,0 +1,134 @@ +// +// SearchDataCache.swift +// Plotwist +// + +import Foundation + +// MARK: - Search Data Cache +final class SearchDataCache { + static let shared = SearchDataCache() + private init() {} + + // Cache for popular movies + private var popularMoviesCache: [SearchResult]? + // Cache for popular TV series + private var popularTVSeriesCache: [SearchResult]? + // Cache for popular animes + private var popularAnimesCache: [SearchResult]? + // Cache for popular doramas + private var popularDoramasCache: [SearchResult]? + // Cache timestamp + private var lastUpdated: Date? + // Cache duration (5 minutes) + private let cacheDuration: TimeInterval = 300 + // Flag to track if initial load was done + private var hasLoadedOnce = false + // Store the preferences hash to invalidate when preferences change + private var lastPreferencesHash: String? + + // MARK: - Popular Movies + + var popularMovies: [SearchResult]? { + guard !isCacheExpired else { return nil } + return popularMoviesCache + } + + func setPopularMovies(_ items: [SearchResult]) { + popularMoviesCache = items + lastUpdated = Date() + hasLoadedOnce = true + } + + // MARK: - Popular TV Series + + var popularTVSeries: [SearchResult]? { + guard !isCacheExpired else { return nil } + return popularTVSeriesCache + } + + func setPopularTVSeries(_ items: [SearchResult]) { + popularTVSeriesCache = items + lastUpdated = Date() + hasLoadedOnce = true + } + + // MARK: - Popular Animes + + var popularAnimes: [SearchResult]? { + guard !isCacheExpired else { return nil } + return popularAnimesCache + } + + func setPopularAnimes(_ items: [SearchResult]) { + popularAnimesCache = items + lastUpdated = Date() + hasLoadedOnce = true + } + + // MARK: - Popular Doramas + + var popularDoramas: [SearchResult]? { + guard !isCacheExpired else { return nil } + return popularDoramasCache + } + + func setPopularDoramas(_ items: [SearchResult]) { + popularDoramasCache = items + lastUpdated = Date() + hasLoadedOnce = true + } + + // MARK: - Preferences Hash + + func setPreferencesHash(_ hash: String) { + if lastPreferencesHash != hash { + // Preferences changed, invalidate cache + clearCache() + lastPreferencesHash = hash + } + } + + // MARK: - Cache State + + var shouldShowSkeleton: Bool { + !hasLoadedOnce + } + + var isDataAvailable: Bool { + popularMoviesCache != nil || popularTVSeriesCache != nil || + popularAnimesCache != nil || popularDoramasCache != nil + } + + // MARK: - Cache Management + + private var isCacheExpired: Bool { + guard let lastUpdated else { return true } + return Date().timeIntervalSince(lastUpdated) > cacheDuration + } + + func clearCache() { + popularMoviesCache = nil + popularTVSeriesCache = nil + popularAnimesCache = nil + popularDoramasCache = nil + lastUpdated = nil + // Don't reset hasLoadedOnce to avoid showing skeleton again + } + + func invalidateCache() { + clearCache() + NotificationCenter.default.post(name: .searchDataCacheInvalidated, object: nil) + } + + func fullReset() { + clearCache() + hasLoadedOnce = false + lastPreferencesHash = nil + } +} + +// MARK: - Notification Names +extension Notification.Name { + static let searchDataCacheInvalidated = Notification.Name("searchDataCacheInvalidated") +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift index 64a900c9..ff046c60 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Home/SearchTabView.swift @@ -13,11 +13,15 @@ struct SearchTabView: View { @State private var popularAnimes: [SearchResult] = [] @State private var popularDoramas: [SearchResult] = [] @State private var isLoading = false - @State private var isLoadingPopular = true + @State private var isLoadingPopular = false + @State private var isInitialLoad = true + @State private var hasAppeared = false @State private var strings = L10n.current @State private var searchTask: Task? @ObservedObject private var preferencesManager = UserPreferencesManager.shared + private let cache = SearchDataCache.shared + private var movies: [SearchResult] { results.filter { $0.mediaType == "movie" } } @@ -79,7 +83,7 @@ struct SearchTabView: View { } // Results - if isLoading || isLoadingPopular { + if isLoading || (isLoadingPopular && isInitialLoad && cache.shouldShowSkeleton) { ScrollView { LazyVStack(alignment: .leading, spacing: 24) { SearchSkeletonSection() @@ -165,6 +169,12 @@ struct SearchTabView: View { } .navigationBarHidden(true) } + .onAppear { + if !hasAppeared { + hasAppeared = true + restoreFromCache() + } + } .task { await loadPopularContent() } @@ -186,19 +196,53 @@ struct SearchTabView: View { .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current Task { - await loadPopularContent() + await loadPopularContent(forceRefresh: true) } } .onReceive(NotificationCenter.default.publisher(for: .profileUpdated)) { _ in Task { - await loadPopularContent() + await loadPopularContent(forceRefresh: true) + } + } + .onReceive(NotificationCenter.default.publisher(for: .searchDataCacheInvalidated)) { _ in + Task { + await loadPopularContent(forceRefresh: true) } } } - private func loadPopularContent() async { + private func restoreFromCache() { + if let cachedMovies = cache.popularMovies { + popularMovies = cachedMovies + } + if let cachedTVSeries = cache.popularTVSeries { + popularTVSeries = cachedTVSeries + } + if let cachedAnimes = cache.popularAnimes { + popularAnimes = cachedAnimes + } + if let cachedDoramas = cache.popularDoramas { + popularDoramas = cachedDoramas + } + } + + private func loadPopularContent(forceRefresh: Bool = false) async { + // Check if preferences changed + let currentPreferencesHash = "\(preferencesManager.watchRegion ?? "")-\(preferencesManager.watchProvidersString)" + cache.setPreferencesHash(currentPreferencesHash) + + // Use cache if available and not forcing refresh + if !forceRefresh && cache.isDataAvailable { + restoreFromCache() + isInitialLoad = false + return + } + isLoadingPopular = true - defer { isLoadingPopular = false } + defer { + isLoadingPopular = false + isInitialLoad = false + } let language = Language.current.rawValue let watchRegion = preferencesManager.watchRegion @@ -234,6 +278,12 @@ struct SearchTabView: View { popularTVSeries = tv.results popularAnimes = animes.results popularDoramas = doramas.results + + // Save to cache + cache.setPopularMovies(movies.results) + cache.setPopularTVSeries(tv.results) + cache.setPopularAnimes(animes.results) + cache.setPopularDoramas(doramas.results) } else { // Use regular popular endpoints async let moviesTask = TMDBService.shared.getPopularMovies(language: language) @@ -246,6 +296,12 @@ struct SearchTabView: View { popularTVSeries = tv.results popularAnimes = animes.results popularDoramas = doramas.results + + // Save to cache + cache.setPopularMovies(movies.results) + cache.setPopularTVSeries(tv.results) + cache.setPopularAnimes(animes.results) + cache.setPopularDoramas(doramas.results) } } catch { popularMovies = [] @@ -347,6 +403,7 @@ struct SearchSkeletonSection: View { RoundedRectangle(cornerRadius: 4) .fill(Color.appSkeletonAdaptive) .frame(width: 80, height: 16) + .shimmer() LazyVGrid(columns: columns, spacing: 12) { ForEach(0..<6, id: \.self) { _ in @@ -362,5 +419,6 @@ struct PosterSkeletonCard: View { RoundedRectangle(cornerRadius: 12) .fill(Color.appSkeletonAdaptive) .aspectRatio(2 / 3, contentMode: .fit) + .shimmer() } } From 1033f7a4b3a3cf84f1b486232b299530dfaf5484 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 12:25:27 -0300 Subject: [PATCH 64/77] refactor(ui): remove shimmer effect and update placeholder colors across various views to enhance visual consistency; replace appSkeletonAdaptive with appBorderAdaptive for improved loading indicators --- .../Plotwist.xcodeproj/project.pbxproj | 8 ++-- .../Plotwist/Services/ImageCache.swift | 41 +------------------ apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 10 ----- .../Views/Details/MediaDetailView.swift | 1 - .../Views/Details/RelatedSection.swift | 4 +- .../Views/Details/ReviewListView.swift | 12 +++--- .../Views/Details/SeasonsListView.swift | 4 +- .../Views/Details/SeasonsSection.swift | 4 +- .../Views/Home/CategoryListView.swift | 4 +- .../Plotwist/Views/Home/HomeTabView.swift | 18 +++----- .../Plotwist/Views/Home/ProfileTabView.swift | 4 +- .../Plotwist/Views/Home/SearchTabView.swift | 6 +-- .../Views/Reviews/ReviewSectionView.swift | 8 ++-- 13 files changed, 33 insertions(+), 91 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj b/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj index 389069ac..d4cea5ce 100644 --- a/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj +++ b/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj @@ -252,7 +252,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = 54XPVTP5PA; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -265,7 +265,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 1.0.0; PRODUCT_BUNDLE_IDENTIFIER = henrique.Plotwist; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; @@ -280,7 +280,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = 54XPVTP5PA; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -293,7 +293,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 1.0.0; PRODUCT_BUNDLE_IDENTIFIER = henrique.Plotwist; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; diff --git a/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift b/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift index d3dc10fd..90a5ad33 100644 --- a/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift +++ b/apps/ios/Plotwist/Plotwist/Services/ImageCache.swift @@ -169,44 +169,6 @@ private actor TaskManager { } } -// MARK: - Shimmer Effect -struct ShimmerModifier: ViewModifier { - func body(content: Content) -> some View { - content - .overlay( - TimelineView(.animation(minimumInterval: 0.016, paused: false)) { timeline in - let phase = calculatePhase(from: timeline.date) - GeometryReader { geometry in - LinearGradient( - gradient: Gradient(colors: [ - .clear, - Color.white.opacity(0.3), - .clear - ]), - startPoint: .leading, - endPoint: .trailing - ) - .frame(width: geometry.size.width * 2) - .offset(x: -geometry.size.width + (geometry.size.width * 2 * phase)) - } - } - .mask(content) - ) - } - - private func calculatePhase(from date: Date) -> CGFloat { - let duration: Double = 1.2 - let elapsed = date.timeIntervalSinceReferenceDate.truncatingRemainder(dividingBy: duration) - return CGFloat(elapsed / duration) - } -} - -extension View { - func shimmer() -> some View { - modifier(ShimmerModifier()) - } -} - // MARK: - Cached Async Image (Enhanced) struct CachedAsyncImage: View { let url: URL? @@ -275,10 +237,9 @@ struct BackdropImage: View { var body: some View { ZStack { - // Shimmer placeholder + // Solid color placeholder Rectangle() .fill(Color.appBorderAdaptive) - .shimmer() .opacity(showImage ? 0 : 1) // Actual image with fade-in diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift index 0f8ec94d..378fc5c7 100644 --- a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -85,16 +85,6 @@ extension Color { } static let appDestructive = Color(hue: 0, saturation: 0.842, brightness: 0.602) - - // Dark skeleton slightly lighter than input - static var appSkeletonAdaptive: Color { - Color( - UIColor { - $0.userInterfaceStyle == .dark - ? UIColor(hue: 240 / 360, saturation: 0.037, brightness: 0.20, alpha: 1) - : UIColor(red: 229 / 255, green: 231 / 255, blue: 235 / 255, alpha: 1) - }) - } } // MARK: - Layered Shadow Modifier diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 9c93e3fa..8d4f7ff4 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -264,7 +264,6 @@ struct MediaDetailView: View { } placeholder: { RoundedRectangle(cornerRadius: 12) .fill(Color.appBorderAdaptive) - .shimmer() } .frame(width: 120, height: 180) .clipShape(RoundedRectangle(cornerRadius: 12)) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift index 4a0fbc85..4256b0ac 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/RelatedSection.swift @@ -111,7 +111,7 @@ struct RelatedSectionSkeleton: View { var body: some View { VStack(alignment: .leading, spacing: 12) { RoundedRectangle(cornerRadius: 4) - .fill(Color.appSkeletonAdaptive) + .fill(Color.appBorderAdaptive) .frame(width: 140, height: 20) .padding(.horizontal, 24) @@ -119,7 +119,7 @@ struct RelatedSectionSkeleton: View { HStack(spacing: 12) { ForEach(0..<5, id: \.self) { _ in RoundedRectangle(cornerRadius: 16) - .fill(Color.appSkeletonAdaptive) + .fill(Color.appBorderAdaptive) .frame(width: 120, height: 180) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift index 4bc49cbb..16f1023e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewListView.swift @@ -167,20 +167,20 @@ struct ReviewItemSkeleton: View { HStack(alignment: .top, spacing: 12) { // Avatar skeleton Circle() - .fill(Color.appSkeletonAdaptive) + .fill(Color.appBorderAdaptive) .frame(width: 40, height: 40) VStack(alignment: .leading, spacing: 0) { // Header: username + time HStack { RoundedRectangle(cornerRadius: 4) - .fill(Color.appSkeletonAdaptive) + .fill(Color.appBorderAdaptive) .frame(width: 100, height: 14) Spacer() RoundedRectangle(cornerRadius: 4) - .fill(Color.appSkeletonAdaptive) + .fill(Color.appBorderAdaptive) .frame(width: 40, height: 12) } @@ -188,7 +188,7 @@ struct ReviewItemSkeleton: View { HStack(spacing: 2) { ForEach(0..<5, id: \.self) { _ in RoundedRectangle(cornerRadius: 2) - .fill(Color.appSkeletonAdaptive) + .fill(Color.appBorderAdaptive) .frame(width: 14, height: 14) } } @@ -197,10 +197,10 @@ struct ReviewItemSkeleton: View { // Review text skeleton VStack(alignment: .leading, spacing: 4) { RoundedRectangle(cornerRadius: 4) - .fill(Color.appSkeletonAdaptive) + .fill(Color.appBorderAdaptive) .frame(height: 14) RoundedRectangle(cornerRadius: 4) - .fill(Color.appSkeletonAdaptive) + .fill(Color.appBorderAdaptive) .frame(width: 200, height: 14) } .padding(.top, 8) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift index 491fed49..ab1cf263 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift @@ -137,14 +137,14 @@ struct SeasonsListView: View { ForEach(0..<10, id: \.self) { _ in HStack(spacing: 0) { RoundedRectangle(cornerRadius: 4) - .fill(Color.appSkeletonAdaptive) + .fill(Color.appBorderAdaptive) .frame(width: 30, height: 20) .padding(.horizontal, 12) .padding(.vertical, 10) ForEach(0.. Date: Mon, 26 Jan 2026 20:32:09 -0300 Subject: [PATCH 65/77] refactor(ui): update star rating colors to use appStarYellow for improved visual consistency across ReviewButton, ReviewItemView, and StarRatingView; add appStarYellow color definition in Colors.swift --- apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift | 2 +- apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift | 2 +- apps/ios/Plotwist/Plotwist/Components/StarRatingView.swift | 4 ++-- apps/ios/Plotwist/Plotwist/Theme/Colors.swift | 3 +++ 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift b/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift index c483eff4..3b8e39f8 100644 --- a/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift +++ b/apps/ios/Plotwist/Plotwist/Components/ReviewButton.swift @@ -27,7 +27,7 @@ struct ReviewButton: View { } else { Image(systemName: hasReview ? "star.fill" : "star") .font(.system(size: 13)) - .foregroundColor(hasReview ? .yellow : .appForegroundAdaptive) + .foregroundColor(hasReview ? .appStarYellow : .appForegroundAdaptive) } Text(hasReview ? L10n.current.reviewed : L10n.current.review) diff --git a/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift b/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift index cdc150ca..e87cba35 100644 --- a/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift +++ b/apps/ios/Plotwist/Plotwist/Components/ReviewItemView.swift @@ -120,7 +120,7 @@ struct ReviewItemView: View { private func ratingColor(for index: Int) -> Color { let rating = review.rating if Double(index) <= rating || Double(index) - 0.5 <= rating { - return .yellow + return .appStarYellow } else { return .gray.opacity(0.3) } diff --git a/apps/ios/Plotwist/Plotwist/Components/StarRatingView.swift b/apps/ios/Plotwist/Plotwist/Components/StarRatingView.swift index 2c40d53e..064f5b9f 100644 --- a/apps/ios/Plotwist/Plotwist/Components/StarRatingView.swift +++ b/apps/ios/Plotwist/Plotwist/Components/StarRatingView.swift @@ -70,9 +70,9 @@ struct StarRatingView: View { let fillLevel = rating - Double(index - 1) if fillLevel >= 1.0 { - return .yellow + return .appStarYellow } else if fillLevel >= 0.5 { - return .yellow + return .appStarYellow } else { return Color.gray.opacity(0.3) } diff --git a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift index 378fc5c7..1299efb3 100644 --- a/apps/ios/Plotwist/Plotwist/Theme/Colors.swift +++ b/apps/ios/Plotwist/Plotwist/Theme/Colors.swift @@ -85,6 +85,9 @@ extension Color { } static let appDestructive = Color(hue: 0, saturation: 0.842, brightness: 0.602) + + // Star rating yellow - bright gold that works in both light and dark modes + static let appStarYellow = Color(hex: "FBBF24") } // MARK: - Layered Shadow Modifier From f2b31d51f9cc7d935c689aa5a27daba9c928be17 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 20:52:17 -0300 Subject: [PATCH 66/77] refactor(ui): implement FloatingSheetContainer for consistent sheet styling across views; update StatusSheet, SignUpView, MovieCollectionSheet, and ReviewSheet to utilize new floating sheet presentation methods, enhancing UI consistency and maintainability --- .../Plotwist/Components/StatusSheet.swift | 16 +- .../Plotwist/Extensions/View+Sheet.swift | 45 ++++- .../Plotwist/Views/Auth/SignUpView.swift | 70 ++++--- .../Views/Details/MovieCollectionViews.swift | 23 +-- .../Plotwist/Views/Details/ReviewSheet.swift | 182 +++++++++--------- 5 files changed, 185 insertions(+), 151 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift b/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift index c419d7fd..03958908 100644 --- a/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Components/StatusSheet.swift @@ -43,21 +43,21 @@ struct StatusSheet: View { } private var sheetHeight: CGFloat { + // Base: drag indicator (33) + title (44) + grid 2x2 (172) + bottom (24) = 273 + let baseHeight: CGFloat = 280 + if selectedStatus == .watched && !watchEntries.isEmpty { // Base height + rewatch section - let baseHeight: CGFloat = 340 let rewatchHeaderHeight: CGFloat = 50 let entryHeight: CGFloat = 32 let entriesHeight = CGFloat(watchEntries.count) * entryHeight - return min(baseHeight + rewatchHeaderHeight + entriesHeight + 24, 624) + return min(baseHeight + rewatchHeaderHeight + entriesHeight + 24, 580) } - return 340 + return baseHeight } var body: some View { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - + FloatingSheetContainer { ScrollView { VStack(spacing: 0) { // Drag Indicator @@ -142,9 +142,7 @@ struct StatusSheet: View { } } } - .presentationDetents([.height(sheetHeight)]) - .presentationCornerRadius(24) - .presentationDragIndicator(.hidden) + .floatingSheetPresentation(height: sheetHeight) .preferredColorScheme(themeManager.current.colorScheme) .alert("Error", isPresented: $showErrorAlert) { Button("OK", role: .cancel) {} diff --git a/apps/ios/Plotwist/Plotwist/Extensions/View+Sheet.swift b/apps/ios/Plotwist/Plotwist/Extensions/View+Sheet.swift index 94f2c130..57b4154f 100644 --- a/apps/ios/Plotwist/Plotwist/Extensions/View+Sheet.swift +++ b/apps/ios/Plotwist/Plotwist/Extensions/View+Sheet.swift @@ -5,12 +5,51 @@ import SwiftUI +// MARK: - Sheet Style Configuration +enum SheetStyle { + /// Margem horizontal do sheet flutuante + static let horizontalPadding: CGFloat = 16 + /// Raio de arredondamento do sheet + static let cornerRadius: CGFloat = 32 + /// Altura extra para compensar o padding (padding * 2) + static let heightOffset: CGFloat = 32 +} + +// MARK: - Floating Sheet Container +/// Container que aplica o estilo flutuante com margem e arredondamento +struct FloatingSheetContainer: View { + let content: Content + + init(@ViewBuilder content: () -> Content) { + self.content = content() + } + + var body: some View { + VStack { + Spacer() + content + .background(Color.appBackgroundAdaptive) + .clipShape(RoundedRectangle(cornerRadius: SheetStyle.cornerRadius)) + .padding(.horizontal, SheetStyle.horizontalPadding) + } + } +} + +// MARK: - View Extension extension View { - /// Aplica o estilo padrão para sheets/drawers do app - func standardSheetStyle(detents: Set = [.height(500), .large]) -> some View { + /// Aplica os modificadores de apresentação para sheet flutuante + func floatingSheetPresentation(height: CGFloat) -> some View { + self + .presentationDetents([.height(height + SheetStyle.heightOffset)]) + .presentationBackground(.clear) + .presentationDragIndicator(.hidden) + } + + /// Aplica os modificadores de apresentação para sheet flutuante com detents customizados + func floatingSheetPresentation(detents: Set) -> some View { self - .presentationCornerRadius(24) .presentationDetents(detents) + .presentationBackground(.clear) .presentationDragIndicator(.hidden) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift b/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift index 644667a6..00a73b9b 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Auth/SignUpView.swift @@ -140,7 +140,6 @@ struct SignUpView: View { password: password, onError: { self.error = $0 } ) - .standardSheetStyle(detents: [.height(320)]) } .onReceive(NotificationCenter.default.publisher(for: .languageChanged)) { _ in strings = L10n.current @@ -195,40 +194,53 @@ struct UsernameSheetView: View { @State private var strings = L10n.current var body: some View { - VStack(spacing: 24) { - VStack(spacing: 8) { - Text(strings.selectUsername) - .font(.system(size: 20, weight: .bold)) - Text(strings.selectUsernameDescription) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .multilineTextAlignment(.center) - } + FloatingSheetContainer { + VStack(spacing: 0) { + // Drag Indicator + RoundedRectangle(cornerRadius: 2.5) + .fill(Color.gray.opacity(0.4)) + .frame(width: 36, height: 5) + .padding(.top, 12) + .padding(.bottom, 16) - VStack(spacing: 16) { - TextField(strings.usernamePlaceholder, text: $username) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .padding(12) - .background(Color.clear) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(Color.appBorderAdaptive, lineWidth: 1) - ) + VStack(spacing: 24) { + VStack(spacing: 8) { + Text(strings.selectUsername) + .font(.system(size: 20, weight: .bold)) + .foregroundColor(.appForegroundAdaptive) + Text(strings.selectUsernameDescription) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .multilineTextAlignment(.center) + } - if let error { - Text(error) - .font(.caption) - .foregroundColor(.appDestructive) - } + VStack(spacing: 16) { + TextField(strings.usernamePlaceholder, text: $username) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding(12) + .background(Color.clear) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(Color.appBorderAdaptive, lineWidth: 1) + ) + + if let error { + Text(error) + .font(.caption) + .foregroundColor(.appDestructive) + } - PrimaryButton(strings.finishSignUp, variant: .filled, isLoading: isLoading) { - Task { await checkUsernameAndFinish() } + PrimaryButton(strings.finishSignUp, variant: .filled, isLoading: isLoading) { + Task { await checkUsernameAndFinish() } + } + } } + .padding(.horizontal, 24) + .padding(.bottom, 24) } } - .padding(24) - .background(Color.appBackgroundAdaptive) + .floatingSheetPresentation(height: 320) } private func checkUsernameAndFinish() async { diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MovieCollectionViews.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MovieCollectionViews.swift index c9909da8..de3cea66 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MovieCollectionViews.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MovieCollectionViews.swift @@ -92,9 +92,7 @@ struct MovieCollectionSheet: View { } var body: some View { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - + FloatingSheetContainer { VStack(spacing: 0) { // Drag Indicator RoundedRectangle(cornerRadius: 2.5) @@ -129,15 +127,14 @@ struct MovieCollectionSheet: View { let index = rowIndex * 3 + colIndex if index < sortedParts.count { let movie = sortedParts[index] - Button { - dismiss() - DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { - onMovieSelected(movie.id) + CollectionPosterCard(movie: movie) + .contentShape(Rectangle()) + .onTapGesture { + dismiss() + DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { + onMovieSelected(movie.id) + } } - } label: { - CollectionPosterCard(movie: movie) - } - .buttonStyle(.plain) } else { // Empty space for incomplete rows Color.clear @@ -154,9 +151,7 @@ struct MovieCollectionSheet: View { } } } - .presentationDetents([.medium, .large]) - .presentationCornerRadius(24) - .presentationDragIndicator(.hidden) + .floatingSheetPresentation(detents: [.medium]) .preferredColorScheme(themeManager.current.colorScheme) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift index 9f0d0a7e..a850ba86 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift @@ -36,119 +36,109 @@ struct ReviewSheet: View { } var body: some View { - ZStack { - Color.appBackgroundAdaptive.ignoresSafeArea() - - VStack(spacing: 0) { + FloatingSheetContainer { + VStack(spacing: 16) { // Drag Indicator RoundedRectangle(cornerRadius: 2.5) .fill(Color.gray.opacity(0.4)) .frame(width: 36, height: 5) .padding(.top, 12) - .padding(.bottom, 8) - ScrollView { - VStack(spacing: 16) { - // Title - Text(L10n.current.whatDidYouThink) - .font(.title3.bold()) + // Title + Text(L10n.current.whatDidYouThink) + .font(.title3.bold()) + .foregroundColor(.appForegroundAdaptive) + .frame(maxWidth: .infinity, alignment: .center) + + // Rating + StarRatingView(rating: $rating, size: 36) + .frame(maxWidth: .infinity) + + // Review Text with Spoilers Toggle + ZStack(alignment: .bottomTrailing) { + ZStack(alignment: .topLeading) { + TextEditor(text: $reviewText) + .frame(height: 120) + .padding(.horizontal, 12) + .padding(.top, 8) + .padding(.bottom, 36) + .background(Color.appInputFilled) + .cornerRadius(12) .foregroundColor(.appForegroundAdaptive) - .frame(maxWidth: .infinity, alignment: .center) - .padding(.top, 4) - - // Rating - StarRatingView(rating: $rating, size: 36) - .frame(maxWidth: .infinity) - - // Review Text with Spoilers Toggle - ZStack(alignment: .bottomTrailing) { - ZStack(alignment: .topLeading) { - TextEditor(text: $reviewText) - .frame(height: 120) - .padding(.horizontal, 12) - .padding(.top, 8) - .padding(.bottom, 36) - .background(Color.appInputFilled) - .cornerRadius(12) - .foregroundColor(.appForegroundAdaptive) - .scrollContentBackground(.hidden) - - if reviewText.isEmpty { - Text(L10n.current.shareYourOpinion) - .foregroundColor(.appMutedForegroundAdaptive) - .padding(.horizontal, 16) - .padding(.vertical, 12) - .allowsHitTesting(false) - } - } - - // Spoilers Toggle inside the text field - Button(action: { hasSpoilers.toggle() }) { - HStack(spacing: 6) { - Image(systemName: hasSpoilers ? "checkmark.square.fill" : "square") - .font(.system(size: 16)) - .foregroundColor(hasSpoilers ? .appForegroundAdaptive : .gray) - - Text(L10n.current.containSpoilers) - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - } - .padding(.horizontal, 12) - .padding(.vertical, 8) - } + .scrollContentBackground(.hidden) + + if reviewText.isEmpty { + Text(L10n.current.shareYourOpinion) + .foregroundColor(.appMutedForegroundAdaptive) + .padding(.horizontal, 16) + .padding(.vertical, 12) + .allowsHitTesting(false) + } + } + + // Spoilers Toggle inside the text field + Button(action: { hasSpoilers.toggle() }) { + HStack(spacing: 6) { + Image(systemName: hasSpoilers ? "checkmark.square.fill" : "square") + .font(.system(size: 16)) + .foregroundColor(hasSpoilers ? .appForegroundAdaptive : .gray) + + Text(L10n.current.containSpoilers) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) } + .padding(.horizontal, 12) + .padding(.vertical, 8) + } + } - // Submit Button - Button(action: submitReview) { - Group { - if isLoading { - ProgressView() - .tint(.appBackgroundAdaptive) - } else { - Text(existingReview != nil ? L10n.current.editReview : L10n.current.submitReview) - .fontWeight(.semibold) - } - } - .frame(maxWidth: .infinity) - .frame(height: 48) - .background(Color.appForegroundAdaptive) - .foregroundColor(.appBackgroundAdaptive) - .cornerRadius(12) + // Submit Button + Button(action: submitReview) { + Group { + if isLoading { + ProgressView() + .tint(.appBackgroundAdaptive) + } else { + Text(existingReview != nil ? L10n.current.editReview : L10n.current.submitReview) + .fontWeight(.semibold) } - .disabled(!isFormValid || isLoading || isDeleting) - .opacity(!isFormValid || isLoading || isDeleting ? 0.5 : 1) - - // Delete Button (only when editing) - if existingReview != nil { - Button(action: { showDeleteConfirmation = true }) { - Group { - if isDeleting { - ProgressView() - .tint(.red) - } else { - HStack(spacing: 8) { - Image(systemName: "trash") - Text(L10n.current.deleteReview) - .fontWeight(.semibold) - } - } + } + .frame(maxWidth: .infinity) + .frame(height: 48) + .background(Color.appForegroundAdaptive) + .foregroundColor(.appBackgroundAdaptive) + .cornerRadius(12) + } + .disabled(!isFormValid || isLoading || isDeleting) + .opacity(!isFormValid || isLoading || isDeleting ? 0.5 : 1) + + // Delete Button (only when editing) + if existingReview != nil { + Button(action: { showDeleteConfirmation = true }) { + Group { + if isDeleting { + ProgressView() + .tint(.red) + } else { + HStack(spacing: 8) { + Image(systemName: "trash") + Text(L10n.current.deleteReview) + .fontWeight(.semibold) } - .frame(maxWidth: .infinity) - .frame(height: 48) - .foregroundColor(.red) } - .disabled(isLoading || isDeleting) - .opacity(isLoading || isDeleting ? 0.5 : 1) } + .frame(maxWidth: .infinity) + .frame(height: 48) + .foregroundColor(.red) } - .padding(.horizontal, 24) - .padding(.bottom, 16) + .disabled(isLoading || isDeleting) + .opacity(isLoading || isDeleting ? 0.5 : 1) } } + .padding(.horizontal, 24) + .padding(.bottom, 24) } - .presentationDetents([.height(existingReview != nil ? 440 : 380)]) - .presentationCornerRadius(24) - .presentationDragIndicator(.hidden) + .floatingSheetPresentation(height: existingReview != nil ? 480 : 420) .preferredColorScheme(themeManager.current.colorScheme) .alert("Error", isPresented: $showErrorAlert) { Button("OK", role: .cancel) {} From ec900ceafc077a18dec155d21e82e97b1997138f Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 21:06:40 -0300 Subject: [PATCH 67/77] refactor(ui): reorganize MediaDetailView layout for improved structure; move back button to a sticky position and adjust backdrop image handling for better visual consistency --- .../Views/Details/MediaDetailView.swift | 62 ++++++++++--------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index 8d4f7ff4..dbb8160c 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -48,18 +48,18 @@ struct MediaDetailView: View { GeometryReader { geometry in let backdropHeight = geometry.size.height * 0.45 - ScrollView(showsIndicators: false) { - VStack(alignment: .leading, spacing: 0) { - // Backdrop Section (stays behind content) - ZStack(alignment: .topLeading) { - // Backdrop Image/Carousel (using optimized cached loading) - if backdropImages.isEmpty { - BackdropImage( - url: details.backdropURL, - height: backdropHeight + cornerRadius - ) - } else { - ZStack(alignment: .bottomTrailing) { + ZStack(alignment: .topLeading) { + ScrollView(showsIndicators: false) { + VStack(alignment: .leading, spacing: 0) { + // Backdrop Section (stays behind content) + ZStack(alignment: .bottomTrailing) { + // Backdrop Image/Carousel (using optimized cached loading) + if backdropImages.isEmpty { + BackdropImage( + url: details.backdropURL, + height: backdropHeight + cornerRadius + ) + } else { NavigationLink( destination: MediaImagesView(mediaId: mediaId, mediaType: mediaType) ) { @@ -70,8 +70,10 @@ struct MediaDetailView: View { ) } .buttonStyle(.plain) + } - // Image counter + // Image counter (only show when we have multiple images) + if !backdropImages.isEmpty { Text("\(currentBackdropIndex + 1)/\(min(backdropImages.count, 10))") .font(.caption.weight(.semibold)) .foregroundColor(.white) @@ -84,21 +86,6 @@ struct MediaDetailView: View { } } - // Back button - Button { - dismiss() - } label: { - Image(systemName: "chevron.left") - .font(.system(size: 18, weight: .semibold)) - .foregroundColor(.white) - .frame(width: 40, height: 40) - .background(.ultraThinMaterial) - .clipShape(Circle()) - } - .padding(.top, 60) - .padding(.leading, 24) - } - // Content Card (rounded, overlaps backdrop) ZStack(alignment: .topLeading) { // Background card with rounded corners @@ -295,6 +282,25 @@ struct MediaDetailView: View { } } .ignoresSafeArea(edges: .top) + + // Sticky Back Button + VStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.white) + .frame(width: 40, height: 40) + .background(.ultraThinMaterial) + .clipShape(Circle()) + } + .padding(.leading, 24) + Spacer() + } + .padding(.top, 8) + .safeAreaPadding(.top) + } } } } From e1f018bfd91cccbaef22ddd8be399d8b3519a3cf Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 21:32:19 -0300 Subject: [PATCH 68/77] feat(ui): add SeasonDetailView for displaying detailed season information; update SeasonsListView and SeasonsSection to navigate to SeasonDetailView with series name and season data --- .../Views/Details/MediaDetailView.swift | 1 + .../Plotwist/Views/Details/ReviewSheet.swift | 6 +- .../Views/Details/SeasonDetailView.swift | 353 ++++++++++++++++++ .../Views/Details/SeasonsListView.swift | 56 +-- .../Views/Details/SeasonsSection.swift | 10 +- 5 files changed, 397 insertions(+), 29 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index dbb8160c..bf70d135 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -206,6 +206,7 @@ struct MediaDetailView: View { SeasonsSection( seasons: details.displaySeasons, seriesId: mediaId, + seriesName: details.displayTitle, onContentLoaded: { hasContent in hasSeasons = hasContent } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift index a850ba86..b0a61e1e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/ReviewSheet.swift @@ -8,6 +8,7 @@ import SwiftUI struct ReviewSheet: View { let mediaId: Int let mediaType: String + let seasonNumber: Int? let existingReview: Review? let onDeleted: (() -> Void)? @Environment(\.dismiss) private var dismiss @@ -22,9 +23,10 @@ struct ReviewSheet: View { @State private var showDeleteConfirmation: Bool = false @State private var errorMessage: String = "" - init(mediaId: Int, mediaType: String, existingReview: Review? = nil, onDeleted: (() -> Void)? = nil) { + init(mediaId: Int, mediaType: String, seasonNumber: Int? = nil, existingReview: Review? = nil, onDeleted: (() -> Void)? = nil) { self.mediaId = mediaId self.mediaType = mediaType + self.seasonNumber = seasonNumber self.existingReview = existingReview self.onDeleted = onDeleted @@ -176,7 +178,7 @@ struct ReviewSheet: View { review: reviewText, rating: rating, hasSpoilers: hasSpoilers, - seasonNumber: nil, + seasonNumber: seasonNumber, episodeNumber: nil, language: Language.current.rawValue ) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift new file mode 100644 index 00000000..cd71ef37 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift @@ -0,0 +1,353 @@ +// +// SeasonDetailView.swift +// Plotwist +// + +import SwiftUI + +struct SeasonDetailView: View { + let seriesId: Int + let seriesName: String + let season: Season + + @Environment(\.dismiss) private var dismiss + @ObservedObject private var themeManager = ThemeManager.shared + @State private var seasonDetails: SeasonDetails? + @State private var isLoading = true + @State private var userReview: Review? + @State private var isLoadingUserReview = false + @State private var showReviewSheet = false + @State private var reviewsRefreshId = UUID() + @State private var hasReviews = false + + private var formattedAirDate: String? { + guard let airDate = season.airDate else { return nil } + let inputFormatter = DateFormatter() + inputFormatter.dateFormat = "yyyy-MM-dd" + guard let date = inputFormatter.date(from: airDate) else { return nil } + + let outputFormatter = DateFormatter() + outputFormatter.dateFormat = "d 'de' MMMM 'de' yyyy" + outputFormatter.locale = Locale(identifier: Language.current.rawValue) + return outputFormatter.string(from: date) + } + + var body: some View { + ZStack { + Color.appBackgroundAdaptive.ignoresSafeArea() + + ScrollView(showsIndicators: false) { + VStack(alignment: .leading, spacing: 0) { + // Header with poster and info + HStack(alignment: .bottom, spacing: 16) { + // Poster + CachedAsyncImage(url: season.posterURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + .overlay( + ProgressView() + .scaleEffect(0.8) + ) + } + .frame(width: 120, height: 180) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterBorder(cornerRadius: 12) + .posterShadow() + + // Info + VStack(alignment: .leading, spacing: 4) { + if let airDate = formattedAirDate { + Text(airDate) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + + Text(season.name) + .font(.title2.bold()) + .foregroundColor(.appForegroundAdaptive) + } + .padding(.bottom, 8) + + Spacer() + } + .padding(.horizontal, 24) + .padding(.top, 80) + + // Review Button + if AuthService.shared.isAuthenticated { + ReviewButton( + hasReview: userReview != nil, + isLoading: isLoadingUserReview, + action: { + showReviewSheet = true + } + ) + .padding(.horizontal, 24) + .padding(.top, 24) + } + + // Overview + if let overview = seasonDetails?.overview ?? season.overview, !overview.isEmpty { + Text(overview) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .lineSpacing(6) + .padding(.horizontal, 24) + .padding(.top, 20) + } + + // Divider + if hasReviews { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + + // Reviews Section + SeasonReviewSectionView( + seriesId: seriesId, + seasonNumber: season.seasonNumber, + refreshId: reviewsRefreshId, + onEmptyStateTapped: { + if AuthService.shared.isAuthenticated { + showReviewSheet = true + } + }, + onContentLoaded: { hasContent in + hasReviews = hasContent + } + ) + + Spacer() + .frame(height: 80) + } + } + + // Header overlay + VStack { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + } + + Spacer() + + Text(seriesName) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + .lineLimit(1) + + Spacer() + + Color.clear + .frame(width: 40, height: 40) + } + .padding(.horizontal, 16) + .padding(.vertical, 12) + .background(Color.appBackgroundAdaptive) + + Spacer() + } + } + .navigationBarHidden(true) + .preferredColorScheme(themeManager.current.colorScheme) + .sheet(isPresented: $showReviewSheet) { + ReviewSheet( + mediaId: seriesId, + mediaType: "tv", + seasonNumber: season.seasonNumber, + existingReview: userReview + ) + } + .task { + if AuthService.shared.isAuthenticated { + isLoadingUserReview = true + } + await loadSeasonDetails() + if AuthService.shared.isAuthenticated { + await loadUserReview() + } + } + .onChange(of: showReviewSheet) { _, isPresented in + if !isPresented && AuthService.shared.isAuthenticated { + Task { + await loadUserReview() + } + reviewsRefreshId = UUID() + } + } + } + + private func loadSeasonDetails() async { + isLoading = true + defer { isLoading = false } + + do { + seasonDetails = try await TMDBService.shared.getSeasonDetails( + seriesId: seriesId, + seasonNumber: season.seasonNumber, + language: Language.current.rawValue + ) + } catch { + seasonDetails = nil + } + } + + private func loadUserReview() async { + isLoadingUserReview = true + defer { isLoadingUserReview = false } + + do { + userReview = try await ReviewService.shared.getUserReview( + tmdbId: seriesId, + mediaType: "TV_SHOW", + seasonNumber: season.seasonNumber + ) + } catch { + userReview = nil + } + } +} + +// MARK: - Season Review Section View +struct SeasonReviewSectionView: View { + let seriesId: Int + let seasonNumber: Int + let refreshId: UUID + var onEmptyStateTapped: (() -> Void)? + var onContentLoaded: ((Bool) -> Void)? + + @State private var reviews: [ReviewListItem] = [] + @State private var isLoading = true + @State private var hasLoaded = false + + private var averageRating: Double { + guard !reviews.isEmpty else { return 0 } + let total = reviews.reduce(0) { $0 + $1.rating } + return total / Double(reviews.count) + } + + private var reviewsWithText: [ReviewListItem] { + reviews.filter { !$0.review.isEmpty } + } + + var body: some View { + Group { + if isLoading { + VStack(spacing: 16) { + HStack(spacing: 6) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(width: 16, height: 16) + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(width: 30, height: 18) + Circle() + .fill(Color.appBorderAdaptive) + .frame(width: 4, height: 4) + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(width: 80, height: 14) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) + } + } else if reviews.isEmpty { + EmptyView() + } else { + VStack(spacing: 16) { + // Rating Header + HStack(spacing: 6) { + Image(systemName: "star.fill") + .font(.system(size: 16)) + .foregroundColor(.appStarYellow) + + Text(String(format: "%.1f", averageRating)) + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + + Circle() + .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) + .frame(width: 4, height: 4) + + Text( + "\(reviews.count) \(reviews.count == 1 ? L10n.current.reviewSingular.lowercased() : L10n.current.tabReviews.lowercased())" + ) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) + + // Horizontal scrolling reviews + if !reviewsWithText.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { + HStack(alignment: .top, spacing: 0) { + ForEach(Array(reviewsWithText.enumerated()), id: \.element.id) { index, review in + HStack(alignment: .top, spacing: 0) { + ReviewCardView(review: review) + .frame(width: min(UIScreen.main.bounds.width * 0.75, 300)) + .padding(.leading, index == 0 ? 24 : 0) + .padding(.trailing, 24) + + if index < reviewsWithText.count - 1 { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(width: 1) + .frame(height: 140) + .padding(.trailing, 24) + } + } + } + } + } + } + } + } + } + .task { + await loadReviews() + } + .onChange(of: refreshId) { _, _ in + Task { + await loadReviews(forceReload: true) + } + } + } + + private func loadReviews(forceReload: Bool = false) async { + guard !hasLoaded || forceReload else { + isLoading = false + onContentLoaded?(!reviews.isEmpty) + return + } + + isLoading = true + + do { + reviews = try await ReviewService.shared.getReviews( + tmdbId: seriesId, + mediaType: "TV_SHOW", + seasonNumber: seasonNumber + ) + isLoading = false + hasLoaded = true + onContentLoaded?(!reviews.isEmpty) + } catch { + isLoading = false + hasLoaded = true + onContentLoaded?(false) + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift index ab1cf263..f07dc397 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsListView.swift @@ -22,6 +22,7 @@ enum SeasonsTab: CaseIterable { struct SeasonsListView: View { let seasons: [Season] let seriesId: Int + let seriesName: String @Environment(\.dismiss) private var dismiss @State private var selectedTab: SeasonsTab = .grid @@ -94,33 +95,38 @@ struct SeasonsListView: View { private var gridContent: some View { LazyVGrid(columns: columns, spacing: 16) { ForEach(seasons) { season in - VStack(alignment: .leading, spacing: 8) { - CachedAsyncImage(url: season.posterURL) { image in - image - .resizable() - .aspectRatio(2 / 3, contentMode: .fill) - } placeholder: { - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - .aspectRatio(2 / 3, contentMode: .fill) - .overlay( - VStack(spacing: 4) { - Image(systemName: "photo") - .font(.title3) - .foregroundColor(.appMutedForegroundAdaptive) - Text(season.name) - .font(.caption2) - .foregroundColor(.appMutedForegroundAdaptive) - .multilineTextAlignment(.center) - .lineLimit(2) - .padding(.horizontal, 4) - } - ) + NavigationLink { + SeasonDetailView(seriesId: seriesId, seriesName: seriesName, season: season) + } label: { + VStack(alignment: .leading, spacing: 8) { + CachedAsyncImage(url: season.posterURL) { image in + image + .resizable() + .aspectRatio(2 / 3, contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + .aspectRatio(2 / 3, contentMode: .fill) + .overlay( + VStack(spacing: 4) { + Image(systemName: "photo") + .font(.title3) + .foregroundColor(.appMutedForegroundAdaptive) + Text(season.name) + .font(.caption2) + .foregroundColor(.appMutedForegroundAdaptive) + .multilineTextAlignment(.center) + .lineLimit(2) + .padding(.horizontal, 4) + } + ) + } + .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterBorder(cornerRadius: 12) + .posterShadow() } - .clipShape(RoundedRectangle(cornerRadius: 12)) - .posterBorder(cornerRadius: 12) - .posterShadow() } + .buttonStyle(.plain) } } .padding(.horizontal, 24) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsSection.swift index 92cbfc5d..24064dcc 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsSection.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonsSection.swift @@ -8,6 +8,7 @@ import SwiftUI struct SeasonsSection: View { let seasons: [Season] let seriesId: Int + let seriesName: String var onContentLoaded: ((Bool) -> Void)? private let strings = L10n.current @@ -17,7 +18,7 @@ struct SeasonsSection: View { if !seasons.isEmpty { // Title with navigation NavigationLink { - SeasonsListView(seasons: seasons, seriesId: seriesId) + SeasonsListView(seasons: seasons, seriesId: seriesId, seriesName: seriesName) } label: { HStack(spacing: 6) { Text(strings.tabSeasons) @@ -38,7 +39,12 @@ struct SeasonsSection: View { ScrollView(.horizontal, showsIndicators: false) { HStack(spacing: 12) { ForEach(seasons) { season in - SeasonPosterCard(season: season) + NavigationLink { + SeasonDetailView(seriesId: seriesId, seriesName: seriesName, season: season) + } label: { + SeasonPosterCard(season: season) + } + .buttonStyle(.plain) } } .padding(.horizontal, 24) From 937725ff6cee57cdd4323ce1e285dc94a0dd96f7 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 21:43:54 -0300 Subject: [PATCH 69/77] feat(ui): add EpisodeRowView and EpisodesSectionView for displaying episode details; enhance SeasonDetailView to include episode listings and update localization for episode labels --- .../Plotwist/Components/EpisodeRowView.swift | 61 ++++ .../Components/EpisodesSectionView.swift | 26 ++ .../Plotwist/Localization/Strings.swift | 8 + .../Plotwist/Services/TMDBService.swift | 11 + .../Views/Details/SeasonDetailView.swift | 338 +++++++----------- .../Details/SeasonReviewSectionView.swift | 148 ++++++++ 6 files changed, 387 insertions(+), 205 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift create mode 100644 apps/ios/Plotwist/Plotwist/Views/Details/SeasonReviewSectionView.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift b/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift new file mode 100644 index 00000000..92b2fa85 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift @@ -0,0 +1,61 @@ +// +// EpisodeRowView.swift +// Plotwist +// + +import SwiftUI + +struct EpisodeRowView: View { + let episode: Episode + + var body: some View { + VStack(alignment: .leading, spacing: 12) { + // Top row: Backdrop + Title/Duration + HStack(alignment: .top, spacing: 12) { + // Episode backdrop + CachedAsyncImage(url: episode.stillURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 8) + .fill(Color.appBorderAdaptive) + .overlay( + Image(systemName: "play.rectangle") + .font(.title3) + .foregroundColor(.appMutedForegroundAdaptive) + ) + } + .frame(width: 140, height: 80) + .clipShape(RoundedRectangle(cornerRadius: 8)) + .posterBorder(cornerRadius: 8) + + // Title and duration + VStack(alignment: .leading, spacing: 4) { + // Episode title with number prefix + Text("\(episode.episodeNumber). \(episode.name)") + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + .lineLimit(2) + + // Duration + if let runtime = episode.formattedRuntime { + Text(runtime) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + } + + Spacer() + } + + // Description below + if let overview = episode.overview, !overview.isEmpty { + Text(overview) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + .lineLimit(3) + } + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift b/apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift new file mode 100644 index 00000000..01bec7d8 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift @@ -0,0 +1,26 @@ +// +// EpisodesSectionView.swift +// Plotwist +// + +import SwiftUI + +struct EpisodesSectionView: View { + let episodes: [Episode] + + var body: some View { + VStack(alignment: .leading, spacing: 16) { + Text(L10n.current.episodes) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + .padding(.horizontal, 24) + + VStack(spacing: 16) { + ForEach(episodes) { episode in + EpisodeRowView(episode: episode) + } + } + .padding(.horizontal, 24) + } + } +} diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 9ab2c307..6703d484 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -158,6 +158,7 @@ enum L10n { seeCollection: "See Collection", // Seasons tabSeasons: "Seasons", + episodes: "Episodes", episodesCount: "%d episodes", grid: "Grid", overview: "Overview", @@ -306,6 +307,7 @@ enum L10n { seeCollection: "Ver Coleção", // Seasons tabSeasons: "Temporadas", + episodes: "Episódios", episodesCount: "%d episódios", grid: "Grade", overview: "Visão Geral", @@ -454,6 +456,7 @@ enum L10n { seeCollection: "Ver Colección", // Seasons tabSeasons: "Temporadas", + episodes: "Episodios", episodesCount: "%d episodios", grid: "Cuadrícula", overview: "Resumen", @@ -602,6 +605,7 @@ enum L10n { seeCollection: "Voir la Collection", // Seasons tabSeasons: "Saisons", + episodes: "Épisodes", episodesCount: "%d épisodes", grid: "Grille", overview: "Aperçu", @@ -750,6 +754,7 @@ enum L10n { seeCollection: "Sammlung ansehen", // Seasons tabSeasons: "Staffeln", + episodes: "Episoden", episodesCount: "%d Episoden", grid: "Raster", overview: "Übersicht", @@ -898,6 +903,7 @@ enum L10n { seeCollection: "Vedi Collezione", // Seasons tabSeasons: "Stagioni", + episodes: "Episodi", episodesCount: "%d episodi", grid: "Griglia", overview: "Panoramica", @@ -1045,6 +1051,7 @@ enum L10n { seeCollection: "コレクションを見る", // Seasons tabSeasons: "シーズン", + episodes: "エピソード", episodesCount: "%d 話", grid: "グリッド", overview: "概要", @@ -1213,6 +1220,7 @@ struct Strings { let seeCollection: String // Seasons let tabSeasons: String + let episodes: String let episodesCount: String let grid: String let overview: String diff --git a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift index 335f25f6..b6de58fc 100644 --- a/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift +++ b/apps/ios/Plotwist/Plotwist/Services/TMDBService.swift @@ -892,11 +892,22 @@ struct Episode: Codable, Identifiable { let airDate: String? let voteAverage: Double let voteCount: Int + let runtime: Int? var stillURL: URL? { guard let stillPath else { return nil } return URL(string: "https://image.tmdb.org/t/p/w500\(stillPath)") } + + var formattedRuntime: String? { + guard let runtime = runtime, runtime > 0 else { return nil } + if runtime >= 60 { + let hours = runtime / 60 + let minutes = runtime % 60 + return minutes > 0 ? "\(hours)h \(minutes)min" : "\(hours)h" + } + return "\(runtime)min" + } } // MARK: - Belongs To Collection diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift index cd71ef37..0a938a2d 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift @@ -19,17 +19,14 @@ struct SeasonDetailView: View { @State private var showReviewSheet = false @State private var reviewsRefreshId = UUID() @State private var hasReviews = false + @State private var scrollOffset: CGFloat = 0 + @State private var initialScrollOffset: CGFloat? = nil - private var formattedAirDate: String? { - guard let airDate = season.airDate else { return nil } - let inputFormatter = DateFormatter() - inputFormatter.dateFormat = "yyyy-MM-dd" - guard let date = inputFormatter.date(from: airDate) else { return nil } - - let outputFormatter = DateFormatter() - outputFormatter.dateFormat = "d 'de' MMMM 'de' yyyy" - outputFormatter.locale = Locale(identifier: Language.current.rawValue) - return outputFormatter.string(from: date) + private let scrollThreshold: CGFloat = 20 + + private var isScrolled: Bool { + guard let initial = initialScrollOffset else { return false } + return scrollOffset < initial - scrollThreshold } var body: some View { @@ -39,52 +36,18 @@ struct SeasonDetailView: View { ScrollView(showsIndicators: false) { VStack(alignment: .leading, spacing: 0) { // Header with poster and info - HStack(alignment: .bottom, spacing: 16) { - // Poster - CachedAsyncImage(url: season.posterURL) { image in - image - .resizable() - .aspectRatio(contentMode: .fill) - } placeholder: { - RoundedRectangle(cornerRadius: 12) - .fill(Color.appBorderAdaptive) - .overlay( - ProgressView() - .scaleEffect(0.8) - ) - } - .frame(width: 120, height: 180) - .clipShape(RoundedRectangle(cornerRadius: 12)) - .posterBorder(cornerRadius: 12) - .posterShadow() - - // Info - VStack(alignment: .leading, spacing: 4) { - if let airDate = formattedAirDate { - Text(airDate) - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - } - - Text(season.name) - .font(.title2.bold()) - .foregroundColor(.appForegroundAdaptive) - } - .padding(.bottom, 8) - - Spacer() - } - .padding(.horizontal, 24) - .padding(.top, 80) + SeasonHeaderView( + season: season, + scrollOffset: $scrollOffset, + initialScrollOffset: $initialScrollOffset + ) // Review Button if AuthService.shared.isAuthenticated { ReviewButton( hasReview: userReview != nil, isLoading: isLoadingUserReview, - action: { - showReviewSheet = true - } + action: { showReviewSheet = true } ) .padding(.horizontal, 24) .padding(.top, 24) @@ -100,13 +63,9 @@ struct SeasonDetailView: View { .padding(.top, 20) } - // Divider + // Divider before reviews if hasReviews { - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(height: 1) - .padding(.horizontal, 24) - .padding(.vertical, 24) + sectionDivider } // Reviews Section @@ -124,41 +83,19 @@ struct SeasonDetailView: View { } ) - Spacer() - .frame(height: 80) - } - } - - // Header overlay - VStack { - HStack { - Button { - dismiss() - } label: { - Image(systemName: "chevron.left") - .font(.system(size: 18, weight: .semibold)) - .foregroundColor(.appForegroundAdaptive) - .frame(width: 40, height: 40) + // Episodes Section + if let details = seasonDetails, !details.episodes.isEmpty { + sectionDivider + EpisodesSectionView(episodes: details.episodes) } Spacer() - - Text(seriesName) - .font(.headline) - .foregroundColor(.appForegroundAdaptive) - .lineLimit(1) - - Spacer() - - Color.clear - .frame(width: 40, height: 40) + .frame(height: 80) } - .padding(.horizontal, 16) - .padding(.vertical, 12) - .background(Color.appBackgroundAdaptive) - - Spacer() } + + // Navigation Header + navigationHeader } .navigationBarHidden(true) .preferredColorScheme(themeManager.current.colorScheme) @@ -189,6 +126,57 @@ struct SeasonDetailView: View { } } + // MARK: - Section Divider + private var sectionDivider: some View { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .padding(.vertical, 24) + } + + // MARK: - Navigation Header + private var navigationHeader: some View { + VStack { + HStack { + Button { + dismiss() + } label: { + Image(systemName: "chevron.left") + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + .frame(width: 40, height: 40) + } + + Spacer() + + Text(seriesName) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + .lineLimit(1) + + Spacer() + + Color.clear + .frame(width: 40, height: 40) + } + .padding(.horizontal, 16) + .padding(.vertical, 12) + .background(Color.appBackgroundAdaptive) + .overlay( + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + .opacity(isScrolled ? 1 : 0), + alignment: .bottom + ) + .animation(.easeInOut(duration: 0.2), value: isScrolled) + + Spacer() + } + } + + // MARK: - Load Season Details private func loadSeasonDetails() async { isLoading = true defer { isLoading = false } @@ -204,6 +192,7 @@ struct SeasonDetailView: View { } } + // MARK: - Load User Review private func loadUserReview() async { isLoadingUserReview = true defer { isLoadingUserReview = false } @@ -220,134 +209,73 @@ struct SeasonDetailView: View { } } -// MARK: - Season Review Section View -struct SeasonReviewSectionView: View { - let seriesId: Int - let seasonNumber: Int - let refreshId: UUID - var onEmptyStateTapped: (() -> Void)? - var onContentLoaded: ((Bool) -> Void)? - - @State private var reviews: [ReviewListItem] = [] - @State private var isLoading = true - @State private var hasLoaded = false - - private var averageRating: Double { - guard !reviews.isEmpty else { return 0 } - let total = reviews.reduce(0) { $0 + $1.rating } - return total / Double(reviews.count) - } +// MARK: - Season Header View +struct SeasonHeaderView: View { + let season: Season + @Binding var scrollOffset: CGFloat + @Binding var initialScrollOffset: CGFloat? - private var reviewsWithText: [ReviewListItem] { - reviews.filter { !$0.review.isEmpty } + private var formattedAirDate: String? { + guard let airDate = season.airDate else { return nil } + let inputFormatter = DateFormatter() + inputFormatter.dateFormat = "yyyy-MM-dd" + guard let date = inputFormatter.date(from: airDate) else { return nil } + + let outputFormatter = DateFormatter() + outputFormatter.dateFormat = "d 'de' MMMM 'de' yyyy" + outputFormatter.locale = Locale(identifier: Language.current.rawValue) + return outputFormatter.string(from: date) } var body: some View { - Group { - if isLoading { - VStack(spacing: 16) { - HStack(spacing: 6) { - RoundedRectangle(cornerRadius: 4) - .fill(Color.appBorderAdaptive) - .frame(width: 16, height: 16) - RoundedRectangle(cornerRadius: 4) - .fill(Color.appBorderAdaptive) - .frame(width: 30, height: 18) - Circle() - .fill(Color.appBorderAdaptive) - .frame(width: 4, height: 4) - RoundedRectangle(cornerRadius: 4) - .fill(Color.appBorderAdaptive) - .frame(width: 80, height: 14) - } - .frame(maxWidth: .infinity, alignment: .leading) - .padding(.horizontal, 24) - } - } else if reviews.isEmpty { - EmptyView() - } else { - VStack(spacing: 16) { - // Rating Header - HStack(spacing: 6) { - Image(systemName: "star.fill") - .font(.system(size: 16)) - .foregroundColor(.appStarYellow) - - Text(String(format: "%.1f", averageRating)) - .font(.system(size: 18, weight: .semibold)) - .foregroundColor(.appForegroundAdaptive) - - Circle() - .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) - .frame(width: 4, height: 4) - - Text( - "\(reviews.count) \(reviews.count == 1 ? L10n.current.reviewSingular.lowercased() : L10n.current.tabReviews.lowercased())" - ) - .font(.subheadline) + HStack(alignment: .bottom, spacing: 16) { + // Poster + CachedAsyncImage(url: season.posterURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive) + .overlay( + ProgressView() + .scaleEffect(0.8) + ) + } + .frame(width: 120, height: 180) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .posterBorder(cornerRadius: 12) + .posterShadow() + + // Info + VStack(alignment: .leading, spacing: 4) { + if let airDate = formattedAirDate { + Text(airDate) + .font(.caption) .foregroundColor(.appMutedForegroundAdaptive) - } - .frame(maxWidth: .infinity, alignment: .leading) - .padding(.horizontal, 24) + } - // Horizontal scrolling reviews - if !reviewsWithText.isEmpty { - ScrollView(.horizontal, showsIndicators: false) { - HStack(alignment: .top, spacing: 0) { - ForEach(Array(reviewsWithText.enumerated()), id: \.element.id) { index, review in - HStack(alignment: .top, spacing: 0) { - ReviewCardView(review: review) - .frame(width: min(UIScreen.main.bounds.width * 0.75, 300)) - .padding(.leading, index == 0 ? 24 : 0) - .padding(.trailing, 24) + Text(season.name) + .font(.title2.bold()) + .foregroundColor(.appForegroundAdaptive) + } + .padding(.bottom, 8) - if index < reviewsWithText.count - 1 { - Rectangle() - .fill(Color.appBorderAdaptive.opacity(0.5)) - .frame(width: 1) - .frame(height: 140) - .padding(.trailing, 24) - } - } - } - } - } + Spacer() + } + .padding(.horizontal, 24) + .padding(.top, 80) + .background( + GeometryReader { geo -> Color in + DispatchQueue.main.async { + let offset = geo.frame(in: .global).minY + if initialScrollOffset == nil { + initialScrollOffset = offset } + scrollOffset = offset } + return Color.clear } - } - .task { - await loadReviews() - } - .onChange(of: refreshId) { _, _ in - Task { - await loadReviews(forceReload: true) - } - } - } - - private func loadReviews(forceReload: Bool = false) async { - guard !hasLoaded || forceReload else { - isLoading = false - onContentLoaded?(!reviews.isEmpty) - return - } - - isLoading = true - - do { - reviews = try await ReviewService.shared.getReviews( - tmdbId: seriesId, - mediaType: "TV_SHOW", - seasonNumber: seasonNumber - ) - isLoading = false - hasLoaded = true - onContentLoaded?(!reviews.isEmpty) - } catch { - isLoading = false - hasLoaded = true - onContentLoaded?(false) - } + ) } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonReviewSectionView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonReviewSectionView.swift new file mode 100644 index 00000000..8abb5f4e --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonReviewSectionView.swift @@ -0,0 +1,148 @@ +// +// SeasonReviewSectionView.swift +// Plotwist +// + +import SwiftUI + +struct SeasonReviewSectionView: View { + let seriesId: Int + let seasonNumber: Int + let refreshId: UUID + var onEmptyStateTapped: (() -> Void)? + var onContentLoaded: ((Bool) -> Void)? + + @State private var reviews: [ReviewListItem] = [] + @State private var isLoading = true + @State private var hasLoaded = false + + private var averageRating: Double { + guard !reviews.isEmpty else { return 0 } + let total = reviews.reduce(0) { $0 + $1.rating } + return total / Double(reviews.count) + } + + private var reviewsWithText: [ReviewListItem] { + reviews.filter { !$0.review.isEmpty } + } + + var body: some View { + Group { + if isLoading { + reviewsSkeleton + } else if reviews.isEmpty { + EmptyView() + } else { + reviewsContent + } + } + .task { + await loadReviews() + } + .onChange(of: refreshId) { _, _ in + Task { + await loadReviews(forceReload: true) + } + } + } + + // MARK: - Reviews Skeleton + private var reviewsSkeleton: some View { + VStack(spacing: 16) { + HStack(spacing: 6) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(width: 16, height: 16) + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(width: 30, height: 18) + Circle() + .fill(Color.appBorderAdaptive) + .frame(width: 4, height: 4) + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(width: 80, height: 14) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) + } + } + + // MARK: - Reviews Content + private var reviewsContent: some View { + VStack(spacing: 16) { + // Rating Header + HStack(spacing: 6) { + Image(systemName: "star.fill") + .font(.system(size: 16)) + .foregroundColor(.appStarYellow) + + Text(String(format: "%.1f", averageRating)) + .font(.system(size: 18, weight: .semibold)) + .foregroundColor(.appForegroundAdaptive) + + Circle() + .fill(Color.appMutedForegroundAdaptive.opacity(0.5)) + .frame(width: 4, height: 4) + + Text( + "\(reviews.count) \(reviews.count == 1 ? L10n.current.reviewSingular.lowercased() : L10n.current.tabReviews.lowercased())" + ) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 24) + + // Horizontal scrolling reviews + if !reviewsWithText.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { + HStack(alignment: .top, spacing: 0) { + ForEach(Array(reviewsWithText.enumerated()), id: \.element.id) { index, review in + HStack(alignment: .top, spacing: 0) { + ReviewCardView(review: review) + .frame(width: min(UIScreen.main.bounds.width * 0.75, 300)) + .padding(.leading, index == 0 ? 24 : 0) + .padding(.trailing, 24) + + if index < reviewsWithText.count - 1 { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(width: 1) + .frame(height: 140) + .padding(.trailing, 24) + } + } + } + } + } + } + } + } + + // MARK: - Load Reviews + private func loadReviews(forceReload: Bool = false) async { + guard !hasLoaded || forceReload else { + isLoading = false + onContentLoaded?(!reviews.isEmpty) + return + } + + isLoading = true + + do { + reviews = try await ReviewService.shared.getReviews( + tmdbId: seriesId, + mediaType: "TV_SHOW", + seasonNumber: seasonNumber + ) + isLoading = false + hasLoaded = true + onContentLoaded?(!reviews.isEmpty) + } catch { + isLoading = false + hasLoaded = true + onContentLoaded?(false) + } + } +} From 3deae13eca9bd35e984fd011a9470f70b3e17733 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 21:53:46 -0300 Subject: [PATCH 70/77] feat(ui): enhance episode management by adding watched state functionality and loading indicators in EpisodeRowView; implement watched episodes tracking in EpisodesSectionView and integrate UserEpisodeService for backend interactions; update localization for episode watched count --- .../Plotwist/Components/EpisodeRowView.swift | 33 +++- .../Components/EpisodesSectionView.swift | 127 +++++++++++- .../Plotwist/Localization/Strings.swift | 8 + .../Services/UserEpisodeService.swift | 186 ++++++++++++++++++ .../Views/Details/SeasonDetailView.swift | 6 +- 5 files changed, 347 insertions(+), 13 deletions(-) create mode 100644 apps/ios/Plotwist/Plotwist/Services/UserEpisodeService.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift b/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift index 92b2fa85..05d13184 100644 --- a/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift +++ b/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift @@ -7,11 +7,14 @@ import SwiftUI struct EpisodeRowView: View { let episode: Episode + let isWatched: Bool + let isLoading: Bool + let onToggleWatched: () -> Void var body: some View { VStack(alignment: .leading, spacing: 12) { - // Top row: Backdrop + Title/Duration - HStack(alignment: .top, spacing: 12) { + // Top row: Backdrop + Title/Duration + Watch button + HStack(alignment: .center, spacing: 12) { // Episode backdrop CachedAsyncImage(url: episode.stillURL) { image in image @@ -32,21 +35,35 @@ struct EpisodeRowView: View { // Title and duration VStack(alignment: .leading, spacing: 4) { - // Episode title with number prefix - Text("\(episode.episodeNumber). \(episode.name)") - .font(.subheadline.weight(.medium)) - .foregroundColor(.appForegroundAdaptive) - .lineLimit(2) - // Duration if let runtime = episode.formattedRuntime { Text(runtime) .font(.caption) .foregroundColor(.appMutedForegroundAdaptive) } + + // Episode title with number prefix + Text("\(episode.episodeNumber). \(episode.name)") + .font(.subheadline.weight(.medium)) + .foregroundColor(.appForegroundAdaptive) + .lineLimit(2) } Spacer() + + // Watch button + Button(action: onToggleWatched) { + if isLoading { + ProgressView() + .scaleEffect(0.8) + } else { + Image(systemName: isWatched ? "checkmark.circle.fill" : "circle") + .font(.system(size: 24)) + .foregroundColor(isWatched ? .green : .appMutedForegroundAdaptive) + } + } + .disabled(isLoading) + .frame(width: 44, height: 44) } // Description below diff --git a/apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift b/apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift index 01bec7d8..90c912b8 100644 --- a/apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift +++ b/apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift @@ -6,21 +6,140 @@ import SwiftUI struct EpisodesSectionView: View { + let seriesId: Int + let seasonNumber: Int let episodes: [Episode] + @State private var watchedEpisodes: [UserEpisode] = [] + @State private var isLoading = true + @State private var loadingEpisodeIds: Set = [] + + private var watchedCount: Int { + episodes.filter { episode in + watchedEpisodes.contains { $0.episodeNumber == episode.episodeNumber && $0.seasonNumber == seasonNumber } + }.count + } + + private var progress: Double { + guard !episodes.isEmpty else { return 0 } + return Double(watchedCount) / Double(episodes.count) + } + + private func isEpisodeWatched(_ episode: Episode) -> Bool { + watchedEpisodes.contains { $0.episodeNumber == episode.episodeNumber && $0.seasonNumber == seasonNumber } + } + + private func watchedEpisodeId(for episode: Episode) -> String? { + watchedEpisodes.first { $0.episodeNumber == episode.episodeNumber && $0.seasonNumber == seasonNumber }?.id + } + var body: some View { VStack(alignment: .leading, spacing: 16) { - Text(L10n.current.episodes) - .font(.headline) - .foregroundColor(.appForegroundAdaptive) + // Header with title and progress + HStack { + Text(L10n.current.episodes) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + // Progress text (only show if authenticated) + if AuthService.shared.isAuthenticated { + Text(L10n.current.episodesWatchedCount + .replacingOccurrences(of: "%d", with: "\(watchedCount)") + .replacingOccurrences(of: "%total", with: "\(episodes.count)") + ) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + } + .padding(.horizontal, 24) + + // Progress bar (only show if authenticated) + if AuthService.shared.isAuthenticated { + GeometryReader { geometry in + ZStack(alignment: .leading) { + // Background + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive) + .frame(height: 6) + + // Progress + RoundedRectangle(cornerRadius: 4) + .fill(Color.green) + .frame(width: geometry.size.width * progress, height: 6) + .animation(.easeInOut(duration: 0.3), value: progress) + } + } + .frame(height: 6) .padding(.horizontal, 24) + } + // Episodes List VStack(spacing: 16) { ForEach(episodes) { episode in - EpisodeRowView(episode: episode) + EpisodeRowView( + episode: episode, + isWatched: isEpisodeWatched(episode), + isLoading: loadingEpisodeIds.contains(episode.episodeNumber), + onToggleWatched: { + Task { + await toggleWatched(episode) + } + } + ) } } .padding(.horizontal, 24) } + .task { + if AuthService.shared.isAuthenticated { + await loadWatchedEpisodes() + } else { + isLoading = false + } + } + } + + // MARK: - Load Watched Episodes + private func loadWatchedEpisodes() async { + isLoading = true + defer { isLoading = false } + + do { + watchedEpisodes = try await UserEpisodeService.shared.getWatchedEpisodes(tmdbId: seriesId) + } catch { + print("Error loading watched episodes: \(error)") + watchedEpisodes = [] + } + } + + // MARK: - Toggle Watched + private func toggleWatched(_ episode: Episode) async { + loadingEpisodeIds.insert(episode.episodeNumber) + defer { loadingEpisodeIds.remove(episode.episodeNumber) } + + if let watchedId = watchedEpisodeId(for: episode) { + // Unmark as watched + do { + try await UserEpisodeService.shared.unmarkAsWatched(id: watchedId, tmdbId: seriesId) + watchedEpisodes.removeAll { $0.id == watchedId } + } catch { + print("Error unmarking episode: \(error)") + } + } else { + // Mark as watched + do { + let userEpisode = try await UserEpisodeService.shared.markAsWatched( + tmdbId: seriesId, + seasonNumber: seasonNumber, + episodeNumber: episode.episodeNumber, + runtime: episode.runtime + ) + watchedEpisodes.append(userEpisode) + } catch { + print("Error marking episode: \(error)") + } + } } } diff --git a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift index 6703d484..04b43b70 100644 --- a/apps/ios/Plotwist/Plotwist/Localization/Strings.swift +++ b/apps/ios/Plotwist/Plotwist/Localization/Strings.swift @@ -160,6 +160,7 @@ enum L10n { tabSeasons: "Seasons", episodes: "Episodes", episodesCount: "%d episodes", + episodesWatchedCount: "%d of %total watched", grid: "Grid", overview: "Overview", // Ratings @@ -309,6 +310,7 @@ enum L10n { tabSeasons: "Temporadas", episodes: "Episódios", episodesCount: "%d episódios", + episodesWatchedCount: "%d de %total assistidos", grid: "Grade", overview: "Visão Geral", // Ratings @@ -458,6 +460,7 @@ enum L10n { tabSeasons: "Temporadas", episodes: "Episodios", episodesCount: "%d episodios", + episodesWatchedCount: "%d de %total vistos", grid: "Cuadrícula", overview: "Resumen", // Ratings @@ -607,6 +610,7 @@ enum L10n { tabSeasons: "Saisons", episodes: "Épisodes", episodesCount: "%d épisodes", + episodesWatchedCount: "%d sur %total vus", grid: "Grille", overview: "Aperçu", // Ratings @@ -756,6 +760,7 @@ enum L10n { tabSeasons: "Staffeln", episodes: "Episoden", episodesCount: "%d Episoden", + episodesWatchedCount: "%d von %total gesehen", grid: "Raster", overview: "Übersicht", // Ratings @@ -905,6 +910,7 @@ enum L10n { tabSeasons: "Stagioni", episodes: "Episodi", episodesCount: "%d episodi", + episodesWatchedCount: "%d di %total visti", grid: "Griglia", overview: "Panoramica", // Ratings @@ -1053,6 +1059,7 @@ enum L10n { tabSeasons: "シーズン", episodes: "エピソード", episodesCount: "%d 話", + episodesWatchedCount: "%total話中%d話視聴済み", grid: "グリッド", overview: "概要", // Ratings @@ -1222,6 +1229,7 @@ struct Strings { let tabSeasons: String let episodes: String let episodesCount: String + let episodesWatchedCount: String let grid: String let overview: String // Ratings diff --git a/apps/ios/Plotwist/Plotwist/Services/UserEpisodeService.swift b/apps/ios/Plotwist/Plotwist/Services/UserEpisodeService.swift new file mode 100644 index 00000000..d8750490 --- /dev/null +++ b/apps/ios/Plotwist/Plotwist/Services/UserEpisodeService.swift @@ -0,0 +1,186 @@ +// +// UserEpisodeService.swift +// Plotwist +// + +import Foundation + +// MARK: - User Episode Models +struct UserEpisode: Codable, Identifiable { + let id: String + let userId: String + let tmdbId: Int + let seasonNumber: Int + let episodeNumber: Int + let watchedAt: String +} + +struct CreateUserEpisodeData: Codable { + let tmdbId: Int + let seasonNumber: Int + let episodeNumber: Int + let runtime: Int? +} + +struct DeleteUserEpisodesData: Codable { + let ids: [String] +} + +// MARK: - User Episode Service +class UserEpisodeService { + static let shared = UserEpisodeService() + private init() {} + + // MARK: - Cache + private var episodeCache: [String: [UserEpisode]] = [:] + private let cacheDuration: TimeInterval = 300 // 5 minutes + private var cacheTimestamps: [String: Date] = [:] + + private func cacheKey(tmdbId: Int) -> String { + return "\(tmdbId)" + } + + func invalidateCache(tmdbId: Int) { + let key = cacheKey(tmdbId: tmdbId) + episodeCache.removeValue(forKey: key) + cacheTimestamps.removeValue(forKey: key) + } + + // MARK: - Get Watched Episodes + func getWatchedEpisodes(tmdbId: Int) async throws -> [UserEpisode] { + let key = cacheKey(tmdbId: tmdbId) + + // Check cache + if let cached = episodeCache[key], + let timestamp = cacheTimestamps[key], + Date().timeIntervalSince(timestamp) < cacheDuration { + return cached + } + + guard let url = URL(string: "\(API.baseURL)/user/episodes?tmdbId=\(tmdbId)"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw UserEpisodeError.invalidURL + } + + var request = URLRequest(url: url) + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw UserEpisodeError.invalidResponse + } + + // Empty array is valid when no episodes are watched + if http.statusCode == 200 { + let decoder = JSONDecoder() + let episodes = try decoder.decode([UserEpisode].self, from: data) + + // Cache result + episodeCache[key] = episodes + cacheTimestamps[key] = Date() + + return episodes + } + + throw UserEpisodeError.invalidResponse + } + + // MARK: - Mark Episode as Watched + func markAsWatched(tmdbId: Int, seasonNumber: Int, episodeNumber: Int, runtime: Int? = nil) async throws -> UserEpisode { + guard let url = URL(string: "\(API.baseURL)/user/episodes"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw UserEpisodeError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + let episodeData = CreateUserEpisodeData( + tmdbId: tmdbId, + seasonNumber: seasonNumber, + episodeNumber: episodeNumber, + runtime: runtime + ) + + let encoder = JSONEncoder() + request.httpBody = try encoder.encode([episodeData]) + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw UserEpisodeError.invalidResponse + } + + if http.statusCode == 409 { + throw UserEpisodeError.alreadyExists + } + + guard http.statusCode == 201 else { + print("Mark as watched failed with status: \(http.statusCode)") + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + throw UserEpisodeError.invalidResponse + } + + let decoder = JSONDecoder() + let episodes = try decoder.decode([UserEpisode].self, from: data) + + guard let episode = episodes.first else { + throw UserEpisodeError.invalidResponse + } + + // Invalidate cache + invalidateCache(tmdbId: tmdbId) + + return episode + } + + // MARK: - Unmark Episode as Watched + func unmarkAsWatched(id: String, tmdbId: Int) async throws { + guard let url = URL(string: "\(API.baseURL)/user/episodes"), + let token = UserDefaults.standard.string(forKey: "token") + else { + throw UserEpisodeError.invalidURL + } + + var request = URLRequest(url: url) + request.httpMethod = "DELETE" + request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + let deleteData = DeleteUserEpisodesData(ids: [id]) + + let encoder = JSONEncoder() + request.httpBody = try encoder.encode(deleteData) + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let http = response as? HTTPURLResponse else { + throw UserEpisodeError.invalidResponse + } + + guard http.statusCode == 204 else { + print("Unmark as watched failed with status: \(http.statusCode)") + if let responseString = String(data: data, encoding: .utf8) { + print("Response: \(responseString)") + } + throw UserEpisodeError.invalidResponse + } + + // Invalidate cache + invalidateCache(tmdbId: tmdbId) + } +} + +// MARK: - Error Types +enum UserEpisodeError: Error { + case invalidURL + case invalidResponse + case alreadyExists +} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift index 0a938a2d..ede04966 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift @@ -86,7 +86,11 @@ struct SeasonDetailView: View { // Episodes Section if let details = seasonDetails, !details.episodes.isEmpty { sectionDivider - EpisodesSectionView(episodes: details.episodes) + EpisodesSectionView( + seriesId: seriesId, + seasonNumber: season.seasonNumber, + episodes: details.episodes + ) } Spacer() From 5a30b94215be35b7c43f2c2f77f1746eae8cdd61 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 22:26:53 -0300 Subject: [PATCH 71/77] refactor(ui): remove EpisodesSectionView and integrate its functionality into SeasonDetailView; enhance episode management with watched state tracking and loading indicators in EpisodesListView; update EpisodeRowView for improved visual consistency --- .../Plotwist/Components/EpisodeRowView.swift | 2 +- .../Components/EpisodesSectionView.swift | 145 -------- .../Views/Details/SeasonDetailView.swift | 317 +++++++++++++++--- 3 files changed, 268 insertions(+), 196 deletions(-) delete mode 100644 apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift diff --git a/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift b/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift index 05d13184..4b0765b9 100644 --- a/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift +++ b/apps/ios/Plotwist/Plotwist/Components/EpisodeRowView.swift @@ -59,7 +59,7 @@ struct EpisodeRowView: View { } else { Image(systemName: isWatched ? "checkmark.circle.fill" : "circle") .font(.system(size: 24)) - .foregroundColor(isWatched ? .green : .appMutedForegroundAdaptive) + .foregroundColor(isWatched ? .appForegroundAdaptive : .appMutedForegroundAdaptive) } } .disabled(isLoading) diff --git a/apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift b/apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift deleted file mode 100644 index 90c912b8..00000000 --- a/apps/ios/Plotwist/Plotwist/Components/EpisodesSectionView.swift +++ /dev/null @@ -1,145 +0,0 @@ -// -// EpisodesSectionView.swift -// Plotwist -// - -import SwiftUI - -struct EpisodesSectionView: View { - let seriesId: Int - let seasonNumber: Int - let episodes: [Episode] - - @State private var watchedEpisodes: [UserEpisode] = [] - @State private var isLoading = true - @State private var loadingEpisodeIds: Set = [] - - private var watchedCount: Int { - episodes.filter { episode in - watchedEpisodes.contains { $0.episodeNumber == episode.episodeNumber && $0.seasonNumber == seasonNumber } - }.count - } - - private var progress: Double { - guard !episodes.isEmpty else { return 0 } - return Double(watchedCount) / Double(episodes.count) - } - - private func isEpisodeWatched(_ episode: Episode) -> Bool { - watchedEpisodes.contains { $0.episodeNumber == episode.episodeNumber && $0.seasonNumber == seasonNumber } - } - - private func watchedEpisodeId(for episode: Episode) -> String? { - watchedEpisodes.first { $0.episodeNumber == episode.episodeNumber && $0.seasonNumber == seasonNumber }?.id - } - - var body: some View { - VStack(alignment: .leading, spacing: 16) { - // Header with title and progress - HStack { - Text(L10n.current.episodes) - .font(.headline) - .foregroundColor(.appForegroundAdaptive) - - Spacer() - - // Progress text (only show if authenticated) - if AuthService.shared.isAuthenticated { - Text(L10n.current.episodesWatchedCount - .replacingOccurrences(of: "%d", with: "\(watchedCount)") - .replacingOccurrences(of: "%total", with: "\(episodes.count)") - ) - .font(.caption) - .foregroundColor(.appMutedForegroundAdaptive) - } - } - .padding(.horizontal, 24) - - // Progress bar (only show if authenticated) - if AuthService.shared.isAuthenticated { - GeometryReader { geometry in - ZStack(alignment: .leading) { - // Background - RoundedRectangle(cornerRadius: 4) - .fill(Color.appBorderAdaptive) - .frame(height: 6) - - // Progress - RoundedRectangle(cornerRadius: 4) - .fill(Color.green) - .frame(width: geometry.size.width * progress, height: 6) - .animation(.easeInOut(duration: 0.3), value: progress) - } - } - .frame(height: 6) - .padding(.horizontal, 24) - } - - // Episodes List - VStack(spacing: 16) { - ForEach(episodes) { episode in - EpisodeRowView( - episode: episode, - isWatched: isEpisodeWatched(episode), - isLoading: loadingEpisodeIds.contains(episode.episodeNumber), - onToggleWatched: { - Task { - await toggleWatched(episode) - } - } - ) - } - } - .padding(.horizontal, 24) - } - .task { - if AuthService.shared.isAuthenticated { - await loadWatchedEpisodes() - } else { - isLoading = false - } - } - } - - // MARK: - Load Watched Episodes - private func loadWatchedEpisodes() async { - isLoading = true - defer { isLoading = false } - - do { - watchedEpisodes = try await UserEpisodeService.shared.getWatchedEpisodes(tmdbId: seriesId) - } catch { - print("Error loading watched episodes: \(error)") - watchedEpisodes = [] - } - } - - // MARK: - Toggle Watched - private func toggleWatched(_ episode: Episode) async { - loadingEpisodeIds.insert(episode.episodeNumber) - defer { loadingEpisodeIds.remove(episode.episodeNumber) } - - if let watchedId = watchedEpisodeId(for: episode) { - // Unmark as watched - do { - try await UserEpisodeService.shared.unmarkAsWatched(id: watchedId, tmdbId: seriesId) - watchedEpisodes.removeAll { $0.id == watchedId } - } catch { - print("Error unmarking episode: \(error)") - } - } else { - // Mark as watched - do { - let userEpisode = try await UserEpisodeService.shared.markAsWatched( - tmdbId: seriesId, - seasonNumber: seasonNumber, - episodeNumber: episode.episodeNumber, - runtime: episode.runtime - ) - watchedEpisodes.append(userEpisode) - } catch { - print("Error marking episode: \(error)") - } - } - } -} diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift index ede04966..779c7b42 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/SeasonDetailView.swift @@ -22,81 +22,135 @@ struct SeasonDetailView: View { @State private var scrollOffset: CGFloat = 0 @State private var initialScrollOffset: CGFloat? = nil + // Episodes watched state (shared with header) + @State private var watchedEpisodes: [UserEpisode] = [] + @State private var loadingEpisodeIds: Set = [] + + private let scrollThreshold: CGFloat = 20 + private let navigationHeaderHeight: CGFloat = 64 private var isScrolled: Bool { guard let initial = initialScrollOffset else { return false } return scrollOffset < initial - scrollThreshold } + private var episodes: [Episode] { + seasonDetails?.episodes ?? [] + } + + private var watchedCount: Int { + episodes.filter { episode in + watchedEpisodes.contains { $0.episodeNumber == episode.episodeNumber && $0.seasonNumber == season.seasonNumber } + }.count + } + var body: some View { ZStack { Color.appBackgroundAdaptive.ignoresSafeArea() ScrollView(showsIndicators: false) { - VStack(alignment: .leading, spacing: 0) { - // Header with poster and info - SeasonHeaderView( - season: season, - scrollOffset: $scrollOffset, - initialScrollOffset: $initialScrollOffset - ) - - // Review Button - if AuthService.shared.isAuthenticated { - ReviewButton( - hasReview: userReview != nil, - isLoading: isLoadingUserReview, - action: { showReviewSheet = true } + LazyVStack(alignment: .leading, spacing: 0, pinnedViews: [.sectionHeaders]) { + // Main content section (not pinned) + Section { + // Header with poster and info (adjusted for safeAreaInset) + SeasonHeaderView( + season: season, + scrollOffset: $scrollOffset, + initialScrollOffset: $initialScrollOffset, + topPadding: 24 // Reduced since safeAreaInset handles nav header ) - .padding(.horizontal, 24) - .padding(.top, 24) - } - // Overview - if let overview = seasonDetails?.overview ?? season.overview, !overview.isEmpty { - Text(overview) - .font(.subheadline) - .foregroundColor(.appMutedForegroundAdaptive) - .lineSpacing(6) + // Review Button + if AuthService.shared.isAuthenticated { + ReviewButton( + hasReview: userReview != nil, + isLoading: isLoadingUserReview, + action: { showReviewSheet = true } + ) .padding(.horizontal, 24) - .padding(.top, 20) - } + .padding(.top, 24) + } - // Divider before reviews - if hasReviews { - sectionDivider - } + // Overview + if let overview = seasonDetails?.overview ?? season.overview, !overview.isEmpty { + Text(overview) + .font(.subheadline) + .foregroundColor(.appMutedForegroundAdaptive) + .lineSpacing(6) + .padding(.horizontal, 24) + .padding(.top, 20) + } - // Reviews Section - SeasonReviewSectionView( - seriesId: seriesId, - seasonNumber: season.seasonNumber, - refreshId: reviewsRefreshId, - onEmptyStateTapped: { - if AuthService.shared.isAuthenticated { - showReviewSheet = true - } - }, - onContentLoaded: { hasContent in - hasReviews = hasContent + // Divider before reviews + if hasReviews { + sectionDivider } - ) - // Episodes Section - if let details = seasonDetails, !details.episodes.isEmpty { - sectionDivider - EpisodesSectionView( + // Reviews Section + SeasonReviewSectionView( seriesId: seriesId, seasonNumber: season.seasonNumber, - episodes: details.episodes + refreshId: reviewsRefreshId, + onEmptyStateTapped: { + if AuthService.shared.isAuthenticated { + showReviewSheet = true + } + }, + onContentLoaded: { hasContent in + hasReviews = hasContent + } ) + + // Divider before episodes (reduced bottom spacing) + if !episodes.isEmpty { + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 1) + .padding(.horizontal, 24) + .padding(.top, 24) + .padding(.bottom, 8) + } } - Spacer() - .frame(height: 80) + // Episodes Section with pinned header + if !episodes.isEmpty { + Section { + EpisodesListView( + seriesId: seriesId, + seasonNumber: season.seasonNumber, + episodes: episodes, + watchedEpisodes: $watchedEpisodes, + loadingEpisodeIds: $loadingEpisodeIds + ) + + Spacer() + .frame(height: 80) + } header: { + EpisodesHeaderView( + episodesCount: episodes.count, + watchedCount: watchedCount + ) + } + .onChange(of: watchedCount) { oldValue, newValue in + // Haptic feedback when all episodes are watched + if newValue == episodes.count && oldValue < episodes.count && episodes.count > 0 { + let generator = UINotificationFeedbackGenerator() + generator.notificationOccurred(.success) + } + } + } else { + Spacer() + .frame(height: 80) + } } } + .coordinateSpace(name: "episodesScroll") + .safeAreaInset(edge: .top, spacing: 0) { + // Reserve space for navigation header so pinned headers appear below it + Color.clear + .frame(height: navigationHeaderHeight) + } // Navigation Header navigationHeader @@ -118,6 +172,7 @@ struct SeasonDetailView: View { await loadSeasonDetails() if AuthService.shared.isAuthenticated { await loadUserReview() + await loadWatchedEpisodes() } } .onChange(of: showReviewSheet) { _, isPresented in @@ -211,6 +266,167 @@ struct SeasonDetailView: View { userReview = nil } } + + // MARK: - Load Watched Episodes + private func loadWatchedEpisodes() async { + do { + watchedEpisodes = try await UserEpisodeService.shared.getWatchedEpisodes(tmdbId: seriesId) + } catch { + watchedEpisodes = [] + } + } +} + +// MARK: - Episodes Header View (Sticky) +struct EpisodesHeaderView: View { + let episodesCount: Int + let watchedCount: Int + + @State private var isPinned = false + + // Approximate pinned position: safe area (~50) + nav header (64) + small buffer + private let pinnedPositionThreshold: CGFloat = 130 + + var body: some View { + VStack(spacing: 0) { + VStack(spacing: 12) { + HStack { + Text(L10n.current.episodes) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + + if AuthService.shared.isAuthenticated { + Text(L10n.current.episodesWatchedCount + .replacingOccurrences(of: "%d", with: "\(watchedCount)") + .replacingOccurrences(of: "%total", with: "\(episodesCount)") + ) + .font(.caption) + .foregroundColor(.appMutedForegroundAdaptive) + } + } + + if AuthService.shared.isAuthenticated && episodesCount > 0 { + SegmentedProgressBar( + totalSegments: episodesCount, + filledSegments: watchedCount + ) + } + } + .padding(.horizontal, 24) + .padding(.vertical, 12) + + // Bottom border - only when pinned + Rectangle() + .fill(Color.appBorderAdaptive) + .frame(height: 1) + .opacity(isPinned ? 1 : 0) + } + .background(Color.appBackgroundAdaptive) + .background( + GeometryReader { geo -> Color in + DispatchQueue.main.async { + let minY = geo.frame(in: .global).minY + // Header is pinned when it's at the expected pinned position (top of scroll area) + let newPinned = minY <= pinnedPositionThreshold + if newPinned != isPinned { + isPinned = newPinned + } + } + return Color.clear + } + ) + .animation(.easeInOut(duration: 0.15), value: isPinned) + } +} + +// MARK: - Segmented Progress Bar +struct SegmentedProgressBar: View { + let totalSegments: Int + let filledSegments: Int + + private let segmentHeight: CGFloat = 6 + private let segmentSpacing: CGFloat = 2 + + var body: some View { + GeometryReader { geometry in + let availableWidth = geometry.size.width - (CGFloat(totalSegments - 1) * segmentSpacing) + let segmentWidth = availableWidth / CGFloat(totalSegments) + + HStack(spacing: segmentSpacing) { + ForEach(0.. + + private func isEpisodeWatched(_ episode: Episode) -> Bool { + watchedEpisodes.contains { $0.episodeNumber == episode.episodeNumber && $0.seasonNumber == seasonNumber } + } + + private func watchedEpisodeId(for episode: Episode) -> String? { + watchedEpisodes.first { $0.episodeNumber == episode.episodeNumber && $0.seasonNumber == seasonNumber }?.id + } + + var body: some View { + VStack(spacing: 16) { + ForEach(episodes) { episode in + EpisodeRowView( + episode: episode, + isWatched: isEpisodeWatched(episode), + isLoading: loadingEpisodeIds.contains(episode.episodeNumber), + onToggleWatched: { + Task { + await toggleWatched(episode) + } + } + ) + } + } + .padding(.horizontal, 24) + .padding(.top, 16) + } + + private func toggleWatched(_ episode: Episode) async { + loadingEpisodeIds.insert(episode.episodeNumber) + defer { loadingEpisodeIds.remove(episode.episodeNumber) } + + if let watchedId = watchedEpisodeId(for: episode) { + do { + try await UserEpisodeService.shared.unmarkAsWatched(id: watchedId, tmdbId: seriesId) + watchedEpisodes.removeAll { $0.id == watchedId } + } catch { + print("Error unmarking episode: \(error)") + } + } else { + do { + let userEpisode = try await UserEpisodeService.shared.markAsWatched( + tmdbId: seriesId, + seasonNumber: seasonNumber, + episodeNumber: episode.episodeNumber, + runtime: episode.runtime + ) + watchedEpisodes.append(userEpisode) + } catch { + print("Error marking episode: \(error)") + } + } + } } // MARK: - Season Header View @@ -218,6 +434,7 @@ struct SeasonHeaderView: View { let season: Season @Binding var scrollOffset: CGFloat @Binding var initialScrollOffset: CGFloat? + var topPadding: CGFloat = 80 private var formattedAirDate: String? { guard let airDate = season.airDate else { return nil } @@ -268,7 +485,7 @@ struct SeasonHeaderView: View { Spacer() } .padding(.horizontal, 24) - .padding(.top, 80) + .padding(.top, topPadding) .background( GeometryReader { geo -> Color in DispatchQueue.main.async { From 8b932fd7b0d2e803e7b80efb20cb3410e877d78e Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Mon, 26 Jan 2026 22:28:21 -0300 Subject: [PATCH 72/77] chore(project): update CURRENT_PROJECT_VERSION from 3 to 4 in project.pbxproj to reflect new versioning --- apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj b/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj index d4cea5ce..84ad1d0a 100644 --- a/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj +++ b/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj @@ -252,7 +252,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 3; + CURRENT_PROJECT_VERSION = 4; DEVELOPMENT_TEAM = 54XPVTP5PA; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -280,7 +280,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 3; + CURRENT_PROJECT_VERSION = 4; DEVELOPMENT_TEAM = 54XPVTP5PA; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; From 97005bee932ac8851f5b357d2fe07a735fb7af95 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Tue, 27 Jan 2026 08:47:15 -0300 Subject: [PATCH 73/77] refactor(ui): update star color references to appStarYellow in PrimaryButton and ReviewSectionView for consistent styling --- apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift | 2 +- .../Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift b/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift index d72f03c4..611f3940 100644 --- a/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift +++ b/apps/ios/Plotwist/Plotwist/Components/PrimaryButton.swift @@ -135,7 +135,7 @@ struct ActionButton: View { HStack { ActionButton("Review", icon: "star") {} - ActionButton("Reviewed", icon: "star.fill", iconColor: .yellow) {} + ActionButton("Reviewed", icon: "star.fill", iconColor: .appStarYellow) {} Spacer() } } diff --git a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift index 0d61c7b2..92022f1e 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Reviews/ReviewSectionView.swift @@ -117,7 +117,7 @@ struct ReviewSectionView: View { HStack(spacing: 6) { Image(systemName: "star.fill") .font(.system(size: 16)) - .foregroundColor(.yellow) + .foregroundColor(.appStarYellow) Text(String(format: "%.1f", averageRating)) .font(.system(size: 18, weight: .semibold)) @@ -275,7 +275,7 @@ struct ReviewSectionView: View { private func starColor(for index: Int) -> Color { if Double(index) <= averageRating || Double(index) - 0.5 <= averageRating { - return .yellow + return .appStarYellow } else { return .gray.opacity(0.3) } @@ -405,7 +405,7 @@ struct ReviewCardView: View { private func ratingColor(for index: Int) -> Color { let rating = review.rating if Double(index) <= rating || Double(index) - 0.5 <= rating { - return .yellow + return .appStarYellow } else { return .appMutedForegroundAdaptive.opacity(0.3) } From e79e4aed3d5d575d167a5716d8c4e6ff032d7a42 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Tue, 27 Jan 2026 08:50:57 -0300 Subject: [PATCH 74/77] feat(ui): implement MediaDetailSkeletonView for improved loading experience in MediaDetailView; replace ProgressView with skeleton loading UI to enhance user feedback during data loading --- .../Views/Details/MediaDetailView.swift | 121 +++++++++++++++++- 1 file changed, 120 insertions(+), 1 deletion(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift index bf70d135..c5c54311 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/MediaDetailView.swift @@ -43,7 +43,7 @@ struct MediaDetailView: View { Color.appBackgroundAdaptive.ignoresSafeArea() if isLoading { - ProgressView() + MediaDetailSkeletonView(cornerRadius: cornerRadius) } else if let details { GeometryReader { geometry in let backdropHeight = geometry.size.height * 0.45 @@ -472,3 +472,122 @@ struct RoundedCorner: Shape { return Path(path.cgPath) } } + +// MARK: - Media Detail Skeleton View +struct MediaDetailSkeletonView: View { + let cornerRadius: CGFloat + + var body: some View { + GeometryReader { geometry in + let backdropHeight = geometry.size.height * 0.45 + + ZStack(alignment: .topLeading) { + ScrollView(showsIndicators: false) { + VStack(alignment: .leading, spacing: 0) { + // Backdrop Skeleton + Rectangle() + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: backdropHeight + cornerRadius) + + // Content Card Skeleton + ZStack(alignment: .topLeading) { + VStack(alignment: .leading, spacing: 0) { + // Spacer for poster overlap area + Spacer() + .frame(height: 110) + + // Content Section Skeleton + VStack(alignment: .leading, spacing: 20) { + // Action Buttons Skeleton + HStack(spacing: 12) { + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 48) + + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 48) + } + + // Overview Skeleton + VStack(alignment: .leading, spacing: 8) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 14) + + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(height: 14) + + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(width: 200, height: 14) + } + } + .padding(.horizontal, 24) + .padding(.top, 16) + + // Genres Skeleton + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 8) { + ForEach(0..<4, id: \.self) { _ in + RoundedRectangle(cornerRadius: 8) + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(width: 70, height: 28) + } + } + .padding(.horizontal, 24) + } + .padding(.top, 16) + + Spacer() + .frame(height: 80) + } + .background(Color.appBackgroundAdaptive) + .clipShape( + RoundedCorner(radius: cornerRadius, corners: [.topLeft, .topRight]) + ) + + // Poster and Info Skeleton + HStack(alignment: .bottom, spacing: 16) { + // Poster Skeleton + RoundedRectangle(cornerRadius: 12) + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(width: 120, height: 180) + + // Info Skeleton + VStack(alignment: .leading, spacing: 8) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(width: 80, height: 12) + + RoundedRectangle(cornerRadius: 4) + .fill(Color.appBorderAdaptive.opacity(0.5)) + .frame(width: 150, height: 18) + } + .padding(.bottom, 8) + + Spacer() + } + .padding(.horizontal, 24) + .offset(y: -70) + } + .offset(y: -cornerRadius) + } + } + .ignoresSafeArea(edges: .top) + + // Back Button Skeleton + VStack { + Circle() + .fill(Color.appBorderAdaptive.opacity(0.3)) + .frame(width: 40, height: 40) + .padding(.leading, 24) + Spacer() + } + .padding(.top, 8) + .safeAreaPadding(.top) + } + } + } +} From e4f8a6e5c9b29d4622c5b4acc9b7b529c7754a5c Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Tue, 27 Jan 2026 09:05:55 -0300 Subject: [PATCH 75/77] feat(ui): add expandable provider categories with matched geometry animation in WhereToWatchSection; enhance user experience by allowing users to toggle visibility of streaming, renting, and buying options --- .../Views/Details/WhereToWatchSection.swift | 163 +++++++++++++----- 1 file changed, 119 insertions(+), 44 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift index 718c9f60..d7cc3892 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift @@ -13,6 +13,9 @@ struct WhereToWatchSection: View { @State private var providers: WatchProviderCountry? @State private var isLoading = true @State private var hasLoaded = false + @State private var isExpanded = false + + @Namespace private var animationNamespace private var hasAnyProvider: Bool { let flatrate = providers?.flatrate ?? [] @@ -40,35 +43,60 @@ struct WhereToWatchSection: View { } } else if hasAnyProvider { VStack(alignment: .leading, spacing: 16) { - // Title - Text(L10n.current.tabWhereToWatch) - .font(.headline) - .foregroundColor(.appForegroundAdaptive) + // Header with title and expand arrow + Button(action: { + withAnimation(.spring(response: 0.35, dampingFraction: 0.8)) { + isExpanded.toggle() + } + }) { + HStack(spacing: 8) { + Text(L10n.current.tabWhereToWatch) + .font(.headline) + .foregroundColor(.appForegroundAdaptive) + + Image(systemName: "chevron.down") + .font(.system(size: 12, weight: .semibold)) + .foregroundColor(.appMutedForegroundAdaptive) + .rotationEffect(.degrees(isExpanded ? 180 : 0)) + + Spacer() + } .padding(.horizontal, 24) + } + .buttonStyle(.plain) - // Content - only show categories that have providers - VStack(alignment: .leading, spacing: 24) { + // Categories + VStack(alignment: .leading, spacing: 20) { // Stream if let flatrate = providers?.flatrate, !flatrate.isEmpty { - ProviderCategory( + ProviderCategoryAnimated( title: L10n.current.stream, - providers: flatrate + providers: flatrate, + isExpanded: isExpanded, + namespace: animationNamespace, + categoryId: "stream" ) } // Rent if let rent = providers?.rent, !rent.isEmpty { - ProviderCategory( + ProviderCategoryAnimated( title: L10n.current.rent, - providers: rent + providers: rent, + isExpanded: isExpanded, + namespace: animationNamespace, + categoryId: "rent" ) } // Buy if let buy = providers?.buy, !buy.isEmpty { - ProviderCategory( + ProviderCategoryAnimated( title: L10n.current.buy, - providers: buy + providers: buy, + isExpanded: isExpanded, + namespace: animationNamespace, + categoryId: "buy" ) } } @@ -112,54 +140,101 @@ struct WhereToWatchSection: View { } } -// MARK: - Provider Category -struct ProviderCategory: View { +// MARK: - Provider Category with Matched Geometry Animation +struct ProviderCategoryAnimated: View { let title: String let providers: [WatchProvider] - + let isExpanded: Bool + let namespace: Namespace.ID + let categoryId: String + + private let collapsedIconSize: CGFloat = 40 + private let expandedIconSize: CGFloat = 32 + private let overlapOffset: CGFloat = -18 + var body: some View { VStack(alignment: .leading, spacing: 8) { + // Title - stays fixed Text(title.uppercased()) .font(.caption.weight(.semibold)) .foregroundColor(.appMutedForegroundAdaptive) - - VStack(spacing: 0) { - ForEach(providers) { provider in - ProviderRow(provider: provider) + + if isExpanded { + // Expanded: vertical list + VStack(alignment: .leading, spacing: 2) { + ForEach(Array(providers.enumerated()), id: \.element.id) { index, provider in + HStack(spacing: 10) { + ProviderIconAnimated( + provider: provider, + size: expandedIconSize, + namespace: namespace, + id: "\(categoryId)-\(provider.providerId)" + ) + + Text(provider.providerName) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() + } + .padding(.vertical, 4) + } + } + } else { + // Collapsed: stacked icons with overlap + HStack(spacing: overlapOffset) { + ForEach(Array(providers.prefix(5).enumerated()), id: \.element.id) { index, provider in + ProviderIconAnimated( + provider: provider, + size: collapsedIconSize, + namespace: namespace, + id: "\(categoryId)-\(provider.providerId)" + ) + .zIndex(Double(5 - index)) + } + + // Show +N if more than 5 providers + if providers.count > 5 { + Text("+\(providers.count - 5)") + .font(.caption.weight(.semibold)) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: collapsedIconSize, height: collapsedIconSize) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: 10)) + .overlay( + RoundedRectangle(cornerRadius: 10) + .stroke(Color.appBorderAdaptive, lineWidth: 1.5) + ) + } } } } } } -// MARK: - Provider Row -struct ProviderRow: View { +// MARK: - Provider Icon with Matched Geometry +struct ProviderIconAnimated: View { let provider: WatchProvider - + let size: CGFloat + let namespace: Namespace.ID + let id: String + var body: some View { - HStack(spacing: 8) { - CachedAsyncImage(url: provider.logoURL) { image in - image - .resizable() - .aspectRatio(contentMode: .fill) - } placeholder: { - RoundedRectangle(cornerRadius: 6) - .fill(Color.appBorderAdaptive) - } - .frame(width: 24, height: 24) - .clipShape(RoundedRectangle(cornerRadius: 6)) - .overlay( - RoundedRectangle(cornerRadius: 6) - .stroke(Color.appBorderAdaptive, lineWidth: 0.5) - ) - - Text(provider.providerName) - .font(.subheadline) - .foregroundColor(.appForegroundAdaptive) - - Spacer() + CachedAsyncImage(url: provider.logoURL) { image in + image + .resizable() + .aspectRatio(contentMode: .fill) + } placeholder: { + RoundedRectangle(cornerRadius: size > 35 ? 10 : 8) + .fill(Color.appBorderAdaptive) } - .padding(.vertical, 6) + .frame(width: size, height: size) + .clipShape(RoundedRectangle(cornerRadius: size > 35 ? 10 : 8)) + .overlay( + RoundedRectangle(cornerRadius: size > 35 ? 10 : 8) + .stroke(Color.appBorderAdaptive, lineWidth: 1.5) + ) + .matchedGeometryEffect(id: id, in: namespace) } } From e204598341045bec532d0d963b757c5a36ba6fe8 Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Tue, 27 Jan 2026 09:08:54 -0300 Subject: [PATCH 76/77] refactor(ui): simplify WhereToWatchSection layout by removing matched geometry animation; introduce a new ProviderIconsLayout for improved provider display and interaction --- .../Views/Details/WhereToWatchSection.swift | 140 +++++++++--------- 1 file changed, 71 insertions(+), 69 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift index d7cc3892..ff56aecd 100644 --- a/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift +++ b/apps/ios/Plotwist/Plotwist/Views/Details/WhereToWatchSection.swift @@ -15,7 +15,6 @@ struct WhereToWatchSection: View { @State private var hasLoaded = false @State private var isExpanded = false - @Namespace private var animationNamespace private var hasAnyProvider: Bool { let flatrate = providers?.flatrate ?? [] @@ -72,9 +71,7 @@ struct WhereToWatchSection: View { ProviderCategoryAnimated( title: L10n.current.stream, providers: flatrate, - isExpanded: isExpanded, - namespace: animationNamespace, - categoryId: "stream" + isExpanded: isExpanded ) } @@ -83,9 +80,7 @@ struct WhereToWatchSection: View { ProviderCategoryAnimated( title: L10n.current.rent, providers: rent, - isExpanded: isExpanded, - namespace: animationNamespace, - categoryId: "rent" + isExpanded: isExpanded ) } @@ -94,9 +89,7 @@ struct WhereToWatchSection: View { ProviderCategoryAnimated( title: L10n.current.buy, providers: buy, - isExpanded: isExpanded, - namespace: animationNamespace, - categoryId: "buy" + isExpanded: isExpanded ) } } @@ -140,17 +133,19 @@ struct WhereToWatchSection: View { } } -// MARK: - Provider Category with Matched Geometry Animation +// MARK: - Provider Category with Layout Animation struct ProviderCategoryAnimated: View { let title: String let providers: [WatchProvider] let isExpanded: Bool - let namespace: Namespace.ID - let categoryId: String - private let collapsedIconSize: CGFloat = 40 - private let expandedIconSize: CGFloat = 32 - private let overlapOffset: CGFloat = -18 + private let iconSize: CGFloat = 36 + private let collapsedSpacing: CGFloat = -16 + private let expandedSpacing: CGFloat = 6 + + private var displayProviders: [WatchProvider] { + isExpanded ? providers : Array(providers.prefix(5)) + } var body: some View { VStack(alignment: .leading, spacing: 8) { @@ -159,65 +154,73 @@ struct ProviderCategoryAnimated: View { .font(.caption.weight(.semibold)) .foregroundColor(.appMutedForegroundAdaptive) - if isExpanded { - // Expanded: vertical list - VStack(alignment: .leading, spacing: 2) { - ForEach(Array(providers.enumerated()), id: \.element.id) { index, provider in - HStack(spacing: 10) { - ProviderIconAnimated( - provider: provider, - size: expandedIconSize, - namespace: namespace, - id: "\(categoryId)-\(provider.providerId)" - ) - - Text(provider.providerName) - .font(.subheadline) - .foregroundColor(.appForegroundAdaptive) - - Spacer() - } - .padding(.vertical, 4) - } - } - } else { - // Collapsed: stacked icons with overlap - HStack(spacing: overlapOffset) { - ForEach(Array(providers.prefix(5).enumerated()), id: \.element.id) { index, provider in - ProviderIconAnimated( - provider: provider, - size: collapsedIconSize, - namespace: namespace, - id: "\(categoryId)-\(provider.providerId)" - ) - .zIndex(Double(5 - index)) - } + // Single layout that morphs between states + ProviderIconsLayout( + providers: displayProviders, + allProviders: providers, + isExpanded: isExpanded, + iconSize: iconSize, + collapsedSpacing: collapsedSpacing, + expandedSpacing: expandedSpacing + ) + } + } +} + +// MARK: - Custom Layout for Provider Icons +struct ProviderIconsLayout: View { + let providers: [WatchProvider] + let allProviders: [WatchProvider] + let isExpanded: Bool + let iconSize: CGFloat + let collapsedSpacing: CGFloat + let expandedSpacing: CGFloat + + private let cornerRadius: CGFloat = 9 + + var body: some View { + let layout = isExpanded + ? AnyLayout(VStackLayout(alignment: .leading, spacing: expandedSpacing)) + : AnyLayout(HStackLayout(spacing: collapsedSpacing)) + + layout { + ForEach(Array(providers.enumerated()), id: \.element.id) { index, provider in + HStack(spacing: 10) { + ProviderIconView(provider: provider, size: iconSize, cornerRadius: cornerRadius) + .zIndex(Double(providers.count - index)) - // Show +N if more than 5 providers - if providers.count > 5 { - Text("+\(providers.count - 5)") - .font(.caption.weight(.semibold)) - .foregroundColor(.appMutedForegroundAdaptive) - .frame(width: collapsedIconSize, height: collapsedIconSize) - .background(Color.appInputFilled) - .clipShape(RoundedRectangle(cornerRadius: 10)) - .overlay( - RoundedRectangle(cornerRadius: 10) - .stroke(Color.appBorderAdaptive, lineWidth: 1.5) - ) + if isExpanded { + Text(provider.providerName) + .font(.subheadline) + .foregroundColor(.appForegroundAdaptive) + + Spacer() } } } + + // Show +N badge when collapsed and more than 5 providers + if !isExpanded && allProviders.count > 5 { + Text("+\(allProviders.count - 5)") + .font(.caption.weight(.semibold)) + .foregroundColor(.appMutedForegroundAdaptive) + .frame(width: iconSize, height: iconSize) + .background(Color.appInputFilled) + .clipShape(RoundedRectangle(cornerRadius: cornerRadius)) + .overlay( + RoundedRectangle(cornerRadius: cornerRadius) + .stroke(Color.appBorderAdaptive, lineWidth: 1.5) + ) + } } } } -// MARK: - Provider Icon with Matched Geometry -struct ProviderIconAnimated: View { +// MARK: - Provider Icon View +struct ProviderIconView: View { let provider: WatchProvider let size: CGFloat - let namespace: Namespace.ID - let id: String + let cornerRadius: CGFloat var body: some View { CachedAsyncImage(url: provider.logoURL) { image in @@ -225,16 +228,15 @@ struct ProviderIconAnimated: View { .resizable() .aspectRatio(contentMode: .fill) } placeholder: { - RoundedRectangle(cornerRadius: size > 35 ? 10 : 8) + RoundedRectangle(cornerRadius: cornerRadius) .fill(Color.appBorderAdaptive) } .frame(width: size, height: size) - .clipShape(RoundedRectangle(cornerRadius: size > 35 ? 10 : 8)) + .clipShape(RoundedRectangle(cornerRadius: cornerRadius)) .overlay( - RoundedRectangle(cornerRadius: size > 35 ? 10 : 8) + RoundedRectangle(cornerRadius: cornerRadius) .stroke(Color.appBorderAdaptive, lineWidth: 1.5) ) - .matchedGeometryEffect(id: id, in: namespace) } } From 1c06f7ae9c54193900eccd0ab19aed530005c43e Mon Sep 17 00:00:00 2001 From: henrique <7henrique18@gmail.com> Date: Tue, 27 Jan 2026 09:09:17 -0300 Subject: [PATCH 77/77] chore(project): update CURRENT_PROJECT_VERSION from 4 to 5 in project.pbxproj to reflect new versioning --- apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj b/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj index 84ad1d0a..4c82ee95 100644 --- a/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj +++ b/apps/ios/Plotwist/Plotwist.xcodeproj/project.pbxproj @@ -252,7 +252,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 4; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_TEAM = 54XPVTP5PA; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -280,7 +280,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 4; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_TEAM = 54XPVTP5PA; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES;