diff --git a/README.md b/README.md
index 38a6f36..6632951 100644
--- a/README.md
+++ b/README.md
@@ -12,6 +12,7 @@
[](https://www.typescriptlang.org/)
[](https://www.postgresql.org/)
[](https://www.docker.com/)
+[](https://github.com/felipegcoutinho/opensheets-companion)
[](LICENSE)
[](https://github.com/sponsors/felipegcoutinho)
@@ -37,6 +38,7 @@
- [Configuração de Variáveis de Ambiente](#-configuração-de-variáveis-de-ambiente)
- [Banco de Dados](#-banco-de-dados)
- [Arquitetura](#-arquitetura)
+- [Destaques e Funcionalidades Recentes](#-destaques-e-funcionalidades-recentes)
- [Contribuindo](#-contribuindo)
- [Apoie o Projeto](#-apoie-o-projeto)
@@ -51,13 +53,14 @@ A ideia é simples: ter um lugar onde consigo ver todas as minhas contas, cartõ
### 📊 Estatísticas do Projeto
- **~200 componentes React** organizados por feature
-- **15+ tabelas de banco de dados** com relações complexas
+- **17+ tabelas de banco de dados** com relações complexas
- **20+ widgets** no dashboard principal
- **18+ queries paralelas** otimizadas para performance
-- **736 linhas** de schema Drizzle ORM
+- **~820 linhas** de schema Drizzle ORM
- **Docker multi-stage** com imagem final de ~200MB
- **100% TypeScript** com strict mode
- **Self-hosted** - seus dados, seu controle
+- **App Companion Android** - captura automática de notificações bancárias
> 💡 **Licença Não-Comercial:** Este projeto é gratuito para uso pessoal, mas não pode ser usado comercialmente. Veja mais detalhes na seção [Licença](#-licença).
@@ -71,7 +74,14 @@ Este projeto é self-hosted. Você precisa rodar no seu próprio computador ou s
Você precisa registrar manualmente suas transações. Se você procura algo que sincroniza automaticamente com seu banco, este projeto não é pra você.
-**3. Requer disciplina**
+**3. 🤖 OpenSheets Companion (Android)**
+
+Existe um app Android complementar que captura notificações de transações dos seus apps de banco (Nubank, Itaú, Bradesco, Inter, C6 e outros) e envia automaticamente para sua caixa de entrada no OpenSheets. As notificações ficam como "pré-lançamentos" para você revisar e aprovar.
+
+- **Repositório:** [github.com/felipegcoutinho/opensheets-companion](https://github.com/felipegcoutinho/opensheets-companion)
+- **Configuração:** Ajustes → OpenSheets Companion → Gere um token de API
+
+**4. Requer disciplina**
O Opensheets funciona melhor para quem:
@@ -147,6 +157,21 @@ Se você não se importa em dedicar alguns minutos por dia (ou semana) para mant
- Navegação intuitiva por data
- Filtros e organização temporal
+📲 **OpenSheets Companion (Android)**
+
+- App Android que captura notificações bancárias
+- Suporte a Nubank, Itaú, Bradesco, Inter, C6 e outros
+- Pré-lançamentos para revisão antes de aprovar
+- Autenticação via tokens de API seguros
+- Sincronização automática em segundo plano
+
+📊 **Relatórios avançados**
+
+- Tendências de categorias ao longo do tempo
+- Análise de uso de cartões de crédito
+- Top estabelecimentos mais frequentes
+- Filtros por período personalizáveis
+
⚙️ **Preferências e personalização**
- Tema claro/escuro
@@ -175,12 +200,13 @@ O projeto é open source, seus dados ficam no seu controle (pode rodar localment
### 🔐 Autenticação
-- Better Auth 1.4.10 integrado
+- Better Auth 1.4.18 integrado
- OAuth (Google)
- Autenticação por email/senha
- Session management com tokens
- Protected routes via middleware
- Verificação de email
+- Tokens de API para integrações externas
### 🗄️ Banco de Dados
@@ -238,11 +264,21 @@ O projeto é open source, seus dados ficam no seu controle (pode rodar localment
- shadcn/ui components (Radix UI)
- Tailwind CSS v4
- Dark mode com next-themes
-- Animações fluidas com Motion
+- Drag-and-drop com dnd-kit
- Responsive design
- Modo privacidade (oculta valores)
- Componentes acessíveis (ARIA)
+### 📲 OpenSheets Companion
+
+- App Android para captura de notificações bancárias
+- Suporte a múltiplos bancos (Nubank, Itaú, Bradesco, Inter, C6, etc.)
+- Caixa de entrada (pré-lançamentos) para revisão
+- Tokens de API com hash SHA-256 (nunca armazenados em texto)
+- Rate limiting (100 requests/min por usuário)
+- API batch para envio de múltiplas notificações
+- Endpoint de health check para validação
+
### 📝 Produtividade
- Sistema de anotações e tarefas
@@ -263,11 +299,11 @@ O projeto é open source, seus dados ficam no seu controle (pode rodar localment
### 🧪 Desenvolvimento
-- Next.js 16.1 com App Router
+- Next.js 16.1.6 com App Router
- Turbopack (fast refresh)
-- TypeScript 5.9 (strict mode)
-- Biome (linting + formatting)
-- React 19.2 (com Compiler)
+- TypeScript 5.9.3 (strict mode)
+- Biome 2.x (linting + formatting + import organization)
+- React 19.2.4 (com Compiler)
- Server Actions
- Parallel data fetching
- Streaming SSR
@@ -278,16 +314,16 @@ O projeto é open source, seus dados ficam no seu controle (pode rodar localment
### Frontend
-- **Framework:** Next.js 16.1.1 (App Router)
+- **Framework:** Next.js 16.1.6 (App Router)
- **Linguagem:** TypeScript 5.9.3
-- **UI Library:** React 19.2.3
+- **UI Library:** React 19.2.4
- **Styling:** Tailwind CSS 4.1.18
- **Components:** shadcn/ui (Radix UI)
-- **Icons:** Remixicon 4.8.0
-- **Animations:** Motion 12.23.26
+- **Icons:** Remixicon 4.9.0
+- **Drag & Drop:** dnd-kit
- **Tables:** TanStack React Table 8.21.3
-- **Charts:** Recharts 3.6.0
-- **Forms:** React Hook Form + Zod 4.3.4
+- **Charts:** Recharts 3.7.0
+- **Validation:** Zod 4.3.6
- **Theme:** next-themes 0.4.6
### Backend
@@ -295,18 +331,18 @@ O projeto é open source, seus dados ficam no seu controle (pode rodar localment
- **Runtime:** Node.js 22
- **Database:** PostgreSQL 18
- **ORM:** Drizzle ORM 0.45.1
-- **Database Driver:** pg 8.16.3
-- **Auth:** Better Auth 1.4.10
-- **Email:** Resend 6.6.0
-- **Validation:** Zod 4.3.4
+- **Database Driver:** pg 8.18.0
+- **Auth:** Better Auth 1.4.18
+- **Email:** Resend 6.9.1
+- **Validation:** Zod 4.3.6
### AI Integration (Opcional)
-- **AI SDK:** Vercel AI SDK 6.0.6
-- **Anthropic:** Claude (via @ai-sdk/anthropic 3.0.2)
-- **OpenAI:** GPT (via @ai-sdk/openai 3.0.2)
-- **Google:** Gemini (via @ai-sdk/google 3.0.2)
-- **OpenRouter:** via @openrouter/ai-sdk-provider 1.5.4
+- **AI SDK:** Vercel AI SDK 6.0.67
+- **Anthropic:** Claude (via @ai-sdk/anthropic 3.0.35)
+- **OpenAI:** GPT (via @ai-sdk/openai 3.0.25)
+- **Google:** Gemini (via @ai-sdk/google 3.0.20)
+- **OpenRouter:** via @openrouter/ai-sdk-provider 2.1.1
### Utilities
@@ -322,7 +358,8 @@ O projeto é open source, seus dados ficam no seu controle (pode rodar localment
- **Containerization:** Docker + Docker Compose
- **Package Manager:** pnpm
- **Build Tool:** Turbopack
-- **Linting & Formatting:** Biome 2.x
+- **Linting & Formatting:** Biome 2.3.13
+- **Database Tools:** Drizzle Kit 0.31.8
- **Analytics:** Vercel Analytics + Speed Insights
---
@@ -869,7 +906,10 @@ opensheets/
├── app/ # Next.js App Router
│ ├── api/ # API Routes
│ │ ├── auth/[...all]/ # Better Auth endpoints
-│ │ └── health/ # Health check endpoint
+│ │ ├── health/ # Health check (Companion validation)
+│ │ └── inbox/ # API para Companion App
+│ │ ├── route.ts # POST - Enviar notificação única
+│ │ └── batch/route.ts # POST - Enviar múltiplas notificações
│ ├── (auth)/ # Rotas públicas de autenticação
│ │ ├── login/ # Página de login
│ │ └── signup/ # Página de cadastro
@@ -877,6 +917,7 @@ opensheets/
│ │ ├── dashboard/ # Dashboard principal
│ │ │ └── analise-parcelas/ # Análise de parcelas
│ │ ├── lancamentos/ # Lançamentos/transações
+│ │ ├── pre-lancamentos/ # Caixa de entrada (Companion)
│ │ ├── contas/ # Contas bancárias
│ │ │ └── [contaId]/extrato # Extrato da conta
│ │ ├── cartoes/ # Cartões de crédito
@@ -891,7 +932,9 @@ opensheets/
│ │ │ └── arquivadas/ # Anotações arquivadas
│ │ ├── insights/ # Insights de IA
│ │ ├── relatorios/ # Relatórios
-│ │ │ └── categorias/ # Relatório de categorias
+│ │ │ ├── tendencias/ # Tendências de categorias
+│ │ │ └── uso-cartoes/ # Análise de cartões
+│ │ ├── top-estabelecimentos/ # Top estabelecimentos
│ │ ├── calendario/ # Visão de calendário
│ │ ├── changelog/ # Histórico de mudanças
│ │ └── ajustes/ # Configurações
@@ -923,8 +966,11 @@ opensheets/
│ ├── anotacoes/ # Componentes de anotações
│ ├── insights/ # Componentes de insights IA
│ ├── relatorios/ # Componentes de relatórios
+│ ├── pre-lancamentos/ # Componentes da caixa de entrada
+│ ├── top-estabelecimentos/ # Top estabelecimentos
│ ├── calendario/ # Componentes de calendário
│ ├── calculadora/ # Calculadora integrada
+│ ├── ajustes/ # Configurações e Companion
│ ├── sidebar/ # Sidebar de navegação
│ ├── skeletons/ # Estados de loading
│ └── month-picker/ # Seletor de mês/período
@@ -1003,7 +1049,8 @@ opensheets/
| Diretório | Descrição | Arquivos |
| ------------------ | ------------------------------------------- | -------- |
-| `app/(dashboard)/` | Páginas protegidas da aplicação | ~50 |
+| `app/(dashboard)/` | Páginas protegidas da aplicação | ~60 |
+| `app/api/` | Endpoints da API (auth, inbox, health) | ~5 |
| `components/` | Componentes React reutilizáveis | ~200 |
| `lib/` | Lógica de negócio, helpers e utilitários | ~80 |
| `db/` | Schema do banco de dados | 1 |
@@ -1013,106 +1060,124 @@ opensheets/
### Estrutura do Banco de Dados
-O OpenSheets possui um schema robusto com 15+ tabelas e relações complexas:
+O OpenSheets possui um schema robusto com 17+ tabelas e relações complexas:
```
┌─────────────────────────────────────────────────────────────────┐
│ TABELAS PRINCIPAIS │
├─────────────────────────────────────────────────────────────────┤
│ │
-│ user user_preferences │
+│ user preferenciasUsuario │
│ ├── id ├── id │
-│ ├── name ├── user_id → user.id │
-│ ├── email ├── disable_magnetlines │
-│ └── ... └── ... │
+│ ├── name ├── userId → user.id │
+│ ├── email ├── disableMagnetlines │
+│ └── ... ├── dashboardWidgets (JSON) │
+│ └── ... │
│ │
│ contas cartoes │
│ ├── id ├── id │
-│ ├── user_id → user.id ├── user_id → user.id │
-│ ├── nome ├── conta_id → contas.id │
-│ ├── tipo_conta ├── nome │
-│ ├── saldo_inicial ├── bandeira │
-│ └── ... ├── dt_fechamento │
-│ ├── dt_vencimento │
+│ ├── userId → user.id ├── userId → user.id │
+│ ├── nome ├── contaId → contas.id │
+│ ├── tipoConta ├── nome │
+│ ├── saldoInicial ├── bandeira │
+│ └── ... ├── dtFechamento │
+│ ├── dtVencimento │
│ └── ... │
│ │
│ categorias pagadores │
│ ├── id ├── id │
-│ ├── user_id → user.id ├── user_id → user.id │
+│ ├── userId → user.id ├── userId → user.id │
│ ├── nome ├── nome │
│ ├── tipo ├── email │
-│ ├── icone ├── share_code (único) │
-│ └── ... ├── role │
+│ ├── icone ├── shareCode (único) │
+│ └── ... ├── isAutoSend │
│ └── ... │
│ │
-│ pagador_shares │
+│ compartilhamentosPagador │
│ ├── id │
-│ ├── pagador_id → pagadores.id │
-│ ├── shared_with_user_id → user.id │
-│ ├── created_by_user_id → user.id │
+│ ├── pagadorId → pagadores.id │
+│ ├── sharedWithUserId → user.id │
+│ ├── createdByUserId → user.id │
│ ├── permission (read/write) │
│ └── ... │
│ │
│ lancamentos (TABELA PRINCIPAL) │
│ ├── id │
-│ ├── user_id → user.id │
-│ ├── conta_id → contas.id │
-│ ├── cartao_id → cartoes.id │
-│ ├── categoria_id → categorias.id │
-│ ├── pagador_id → pagadores.id │
+│ ├── userId → user.id │
+│ ├── contaId → contas.id │
+│ ├── cartaoId → cartoes.id │
+│ ├── categoriaId → categorias.id │
+│ ├── pagadorId → pagadores.id │
│ ├── nome │
│ ├── valor │
-│ ├── tipo_transacao (receita/despesa/transferencia) │
-│ ├── forma_pagamento │
+│ ├── tipoTransacao (receita/despesa/transferencia) │
+│ ├── formaPagamento │
│ ├── condicao (aberto/realizado/cancelado) │
-│ ├── data_compra │
+│ ├── dataCompra │
│ ├── periodo (YYYY-MM) │
-│ ├── qtde_parcela │
-│ ├── parcela_atual │
-│ ├── series_id (agrupa parcelas) │
-│ ├── transfer_id (agrupa transferências) │
+│ ├── qtdeParcela │
+│ ├── parcelaAtual │
+│ ├── seriesId (agrupa parcelas) │
+│ ├── transferId (agrupa transferências) │
│ ├── antecipado (boolean) │
-│ ├── antecipacao_id → installment_anticipations.id │
+│ ├── antecipacaoId → antecipacoesParcelas.id │
│ └── ... │
│ │
-│ installment_anticipations │
+│ antecipacoesParcelas │
│ ├── id │
-│ ├── user_id → user.id │
-│ ├── series_id │
-│ ├── lancamento_id → lancamentos.id │
-│ ├── periodo_antecipacao │
-│ ├── parcelas_antecipadas (JSONB array) │
-│ ├── valor_total │
+│ ├── userId → user.id │
+│ ├── seriesId │
+│ ├── lancamentoId → lancamentos.id │
+│ ├── periodoAntecipacao │
+│ ├── parcelasAntecipadas (JSONB array) │
+│ ├── valorTotal │
│ ├── desconto │
│ └── ... │
│ │
│ faturas orcamentos │
│ ├── id ├── id │
-│ ├── user_id → user.id ├── user_id → user.id │
-│ ├── cartao_id → cartoes ├── categoria_id → categorias.id │
+│ ├── userId → user.id ├── userId → user.id │
+│ ├── cartaoId → cartoes ├── categoriaId → categorias.id │
│ ├── periodo ├── valor │
-│ ├── status_pagamento ├── periodo │
+│ ├── statusPagamento ├── periodo │
│ └── ... └── ... │
│ │
-│ anotacoes saved_insights │
+│ anotacoes insightsSalvos │
│ ├── id ├── id │
-│ ├── user_id → user.id ├── user_id → user.id │
+│ ├── userId → user.id ├── userId → user.id │
│ ├── titulo ├── period │
-│ ├── descricao ├── model_id │
+│ ├── descricao ├── modelId │
│ ├── tipo (nota/tarefa) ├── data (JSON) │
-│ ├── tasks (JSON) ├── created_at │
-│ ├── arquivada └── updated_at │
+│ ├── tasks (JSON) └── createdAt │
+│ ├── arquivada │
│ └── ... │
│ │
+│ ══════════════════ COMPANION APP ══════════════════ │
+│ │
+│ tokensApi preLancamentos │
+│ ├── id ├── id │
+│ ├── userId → user.id ├── userId → user.id │
+│ ├── name ├── sourceApp │
+│ ├── tokenHash (SHA-256) ├── sourceAppName │
+│ ├── tokenPrefix ├── originalTitle │
+│ ├── lastUsedAt ├── originalText │
+│ ├── lastUsedIp ├── parsedName │
+│ ├── expiresAt ├── parsedAmount │
+│ ├── revokedAt ├── status (pending/processed) │
+│ └── createdAt ├── lancamentoId → lancamentos.id │
+│ └── ... │
+│ │
└─────────────────────────────────────────────────────────────────┘
ÍNDICES OTIMIZADOS:
-• user_id + period (queries do dashboard)
-• user_id + purchase_date (ordenação por data)
-• series_id (agrupamento de parcelas)
-• cartao_id + period (faturas)
-• user_id + condition (filtros de condição)
-• share_code (compartilhamento)
+• userId + periodo (queries do dashboard)
+• userId + dataCompra (ordenação por data)
+• seriesId (agrupamento de parcelas)
+• cartaoId + periodo (faturas)
+• userId + condicao (filtros de condição)
+• shareCode (compartilhamento)
+• tokenHash (autenticação API)
+• userId + status (inbox filtering)
```
### Fluxo de Autenticação
@@ -1181,6 +1246,20 @@ O OpenSheets possui um schema robusto com 15+ tabelas e relações complexas:
O OpenSheets está em desenvolvimento ativo. Aqui estão algumas das funcionalidades mais interessantes já implementadas:
+### 📲 OpenSheets Companion
+
+Integração completa com app Android para captura automática de notificações bancárias:
+
+- **Captura automática:** Nubank, Itaú, Bradesco, Inter, C6 e outros bancos
+- **Caixa de entrada:** Notificações chegam como pré-lançamentos para revisão
+- **Edição inline:** Ajuste valores e descrições antes de aprovar
+- **Tokens seguros:** Autenticação via tokens com hash SHA-256
+- **Rate limiting:** Proteção contra abuso (100 req/min)
+- **API batch:** Envio de múltiplas notificações de uma vez
+- **Health check:** Endpoint para validação de conectividade
+
+O app Companion está disponível em: [github.com/felipegcoutinho/opensheets-companion](https://github.com/felipegcoutinho/opensheets-companion)
+
### 💸 Sistema Avançado de Parcelamentos
O controle de parcelamentos vai além do básico:
@@ -1215,7 +1294,10 @@ Analytics poderosos para entender suas finanças:
- **Dashboard interativo:** 20+ widgets com diferentes visualizações
- **Relatórios de categorias:** Análise profunda por categoria com histórico
-- **Comparativos mensais:** Veja a evolução dos seus gastos ao longo do tempo
+- **Tendências:** Visualize a evolução de categorias ao longo de 3, 6 ou 12 meses
+- **Uso de cartões:** Análise detalhada de gastos por cartão de crédito
+- **Top estabelecimentos:** Veja onde você mais gasta
+- **Comparativos mensais:** Evolução dos seus gastos ao longo do tempo
- **Exportações:** PDF e Excel para análise externa
- **Gráficos interativos:** Recharts com dados em tempo real
@@ -1258,6 +1340,7 @@ Feito por desenvolvedores, para desenvolvedores:
- **Migrations automáticas:** Schema sync simplificado
- **Docker completo:** Ambiente reproduzível em qualquer lugar
- **Scripts facilitados:** Comandos npm para tudo
+- **Biome:** Linting e formatting unificados em uma ferramenta
---
@@ -1356,6 +1439,7 @@ Para o texto legal completo, consulte o arquivo [LICENSE](LICENSE) ou visite [cr
- [Better Auth](https://better-auth.com/)
- [Drizzle ORM](https://orm.drizzle.team/)
- [shadcn/ui](https://ui.shadcn.com/)
+- [Biome](https://biomejs.dev/)
- [Vercel](https://vercel.com/)
---
diff --git a/components/ajustes/companion-tab.tsx b/components/ajustes/companion-tab.tsx
index f5ed8a1..2d81cf9 100644
--- a/components/ajustes/companion-tab.tsx
+++ b/components/ajustes/companion-tab.tsx
@@ -1,8 +1,10 @@
"use client";
+import type { ReactNode } from "react";
import {
RiAndroidLine,
RiDownload2Line,
+ RiExternalLinkLine,
RiNotification3Line,
RiQrCodeLine,
RiShieldCheckLine,
@@ -25,11 +27,28 @@ interface CompanionTabProps {
tokens: ApiToken[];
}
-const steps = [
+const steps: {
+ icon: typeof RiDownload2Line;
+ title: string;
+ description: ReactNode;
+}[] = [
{
icon: RiDownload2Line,
title: "Instale o app",
- description: "Instale o APK.",
+ description: (
+ <>
+ Baixe o APK no{" "}
+
+ GitHub
+
+
+ >
+ ),
},
{
icon: RiQrCodeLine,
diff --git a/components/logo.tsx b/components/logo.tsx
index a751673..1026c69 100644
--- a/components/logo.tsx
+++ b/components/logo.tsx
@@ -1,12 +1,18 @@
import Image from "next/image";
import { cn } from "@/lib/utils/ui";
+import { version } from "@/package.json";
interface LogoProps {
variant?: "full" | "small";
className?: string;
+ showVersion?: boolean;
}
-export function Logo({ variant = "full", className }: LogoProps) {
+export function Logo({
+ variant = "full",
+ className,
+ showVersion = false,
+}: LogoProps) {
if (variant === "small") {
return (
+
+ {showVersion && (
+
+ v{version}
+
+ )}
);
}
diff --git a/components/month-picker/return-button.tsx b/components/month-picker/return-button.tsx
index bfe9b23..ce35718 100644
--- a/components/month-picker/return-button.tsx
+++ b/components/month-picker/return-button.tsx
@@ -11,13 +11,13 @@ interface ReturnButtonProps {
const ReturnButton = React.memo(({ disabled, onClick }: ReturnButtonProps) => {
return (
);
});
diff --git a/components/sidebar/app-sidebar.tsx b/components/sidebar/app-sidebar.tsx
index 57d44c1..a43fa95 100644
--- a/components/sidebar/app-sidebar.tsx
+++ b/components/sidebar/app-sidebar.tsx
@@ -53,7 +53,7 @@ export function AppSidebar({
@@ -77,5 +77,10 @@ function LogoContent() {
const { state } = useSidebar();
const isCollapsed = state === "collapsed";
- return ;
+ return (
+
+ );
}
diff --git a/components/sidebar/nav-link.tsx b/components/sidebar/nav-link.tsx
index f1757a7..9bc42bc 100644
--- a/components/sidebar/nav-link.tsx
+++ b/components/sidebar/nav-link.tsx
@@ -13,7 +13,7 @@ import {
RiInboxLine,
RiNoCreditCardLine,
RiPriceTag3Line,
- RiSettingsLine,
+ RiSettings2Line,
RiSparklingLine,
RiTodoLine,
} from "@remixicon/react";
@@ -199,7 +199,7 @@ export function createSidebarNavData(
{
title: "Ajustes",
url: "/ajustes",
- icon: RiSettingsLine,
+ icon: RiSettings2Line,
},
],
};
diff --git a/package.json b/package.json
index 23f4277..6e31fe7 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "opensheets",
- "version": "1.0.0",
+ "version": "1.2.5",
"private": true,
"scripts": {
"dev": "next dev --turbopack",
@@ -27,9 +27,9 @@
"docker:rebuild": "docker compose up --build --force-recreate"
},
"dependencies": {
- "@ai-sdk/anthropic": "^3.0.31",
- "@ai-sdk/google": "^3.0.18",
- "@ai-sdk/openai": "^3.0.23",
+ "@ai-sdk/anthropic": "^3.0.35",
+ "@ai-sdk/google": "^3.0.20",
+ "@ai-sdk/openai": "^3.0.25",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
@@ -59,7 +59,7 @@
"@tanstack/react-table": "8.21.3",
"@vercel/analytics": "^1.6.1",
"@vercel/speed-insights": "^1.3.1",
- "ai": "^6.0.62",
+ "ai": "^6.0.67",
"babel-plugin-react-compiler": "^1.0.0",
"better-auth": "1.4.18",
"class-variance-authority": "0.7.1",
@@ -69,10 +69,9 @@
"drizzle-orm": "0.45.1",
"jspdf": "^4.0.0",
"jspdf-autotable": "^5.0.7",
- "motion": "^12.29.2",
"next": "16.1.6",
"next-themes": "0.4.6",
- "pg": "8.17.2",
+ "pg": "8.18.0",
"react": "19.2.4",
"react-day-picker": "^9.13.0",
"react-dom": "19.2.4",
@@ -87,13 +86,10 @@
"devDependencies": {
"@biomejs/biome": "2.3.13",
"@tailwindcss/postcss": "4.1.18",
- "@types/d3-array": "^3.2.2",
"@types/node": "25.1.0",
"@types/pg": "^8.16.0",
"@types/react": "19.2.10",
"@types/react-dom": "19.2.3",
- "baseline-browser-mapping": "^2.9.19",
- "depcheck": "^1.4.7",
"dotenv": "^17.2.3",
"drizzle-kit": "0.31.8",
"tailwindcss": "4.1.18",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 69712bc..d92c763 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,14 +9,14 @@ importers:
.:
dependencies:
'@ai-sdk/anthropic':
- specifier: ^3.0.31
- version: 3.0.31(zod@4.3.6)
+ specifier: ^3.0.35
+ version: 3.0.35(zod@4.3.6)
'@ai-sdk/google':
- specifier: ^3.0.18
- version: 3.0.18(zod@4.3.6)
+ specifier: ^3.0.20
+ version: 3.0.20(zod@4.3.6)
'@ai-sdk/openai':
- specifier: ^3.0.23
- version: 3.0.23(zod@4.3.6)
+ specifier: ^3.0.25
+ version: 3.0.25(zod@4.3.6)
'@dnd-kit/core':
specifier: ^6.3.1
version: 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -28,7 +28,7 @@ importers:
version: 3.2.2(react@19.2.4)
'@openrouter/ai-sdk-provider':
specifier: ^2.1.1
- version: 2.1.1(ai@6.0.62(zod@4.3.6))(zod@4.3.6)
+ version: 2.1.1(ai@6.0.67(zod@4.3.6))(zod@4.3.6)
'@radix-ui/react-accordion':
specifier: ^1.2.12
version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -105,14 +105,14 @@ importers:
specifier: ^1.3.1
version: 1.3.1(next@16.1.6(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
ai:
- specifier: ^6.0.62
- version: 6.0.62(zod@4.3.6)
+ specifier: ^6.0.67
+ version: 6.0.67(zod@4.3.6)
babel-plugin-react-compiler:
specifier: ^1.0.0
version: 1.0.0
better-auth:
specifier: 1.4.18
- version: 1.4.18(drizzle-kit@0.31.8)(drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.28.10)(pg@8.17.2))(next@16.1.6(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.17.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ version: 1.4.18(drizzle-kit@0.31.8)(drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.28.11)(pg@8.18.0))(next@16.1.6(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.18.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
class-variance-authority:
specifier: 0.7.1
version: 0.7.1
@@ -127,16 +127,13 @@ importers:
version: 4.1.0
drizzle-orm:
specifier: 0.45.1
- version: 0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.28.10)(pg@8.17.2)
+ version: 0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.28.11)(pg@8.18.0)
jspdf:
specifier: ^4.0.0
version: 4.0.0
jspdf-autotable:
specifier: ^5.0.7
version: 5.0.7(jspdf@4.0.0)
- motion:
- specifier: ^12.29.2
- version: 12.29.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
next:
specifier: 16.1.6
version: 16.1.6(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -144,8 +141,8 @@ importers:
specifier: 0.4.6
version: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
pg:
- specifier: 8.17.2
- version: 8.17.2
+ specifier: 8.18.0
+ version: 8.18.0
react:
specifier: 19.2.4
version: 19.2.4
@@ -183,9 +180,6 @@ importers:
'@tailwindcss/postcss':
specifier: 4.1.18
version: 4.1.18
- '@types/d3-array':
- specifier: ^3.2.2
- version: 3.2.2
'@types/node':
specifier: 25.1.0
version: 25.1.0
@@ -198,12 +192,6 @@ importers:
'@types/react-dom':
specifier: 19.2.3
version: 19.2.3(@types/react@19.2.10)
- baseline-browser-mapping:
- specifier: ^2.9.19
- version: 2.9.19
- depcheck:
- specifier: ^1.4.7
- version: 1.4.7
dotenv:
specifier: ^17.2.3
version: 17.2.3
@@ -222,56 +210,44 @@ importers:
packages:
- '@ai-sdk/anthropic@3.0.31':
- resolution: {integrity: sha512-rcrtOKbmhFKFxifCYjyFFWvBT2XBUfo6VzD2y2GyG6vZ1XJZoJn7JJe5uLy1bDj4mNUz55cottu5NgI6/NhSuQ==}
+ '@ai-sdk/anthropic@3.0.35':
+ resolution: {integrity: sha512-Y3g/5uVj621XSB9lGF7WrD7qR+orhV5xpaYkRF8kfj2j4W7e7BBGIvxcdsCf85FjJbc6tKQdNTZ84ZEqT3Y5TQ==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/gateway@3.0.29':
- resolution: {integrity: sha512-zf6yXT+7DcVGWG7ntxVCYC48X/opsWlO5ePvgH8W9DaEVUtkemqKUEzBqowQ778PkZo8sqMnRfD0+fi9HamRRQ==}
+ '@ai-sdk/gateway@3.0.32':
+ resolution: {integrity: sha512-7clZRr07P9rpur39t1RrbIe7x8jmwnwUWI8tZs+BvAfX3NFgdSVGGIaT7bTz2pb08jmLXzTSDbrOTqAQ7uBkBQ==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/google@3.0.18':
- resolution: {integrity: sha512-g36Arlv38wjnqAhNlxMkfTvmWpMbD+FTFoXLppZ8dZhMQbr/UI5dEtFAByU1/lWeDyOmj/uTWzAuRTyJRw7OLA==}
+ '@ai-sdk/google@3.0.20':
+ resolution: {integrity: sha512-bVGsulEr6JiipAFlclo9bjL5WaUV0iCSiiekLt+PY6pwmtJeuU2GaD9DoE3OqR8LN2W779mU13IhVEzlTupf8g==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/openai@3.0.23':
- resolution: {integrity: sha512-vFfFadJH+hbrgI4lhC9H/r8qPzuFJFUwZNS8oMI8KujO/woovbE1EWOOGMRGtNVL8PrhhxBfgJzvOKdux3c1gw==}
+ '@ai-sdk/openai@3.0.25':
+ resolution: {integrity: sha512-DsaN46R98+D1W3lU3fKuPU3ofacboLaHlkAwxJPgJ8eup1AJHmPK1N1y10eJJbJcF6iby8Tf/vanoZxc9JPUfw==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/provider-utils@4.0.11':
- resolution: {integrity: sha512-y/WOPpcZaBjvNaogy83mBsCRPvbtaK0y1sY9ckRrrbTGMvG2HC/9Y/huqNXKnLAxUIME2PGa2uvF2CDwIsxoXQ==}
+ '@ai-sdk/provider-utils@4.0.13':
+ resolution: {integrity: sha512-HHG72BN4d+OWTcq2NwTxOm/2qvk1duYsnhCDtsbYwn/h/4zeqURu1S0+Cn0nY2Ysq9a9HGKvrYuMn9bgFhR2Og==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/provider@3.0.6':
- resolution: {integrity: sha512-hSfoJtLtpMd7YxKM+iTqlJ0ZB+kJ83WESMiWuWrNVey3X8gg97x0OdAAaeAeclZByCX3UdPOTqhvJdK8qYA3ww==}
+ '@ai-sdk/provider@3.0.7':
+ resolution: {integrity: sha512-VkPLrutM6VdA924/mG8OS+5frbVTcu6e046D2bgDo00tehBANR1QBJ/mPcZ9tXMFOsVcm6SQArOregxePzTFPw==}
engines: {node: '>=18'}
'@alloc/quick-lru@5.2.0':
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
- '@babel/code-frame@7.28.6':
- resolution: {integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==}
- engines: {node: '>=6.9.0'}
-
- '@babel/generator@7.28.6':
- resolution: {integrity: sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-globals@7.28.0':
- resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-string-parser@7.27.1':
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
@@ -280,25 +256,12 @@ packages:
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.28.6':
- resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
'@babel/runtime@7.28.6':
resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==}
engines: {node: '>=6.9.0'}
- '@babel/template@7.28.6':
- resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/traverse@7.28.6':
- resolution: {integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/types@7.28.6':
- resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==}
+ '@babel/types@7.29.0':
+ resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
engines: {node: '>=6.9.0'}
'@better-auth/core@1.4.18':
@@ -1859,18 +1822,12 @@ packages:
'@types/d3-timer@3.0.2':
resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==}
- '@types/minimatch@3.0.5':
- resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
-
'@types/node@25.1.0':
resolution: {integrity: sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==}
'@types/pako@2.0.4':
resolution: {integrity: sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==}
- '@types/parse-json@4.0.2':
- resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
-
'@types/pg@8.16.0':
resolution: {integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==}
@@ -1944,21 +1901,6 @@ packages:
vue-router:
optional: true
- '@vue/compiler-core@3.5.27':
- resolution: {integrity: sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==}
-
- '@vue/compiler-dom@3.5.27':
- resolution: {integrity: sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==}
-
- '@vue/compiler-sfc@3.5.27':
- resolution: {integrity: sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==}
-
- '@vue/compiler-ssr@3.5.27':
- resolution: {integrity: sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==}
-
- '@vue/shared@3.5.27':
- resolution: {integrity: sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==}
-
'@zone-eu/mailsplit@5.4.8':
resolution: {integrity: sha512-eEyACj4JZ7sjzRvy26QhLgKEMWwQbsw1+QZnlLX+/gihcNH07lVPOcnwf5U6UAL7gkc//J3jVd76o/WS+taUiA==}
@@ -1966,45 +1908,19 @@ packages:
resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==}
engines: {node: '>=0.8'}
- ai@6.0.62:
- resolution: {integrity: sha512-0ArQPYmSnwoDG1nQ7GQ2XyEtYEWMSK4pVV9S9nsChRY2D6P2H2ntMEDV/CqTF6GTSwJpBJHAOSvsgEqSc7dx5g==}
+ ai@6.0.67:
+ resolution: {integrity: sha512-xBnTcByHCj3OcG6V8G1s6zvSEqK0Bdiu+IEXYcpGrve1iGFFRgcrKeZtr/WAW/7gupnSvBbDF24BEv1OOfqi1g==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
- ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
- argparse@1.0.10:
- resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
-
aria-hidden@1.2.6:
resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
engines: {node: '>=10'}
- array-differ@3.0.0:
- resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
- engines: {node: '>=8'}
-
- array-union@2.1.0:
- resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
- engines: {node: '>=8'}
-
- arrify@2.0.1:
- resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
- engines: {node: '>=8'}
-
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==}
-
base64-arraybuffer@1.0.2:
resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==}
engines: {node: '>= 0.6.0'}
@@ -2083,30 +1999,9 @@ packages:
zod:
optional: true
- brace-expansion@1.1.12:
- resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
-
- brace-expansion@2.0.2:
- resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
-
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
-
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
- callsite@1.0.0:
- resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==}
-
- callsites@3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
-
- camelcase@6.3.0:
- resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
- engines: {node: '>=10'}
-
caniuse-lite@1.0.30001766:
resolution: {integrity: sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==}
@@ -2124,9 +2019,6 @@ packages:
client-only@0.0.1:
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
- cliui@7.0.4:
- resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
-
clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
@@ -2141,23 +2033,9 @@ packages:
resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==}
engines: {node: '>=0.8'}
- color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
-
- color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
- concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-
core-js@3.48.0:
resolution: {integrity: sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==}
- cosmiconfig@7.1.0:
- resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
- engines: {node: '>=10'}
-
crc-32@1.2.2:
resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
engines: {node: '>=0.8'}
@@ -2238,18 +2116,6 @@ packages:
defu@6.1.4:
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
- depcheck@1.4.7:
- resolution: {integrity: sha512-1lklS/bV5chOxwNKA/2XUUk/hPORp8zihZsXflr8x0kLwmcZ9Y9BsS6Hs3ssvA+2wUVbG0U2Ciqvm1SokNjPkA==}
- engines: {node: '>=10'}
- hasBin: true
-
- deps-regex@0.2.0:
- resolution: {integrity: sha512-PwuBojGMQAYbWkMXOY9Pd/NWCDNHVH12pnS7WHqZkTSeMESe4hwnKKRp0yR87g37113x4JPbo/oIvXY+s/f56Q==}
-
- detect-file@1.0.0:
- resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==}
- engines: {node: '>=0.10.0'}
-
detect-libc@2.1.2:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
@@ -2373,9 +2239,6 @@ packages:
sqlite3:
optional: true
- emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-
encoding-japanese@2.2.0:
resolution: {integrity: sha512-EuJWwlHPZ1LbADuKTClvHtwbaFn4rOD+dRAbWysqEOXRc2Uui0hJInNJrsdH0c+OhJA4nrCBdSkW4DD5YxAo6A==}
engines: {node: '>=8.10.0'}
@@ -2388,13 +2251,6 @@ packages:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
- entities@7.0.1:
- resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
- engines: {node: '>=0.12'}
-
- error-ex@1.3.4:
- resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
-
es-toolkit@1.44.0:
resolution: {integrity: sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==}
@@ -2418,18 +2274,6 @@ packages:
engines: {node: '>=18'}
hasBin: true
- escalade@3.2.0:
- resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
- engines: {node: '>=6'}
-
- esprima@4.0.1:
- resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
- engines: {node: '>=4'}
- hasBin: true
-
- estree-walker@2.0.2:
- resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
-
eventemitter3@5.0.4:
resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
@@ -2437,10 +2281,6 @@ packages:
resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==}
engines: {node: '>=18.0.0'}
- expand-tilde@2.0.2:
- resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}
- engines: {node: '>=0.10.0'}
-
fast-png@6.4.0:
resolution: {integrity: sha512-kAqZq1TlgBjZcLr5mcN6NP5Rv4V2f22z00c3g8vRrwkcqjerx7BEhPbOnWCPqaHUl2XWQBJQvOT/FQhdMT7X/Q==}
@@ -2450,74 +2290,29 @@ packages:
fflate@0.8.2:
resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
- fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
-
- findup-sync@5.0.0:
- resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==}
- engines: {node: '>= 10.13.0'}
-
frac@1.1.2:
resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==}
engines: {node: '>=0.8'}
- framer-motion@12.29.2:
- resolution: {integrity: sha512-lSNRzBJk4wuIy0emYQ/nfZ7eWhqud2umPKw2QAQki6uKhZPKm2hRQHeQoHTG9MIvfobb+A/LbEWPJU794ZUKrg==}
- peerDependencies:
- '@emotion/is-prop-valid': '*'
- react: ^18.0.0 || ^19.0.0
- react-dom: ^18.0.0 || ^19.0.0
- peerDependenciesMeta:
- '@emotion/is-prop-valid':
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
-
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
- function-bind@1.1.2:
- resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
-
- get-caller-file@2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
-
get-nonce@1.0.1:
resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
engines: {node: '>=6'}
- get-tsconfig@4.13.0:
- resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==}
-
- global-modules@1.0.0:
- resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==}
- engines: {node: '>=0.10.0'}
-
- global-prefix@1.0.2:
- resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==}
- engines: {node: '>=0.10.0'}
+ get-tsconfig@4.13.1:
+ resolution: {integrity: sha512-EoY1N2xCn44xU6750Sx7OjOIT59FkmstNc3X6y5xpz7D5cBtZRe/3pSlTkDJgqsOk3WwZPkWfonhhUJfttQo3w==}
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
- engines: {node: '>= 0.4'}
-
he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
- homedir-polyfill@1.0.3:
- resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
- engines: {node: '>=0.10.0'}
-
html-to-text@9.0.5:
resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==}
engines: {node: '>=14'}
@@ -2537,23 +2332,12 @@ packages:
resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==}
engines: {node: '>=0.10.0'}
- ignore@5.3.2:
- resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
- engines: {node: '>= 4'}
-
immer@10.2.0:
resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==}
immer@11.1.3:
resolution: {integrity: sha512-6jQTc5z0KJFtr1UgFpIL3N9XSC3saRaI9PwWtzM2pSqkNGtiNkYY2OSwkOGDK2XcTRcLb1pi/aNkKZz0nxVH4Q==}
- import-fresh@3.3.1:
- resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
- engines: {node: '>=6'}
-
- ini@1.3.8:
- resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
-
internmap@2.0.3:
resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
engines: {node: '>=12'}
@@ -2561,36 +2345,6 @@ packages:
iobuffer@5.4.0:
resolution: {integrity: sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==}
- is-arrayish@0.2.1:
- resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
-
- is-core-module@2.16.1:
- resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
- engines: {node: '>= 0.4'}
-
- is-extglob@2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
-
- is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
-
- is-glob@4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
-
- is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
- is-windows@1.0.2:
- resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
- engines: {node: '>=0.10.0'}
-
- isexe@2.0.0:
- resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-
jiti@2.6.1:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
@@ -2598,29 +2352,9 @@ packages:
jose@6.1.3:
resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==}
- js-tokens@4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-
- js-yaml@3.14.2:
- resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
- hasBin: true
-
- jsesc@3.1.0:
- resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
- engines: {node: '>=6'}
- hasBin: true
-
- json-parse-even-better-errors@2.3.1:
- resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
-
json-schema@0.4.0:
resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
- json5@2.2.3:
- resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
- engines: {node: '>=6'}
- hasBin: true
-
jspdf-autotable@5.0.7:
resolution: {integrity: sha512-2wr7H6liNDBYNwt25hMQwXkEWFOEopgKIvR1Eukuw6Zmprm/ZcnmLTQEjW7Xx3FCbD3v7pflLcnMAv/h1jFDQw==}
peerDependencies:
@@ -2629,8 +2363,8 @@ packages:
jspdf@4.0.0:
resolution: {integrity: sha512-w12U97Z6edKd2tXDn3LzTLg7C7QLJlx0BPfM3ecjK2BckUl9/81vZ+r5gK4/3KQdhAcEZhENUxRhtgYBj75MqQ==}
- kysely@0.28.10:
- resolution: {integrity: sha512-ksNxfzIW77OcZ+QWSAPC7yDqUSaIVwkTWnTPNiIy//vifNbwsSgQ57OkkncHxxpcBHM3LRfLAZVEh7kjq5twVA==}
+ kysely@0.28.11:
+ resolution: {integrity: sha512-zpGIFg0HuoC893rIjYX1BETkVWdDnzTzF5e0kWXJFg5lE0k1/LfNWBejrcnOFu8Q2Rfq/hTDTU7XLUM8QOrpzg==}
engines: {node: '>=20.0.0'}
leac@0.6.0:
@@ -2719,59 +2453,18 @@ packages:
resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==}
engines: {node: '>= 12.0.0'}
- 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==}
- lodash@4.17.23:
- resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==}
-
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
mailparser@3.9.1:
resolution: {integrity: sha512-6vHZcco3fWsDMkf4Vz9iAfxvwrKNGbHx0dV1RKVphQ/zaNY34Buc7D37LSa09jeSeybWzYcTPjhiZFxzVRJedA==}
- micromatch@4.0.8:
- resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
- engines: {node: '>=8.6'}
-
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
-
- minimatch@7.4.6:
- resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
- engines: {node: '>=10'}
-
- motion-dom@12.29.2:
- resolution: {integrity: sha512-/k+NuycVV8pykxyiTCoFzIVLA95Nb1BFIVvfSu9L50/6K6qNeAYtkxXILy/LRutt7AzaYDc2myj0wkCVVYAPPA==}
-
- motion-utils@12.29.2:
- resolution: {integrity: sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==}
-
- motion@12.29.2:
- resolution: {integrity: sha512-jMpHdAzEDF1QQ055cB+1lOBLdJ6ialVWl6QQzpJI2OvmHequ7zFVHM2mx0HNAy+Tu4omUlApfC+4vnkX0geEOg==}
- peerDependencies:
- '@emotion/is-prop-valid': '*'
- react: ^18.0.0 || ^19.0.0
- react-dom: ^18.0.0 || ^19.0.0
- peerDependenciesMeta:
- '@emotion/is-prop-valid':
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
-
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
- multimatch@5.0.0:
- resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
- engines: {node: '>=10'}
-
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -2815,28 +2508,9 @@ packages:
pako@2.1.0:
resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
- parent-module@1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- engines: {node: '>=6'}
-
- parse-json@5.2.0:
- resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
- engines: {node: '>=8'}
-
- parse-passwd@1.0.0:
- resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}
- engines: {node: '>=0.10.0'}
-
parseley@0.12.1:
resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==}
- path-parse@1.0.7:
- resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
-
- path-type@4.0.0:
- resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
- engines: {node: '>=8'}
-
peberminta@0.9.0:
resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==}
@@ -2846,8 +2520,8 @@ packages:
pg-cloudflare@1.3.0:
resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==}
- pg-connection-string@2.10.1:
- resolution: {integrity: sha512-iNzslsoeSH2/gmDDKiyMqF64DATUCWj3YJ0wP14kqcsf2TUklwimd+66yYojKwZCA7h2yRNLGug71hCBA2a4sw==}
+ pg-connection-string@2.11.0:
+ resolution: {integrity: sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ==}
pg-int8@1.0.1:
resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
@@ -2865,8 +2539,8 @@ packages:
resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
engines: {node: '>=4'}
- pg@8.17.2:
- resolution: {integrity: sha512-vjbKdiBJRqzcYw1fNU5KuHyYvdJ1qpcQg1CeBrHFqV1pWgHeVR6j/+kX0E1AAXfyuLUGY1ICrN2ELKA/z2HWzw==}
+ pg@8.18.0:
+ resolution: {integrity: sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ==}
engines: {node: '>= 16.0.0'}
peerDependencies:
pg-native: '>=3.0.1'
@@ -2880,13 +2554,6 @@ packages:
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
- picomatch@2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
-
- please-upgrade-node@3.2.0:
- resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==}
-
postcss@8.4.31:
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
engines: {node: ^10 || ^12 || >=14}
@@ -2978,10 +2645,6 @@ packages:
resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==}
engines: {node: '>=0.10.0'}
- readdirp@3.6.0:
- resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
- engines: {node: '>=8.10.0'}
-
recharts@3.7.0:
resolution: {integrity: sha512-l2VCsy3XXeraxIID9fx23eCb6iCBsxUQDnE8tWm6DFdszVAO7WVY/ChAD9wVit01y6B2PMupYiMmQwhgPHc9Ew==}
engines: {node: '>=18'}
@@ -3001,13 +2664,6 @@ packages:
regenerator-runtime@0.13.11:
resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
- require-directory@2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
-
- require-package-name@2.0.1:
- resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==}
-
reselect@5.1.1:
resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==}
@@ -3020,26 +2676,9 @@ packages:
'@react-email/render':
optional: true
- resolve-dir@1.0.1:
- resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==}
- engines: {node: '>=0.10.0'}
-
- resolve-from@4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- engines: {node: '>=4'}
-
- resolve-from@5.0.0:
- resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
- engines: {node: '>=8'}
-
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
- resolve@1.22.11:
- resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==}
- engines: {node: '>= 0.4'}
- hasBin: true
-
rgbcolor@1.0.1:
resolution: {integrity: sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==}
engines: {node: '>= 0.8.15'}
@@ -3056,9 +2695,6 @@ packages:
selderee@0.11.0:
resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==}
- semver-compare@1.0.0:
- resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
-
semver@7.7.3:
resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
engines: {node: '>=10'}
@@ -3092,9 +2728,6 @@ packages:
resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
engines: {node: '>= 10.x'}
- sprintf-js@1.0.3:
- resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
-
ssf@0.11.2:
resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==}
engines: {node: '>=0.8'}
@@ -3106,14 +2739,6 @@ packages:
standardwebhooks@1.0.0:
resolution: {integrity: sha512-BbHGOQK9olHPMvQNHWul6MYlrRTAOKn03rOe4A8O3CLWhNf4YHBqq2HJKKC+sfqpxiBY52pNeesD6jIiLDz8jg==}
- string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
-
- strip-ansi@6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
-
styled-jsx@5.1.6:
resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
engines: {node: '>= 12.0.0'}
@@ -3127,10 +2752,6 @@ packages:
babel-plugin-macros:
optional: true
- supports-preserve-symlinks-flag@1.0.0:
- resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
- engines: {node: '>= 0.4'}
-
svg-pathdata@6.0.3:
resolution: {integrity: sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==}
engines: {node: '>=12.0.0'}
@@ -3158,10 +2779,6 @@ packages:
resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==}
hasBin: true
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
@@ -3222,10 +2839,6 @@ packages:
victory-vendor@37.3.6:
resolution: {integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==}
- which@1.3.1:
- resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
- hasBin: true
-
wmf@1.0.2:
resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==}
engines: {node: '>=0.8'}
@@ -3234,10 +2847,6 @@ packages:
resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==}
engines: {node: '>=0.8'}
- wrap-ansi@7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
-
xlsx@0.18.5:
resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==}
engines: {node: '>=0.8'}
@@ -3247,128 +2856,74 @@ packages:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
- y18n@5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- engines: {node: '>=10'}
-
- yaml@1.10.2:
- resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
- engines: {node: '>= 6'}
-
- yargs-parser@20.2.9:
- resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
- engines: {node: '>=10'}
-
- yargs@16.2.0:
- resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
- engines: {node: '>=10'}
-
zod@4.3.6:
resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==}
snapshots:
- '@ai-sdk/anthropic@3.0.31(zod@4.3.6)':
+ '@ai-sdk/anthropic@3.0.35(zod@4.3.6)':
dependencies:
- '@ai-sdk/provider': 3.0.6
- '@ai-sdk/provider-utils': 4.0.11(zod@4.3.6)
+ '@ai-sdk/provider': 3.0.7
+ '@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
zod: 4.3.6
- '@ai-sdk/gateway@3.0.29(zod@4.3.6)':
+ '@ai-sdk/gateway@3.0.32(zod@4.3.6)':
dependencies:
- '@ai-sdk/provider': 3.0.6
- '@ai-sdk/provider-utils': 4.0.11(zod@4.3.6)
+ '@ai-sdk/provider': 3.0.7
+ '@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
'@vercel/oidc': 3.1.0
zod: 4.3.6
- '@ai-sdk/google@3.0.18(zod@4.3.6)':
+ '@ai-sdk/google@3.0.20(zod@4.3.6)':
dependencies:
- '@ai-sdk/provider': 3.0.6
- '@ai-sdk/provider-utils': 4.0.11(zod@4.3.6)
+ '@ai-sdk/provider': 3.0.7
+ '@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
zod: 4.3.6
- '@ai-sdk/openai@3.0.23(zod@4.3.6)':
+ '@ai-sdk/openai@3.0.25(zod@4.3.6)':
dependencies:
- '@ai-sdk/provider': 3.0.6
- '@ai-sdk/provider-utils': 4.0.11(zod@4.3.6)
+ '@ai-sdk/provider': 3.0.7
+ '@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
zod: 4.3.6
- '@ai-sdk/provider-utils@4.0.11(zod@4.3.6)':
+ '@ai-sdk/provider-utils@4.0.13(zod@4.3.6)':
dependencies:
- '@ai-sdk/provider': 3.0.6
+ '@ai-sdk/provider': 3.0.7
'@standard-schema/spec': 1.1.0
eventsource-parser: 3.0.6
zod: 4.3.6
- '@ai-sdk/provider@3.0.6':
+ '@ai-sdk/provider@3.0.7':
dependencies:
json-schema: 0.4.0
'@alloc/quick-lru@5.2.0': {}
- '@babel/code-frame@7.28.6':
- dependencies:
- '@babel/helper-validator-identifier': 7.28.5
- js-tokens: 4.0.0
- picocolors: 1.1.1
-
- '@babel/generator@7.28.6':
- dependencies:
- '@babel/parser': 7.28.6
- '@babel/types': 7.28.6
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
- jsesc: 3.1.0
-
- '@babel/helper-globals@7.28.0': {}
-
'@babel/helper-string-parser@7.27.1': {}
'@babel/helper-validator-identifier@7.28.5': {}
- '@babel/parser@7.28.6':
- dependencies:
- '@babel/types': 7.28.6
-
'@babel/runtime@7.28.6': {}
- '@babel/template@7.28.6':
- dependencies:
- '@babel/code-frame': 7.28.6
- '@babel/parser': 7.28.6
- '@babel/types': 7.28.6
-
- '@babel/traverse@7.28.6':
- dependencies:
- '@babel/code-frame': 7.28.6
- '@babel/generator': 7.28.6
- '@babel/helper-globals': 7.28.0
- '@babel/parser': 7.28.6
- '@babel/template': 7.28.6
- '@babel/types': 7.28.6
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- '@babel/types@7.28.6':
+ '@babel/types@7.29.0':
dependencies:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
- '@better-auth/core@1.4.18(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)':
+ '@better-auth/core@1.4.18(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0)':
dependencies:
'@better-auth/utils': 0.3.0
'@better-fetch/fetch': 1.1.21
'@standard-schema/spec': 1.1.0
better-call: 1.1.8(zod@4.3.6)
jose: 6.1.3
- kysely: 0.28.10
+ kysely: 0.28.11
nanostores: 1.1.0
zod: 4.3.6
- '@better-auth/telemetry@1.4.18(@better-auth/core@1.4.18(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))':
+ '@better-auth/telemetry@1.4.18(@better-auth/core@1.4.18(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0))':
dependencies:
- '@better-auth/core': 1.4.18(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
+ '@better-auth/core': 1.4.18(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0)
'@better-auth/utils': 0.3.0
'@better-fetch/fetch': 1.1.21
@@ -3453,7 +3008,7 @@ snapshots:
'@esbuild-kit/esm-loader@2.6.5':
dependencies:
'@esbuild-kit/core-utils': 3.3.2
- get-tsconfig: 4.13.0
+ get-tsconfig: 4.13.1
'@esbuild/aix-ppc64@0.25.12':
optional: true
@@ -3840,9 +3395,9 @@ snapshots:
'@noble/hashes@2.0.1': {}
- '@openrouter/ai-sdk-provider@2.1.1(ai@6.0.62(zod@4.3.6))(zod@4.3.6)':
+ '@openrouter/ai-sdk-provider@2.1.1(ai@6.0.67(zod@4.3.6))(zod@4.3.6)':
dependencies:
- ai: 6.0.62(zod@4.3.6)
+ ai: 6.0.67(zod@4.3.6)
zod: 4.3.6
'@opentelemetry/api@1.9.0': {}
@@ -4572,16 +4127,12 @@ snapshots:
'@types/d3-timer@3.0.2': {}
- '@types/minimatch@3.0.5': {}
-
'@types/node@25.1.0':
dependencies:
undici-types: 7.16.0
'@types/pako@2.0.4': {}
- '@types/parse-json@4.0.2': {}
-
'@types/pg@8.16.0':
dependencies:
'@types/node': 25.1.0
@@ -4616,38 +4167,6 @@ snapshots:
next: 16.1.6(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
react: 19.2.4
- '@vue/compiler-core@3.5.27':
- dependencies:
- '@babel/parser': 7.28.6
- '@vue/shared': 3.5.27
- entities: 7.0.1
- estree-walker: 2.0.2
- source-map-js: 1.2.1
-
- '@vue/compiler-dom@3.5.27':
- dependencies:
- '@vue/compiler-core': 3.5.27
- '@vue/shared': 3.5.27
-
- '@vue/compiler-sfc@3.5.27':
- dependencies:
- '@babel/parser': 7.28.6
- '@vue/compiler-core': 3.5.27
- '@vue/compiler-dom': 3.5.27
- '@vue/compiler-ssr': 3.5.27
- '@vue/shared': 3.5.27
- estree-walker: 2.0.2
- magic-string: 0.30.21
- postcss: 8.5.6
- source-map-js: 1.2.1
-
- '@vue/compiler-ssr@3.5.27':
- dependencies:
- '@vue/compiler-dom': 3.5.27
- '@vue/shared': 3.5.27
-
- '@vue/shared@3.5.27': {}
-
'@zone-eu/mailsplit@5.4.8':
dependencies:
libbase64: 1.3.0
@@ -4656,49 +4175,31 @@ snapshots:
adler-32@1.3.1: {}
- ai@6.0.62(zod@4.3.6):
+ ai@6.0.67(zod@4.3.6):
dependencies:
- '@ai-sdk/gateway': 3.0.29(zod@4.3.6)
- '@ai-sdk/provider': 3.0.6
- '@ai-sdk/provider-utils': 4.0.11(zod@4.3.6)
+ '@ai-sdk/gateway': 3.0.32(zod@4.3.6)
+ '@ai-sdk/provider': 3.0.7
+ '@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
'@opentelemetry/api': 1.9.0
zod: 4.3.6
- ansi-regex@5.0.1: {}
-
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
- argparse@1.0.10:
- dependencies:
- sprintf-js: 1.0.3
-
aria-hidden@1.2.6:
dependencies:
tslib: 2.8.1
- array-differ@3.0.0: {}
-
- array-union@2.1.0: {}
-
- arrify@2.0.1: {}
-
babel-plugin-react-compiler@1.0.0:
dependencies:
- '@babel/types': 7.28.6
-
- balanced-match@1.0.2: {}
+ '@babel/types': 7.29.0
base64-arraybuffer@1.0.2:
optional: true
baseline-browser-mapping@2.9.19: {}
- better-auth@1.4.18(drizzle-kit@0.31.8)(drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.28.10)(pg@8.17.2))(next@16.1.6(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.17.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
+ better-auth@1.4.18(drizzle-kit@0.31.8)(drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.28.11)(pg@8.18.0))(next@16.1.6(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(pg@8.18.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
dependencies:
- '@better-auth/core': 1.4.18(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0)
- '@better-auth/telemetry': 1.4.18(@better-auth/core@1.4.18(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.10)(nanostores@1.1.0))
+ '@better-auth/core': 1.4.18(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0)
+ '@better-auth/telemetry': 1.4.18(@better-auth/core@1.4.18(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.8(zod@4.3.6))(jose@6.1.3)(kysely@0.28.11)(nanostores@1.1.0))
'@better-auth/utils': 0.3.0
'@better-fetch/fetch': 1.1.21
'@noble/ciphers': 2.1.1
@@ -4706,14 +4207,14 @@ snapshots:
better-call: 1.1.8(zod@4.3.6)
defu: 6.1.4
jose: 6.1.3
- kysely: 0.28.10
+ kysely: 0.28.11
nanostores: 1.1.0
zod: 4.3.6
optionalDependencies:
drizzle-kit: 0.31.8
- drizzle-orm: 0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.28.10)(pg@8.17.2)
+ drizzle-orm: 0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.28.11)(pg@8.18.0)
next: 16.1.6(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
- pg: 8.17.2
+ pg: 8.18.0
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
@@ -4726,27 +4227,8 @@ snapshots:
optionalDependencies:
zod: 4.3.6
- brace-expansion@1.1.12:
- dependencies:
- balanced-match: 1.0.2
- concat-map: 0.0.1
-
- brace-expansion@2.0.2:
- dependencies:
- balanced-match: 1.0.2
-
- braces@3.0.3:
- dependencies:
- fill-range: 7.1.1
-
buffer-from@1.1.2: {}
- callsite@1.0.0: {}
-
- callsites@3.1.0: {}
-
- camelcase@6.3.0: {}
-
caniuse-lite@1.0.30001766: {}
canvg@3.0.11:
@@ -4772,12 +4254,6 @@ snapshots:
client-only@0.0.1: {}
- cliui@7.0.4:
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 7.0.0
-
clsx@2.1.1: {}
cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
@@ -4794,25 +4270,9 @@ snapshots:
codepage@1.15.0: {}
- color-convert@2.0.1:
- dependencies:
- color-name: 1.1.4
-
- color-name@1.1.4: {}
-
- concat-map@0.0.1: {}
-
core-js@3.48.0:
optional: true
- cosmiconfig@7.1.0:
- dependencies:
- '@types/parse-json': 4.0.2
- import-fresh: 3.3.1
- parse-json: 5.2.0
- path-type: 4.0.0
- yaml: 1.10.2
-
crc-32@1.2.2: {}
css-line-break@2.1.0:
@@ -4874,38 +4334,6 @@ snapshots:
defu@6.1.4: {}
- depcheck@1.4.7:
- dependencies:
- '@babel/parser': 7.28.6
- '@babel/traverse': 7.28.6
- '@vue/compiler-sfc': 3.5.27
- callsite: 1.0.0
- camelcase: 6.3.0
- cosmiconfig: 7.1.0
- debug: 4.4.3
- deps-regex: 0.2.0
- findup-sync: 5.0.0
- ignore: 5.3.2
- is-core-module: 2.16.1
- js-yaml: 3.14.2
- json5: 2.2.3
- lodash: 4.17.23
- minimatch: 7.4.6
- multimatch: 5.0.0
- please-upgrade-node: 3.2.0
- readdirp: 3.6.0
- require-package-name: 2.0.1
- resolve: 1.22.11
- resolve-from: 5.0.0
- semver: 7.7.3
- yargs: 16.2.0
- transitivePeerDependencies:
- - supports-color
-
- deps-regex@0.2.0: {}
-
- detect-file@1.0.0: {}
-
detect-libc@2.1.2: {}
detect-node-es@1.1.0: {}
@@ -4944,14 +4372,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.28.10)(pg@8.17.2):
+ drizzle-orm@0.45.1(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.28.11)(pg@8.18.0):
optionalDependencies:
'@opentelemetry/api': 1.9.0
'@types/pg': 8.16.0
- kysely: 0.28.10
- pg: 8.17.2
-
- emoji-regex@8.0.0: {}
+ kysely: 0.28.11
+ pg: 8.18.0
encoding-japanese@2.2.0: {}
@@ -4962,12 +4388,6 @@ snapshots:
entities@4.5.0: {}
- entities@7.0.1: {}
-
- error-ex@1.3.4:
- dependencies:
- is-arrayish: 0.2.1
-
es-toolkit@1.44.0: {}
esbuild-register@3.6.0(esbuild@0.25.12):
@@ -5060,20 +4480,10 @@ snapshots:
'@esbuild/win32-ia32': 0.27.2
'@esbuild/win32-x64': 0.27.2
- escalade@3.2.0: {}
-
- esprima@4.0.1: {}
-
- estree-walker@2.0.2: {}
-
eventemitter3@5.0.4: {}
eventsource-parser@3.0.6: {}
- expand-tilde@2.0.2:
- dependencies:
- homedir-polyfill: 1.0.3
-
fast-png@6.4.0:
dependencies:
'@types/pako': 2.0.4
@@ -5084,67 +4494,21 @@ snapshots:
fflate@0.8.2: {}
- fill-range@7.1.1:
- dependencies:
- to-regex-range: 5.0.1
-
- findup-sync@5.0.0:
- dependencies:
- detect-file: 1.0.0
- is-glob: 4.0.3
- micromatch: 4.0.8
- resolve-dir: 1.0.1
-
frac@1.1.2: {}
- framer-motion@12.29.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
- dependencies:
- motion-dom: 12.29.2
- motion-utils: 12.29.2
- tslib: 2.8.1
- optionalDependencies:
- react: 19.2.4
- react-dom: 19.2.4(react@19.2.4)
-
fsevents@2.3.3:
optional: true
- function-bind@1.1.2: {}
-
- get-caller-file@2.0.5: {}
-
get-nonce@1.0.1: {}
- get-tsconfig@4.13.0:
+ get-tsconfig@4.13.1:
dependencies:
resolve-pkg-maps: 1.0.0
- global-modules@1.0.0:
- dependencies:
- global-prefix: 1.0.2
- is-windows: 1.0.2
- resolve-dir: 1.0.1
-
- global-prefix@1.0.2:
- dependencies:
- expand-tilde: 2.0.2
- homedir-polyfill: 1.0.3
- ini: 1.3.8
- is-windows: 1.0.2
- which: 1.3.1
-
graceful-fs@4.2.11: {}
- hasown@2.0.2:
- dependencies:
- function-bind: 1.1.2
-
he@1.2.0: {}
- homedir-polyfill@1.0.3:
- dependencies:
- parse-passwd: 1.0.0
-
html-to-text@9.0.5:
dependencies:
'@selderee/plugin-htmlparser2': 0.11.0
@@ -5174,62 +4538,20 @@ snapshots:
dependencies:
safer-buffer: 2.1.2
- ignore@5.3.2: {}
-
immer@10.2.0: {}
immer@11.1.3: {}
- import-fresh@3.3.1:
- dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
-
- ini@1.3.8: {}
-
internmap@2.0.3: {}
iobuffer@5.4.0: {}
- is-arrayish@0.2.1: {}
-
- is-core-module@2.16.1:
- dependencies:
- hasown: 2.0.2
-
- is-extglob@2.1.1: {}
-
- is-fullwidth-code-point@3.0.0: {}
-
- is-glob@4.0.3:
- dependencies:
- is-extglob: 2.1.1
-
- is-number@7.0.0: {}
-
- is-windows@1.0.2: {}
-
- isexe@2.0.0: {}
-
jiti@2.6.1: {}
jose@6.1.3: {}
- js-tokens@4.0.0: {}
-
- js-yaml@3.14.2:
- dependencies:
- argparse: 1.0.10
- esprima: 4.0.1
-
- jsesc@3.1.0: {}
-
- json-parse-even-better-errors@2.3.1: {}
-
json-schema@0.4.0: {}
- json5@2.2.3: {}
-
jspdf-autotable@5.0.7(jspdf@4.0.0):
dependencies:
jspdf: 4.0.0
@@ -5245,7 +4567,7 @@ snapshots:
dompurify: 3.3.1
html2canvas: 1.4.1
- kysely@0.28.10: {}
+ kysely@0.28.11: {}
leac@0.6.0: {}
@@ -5309,14 +4631,10 @@ snapshots:
lightningcss-win32-arm64-msvc: 1.30.2
lightningcss-win32-x64-msvc: 1.30.2
- lines-and-columns@1.2.4: {}
-
linkify-it@5.0.0:
dependencies:
uc.micro: 2.1.0
- lodash@4.17.23: {}
-
magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -5334,43 +4652,8 @@ snapshots:
punycode.js: 2.3.1
tlds: 1.261.0
- micromatch@4.0.8:
- dependencies:
- braces: 3.0.3
- picomatch: 2.3.1
-
- minimatch@3.1.2:
- dependencies:
- brace-expansion: 1.1.12
-
- minimatch@7.4.6:
- dependencies:
- brace-expansion: 2.0.2
-
- motion-dom@12.29.2:
- dependencies:
- motion-utils: 12.29.2
-
- motion-utils@12.29.2: {}
-
- motion@12.29.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
- dependencies:
- framer-motion: 12.29.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
- tslib: 2.8.1
- optionalDependencies:
- react: 19.2.4
- react-dom: 19.2.4(react@19.2.4)
-
ms@2.1.3: {}
- multimatch@5.0.0:
- dependencies:
- '@types/minimatch': 3.0.5
- array-differ: 3.0.0
- array-union: 2.1.0
- arrify: 2.0.1
- minimatch: 3.1.2
-
nanoid@3.3.11: {}
nanostores@1.1.0: {}
@@ -5410,28 +4693,11 @@ snapshots:
pako@2.1.0: {}
- parent-module@1.0.1:
- dependencies:
- callsites: 3.1.0
-
- parse-json@5.2.0:
- dependencies:
- '@babel/code-frame': 7.28.6
- error-ex: 1.3.4
- json-parse-even-better-errors: 2.3.1
- lines-and-columns: 1.2.4
-
- parse-passwd@1.0.0: {}
-
parseley@0.12.1:
dependencies:
leac: 0.6.0
peberminta: 0.9.0
- path-parse@1.0.7: {}
-
- path-type@4.0.0: {}
-
peberminta@0.9.0: {}
performance-now@2.1.0:
@@ -5440,13 +4706,13 @@ snapshots:
pg-cloudflare@1.3.0:
optional: true
- pg-connection-string@2.10.1: {}
+ pg-connection-string@2.11.0: {}
pg-int8@1.0.1: {}
- pg-pool@3.11.0(pg@8.17.2):
+ pg-pool@3.11.0(pg@8.18.0):
dependencies:
- pg: 8.17.2
+ pg: 8.18.0
pg-protocol@1.11.0: {}
@@ -5458,10 +4724,10 @@ snapshots:
postgres-date: 1.0.7
postgres-interval: 1.2.0
- pg@8.17.2:
+ pg@8.18.0:
dependencies:
- pg-connection-string: 2.10.1
- pg-pool: 3.11.0(pg@8.17.2)
+ pg-connection-string: 2.11.0
+ pg-pool: 3.11.0(pg@8.18.0)
pg-protocol: 1.11.0
pg-types: 2.2.0
pgpass: 1.0.5
@@ -5474,12 +4740,6 @@ snapshots:
picocolors@1.1.1: {}
- picomatch@2.3.1: {}
-
- please-upgrade-node@3.2.0:
- dependencies:
- semver-compare: 1.0.0
-
postcss@8.4.31:
dependencies:
nanoid: 3.3.11
@@ -5561,10 +4821,6 @@ snapshots:
react@19.2.4: {}
- readdirp@3.6.0:
- dependencies:
- picomatch: 2.3.1
-
recharts@3.7.0(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react-is@16.13.1)(react@19.2.4)(redux@5.0.1):
dependencies:
'@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.10)(react@19.2.4)(redux@5.0.1))(react@19.2.4)
@@ -5594,10 +4850,6 @@ snapshots:
regenerator-runtime@0.13.11:
optional: true
- require-directory@2.1.1: {}
-
- require-package-name@2.0.1: {}
-
reselect@5.1.1: {}
resend@6.9.1:
@@ -5605,23 +4857,8 @@ snapshots:
mailparser: 3.9.1
svix: 1.84.1
- resolve-dir@1.0.1:
- dependencies:
- expand-tilde: 2.0.2
- global-modules: 1.0.0
-
- resolve-from@4.0.0: {}
-
- resolve-from@5.0.0: {}
-
resolve-pkg-maps@1.0.0: {}
- resolve@1.22.11:
- dependencies:
- is-core-module: 2.16.1
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
-
rgbcolor@1.0.1:
optional: true
@@ -5635,9 +4872,8 @@ snapshots:
dependencies:
parseley: 0.12.1
- semver-compare@1.0.0: {}
-
- semver@7.7.3: {}
+ semver@7.7.3:
+ optional: true
set-cookie-parser@2.7.2: {}
@@ -5689,8 +4925,6 @@ snapshots:
split2@4.2.0: {}
- sprintf-js@1.0.3: {}
-
ssf@0.11.2:
dependencies:
frac: 1.1.2
@@ -5703,23 +4937,11 @@ snapshots:
'@stablelib/base64': 1.0.1
fast-sha256: 1.3.0
- string-width@4.2.3:
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
-
- strip-ansi@6.0.1:
- dependencies:
- ansi-regex: 5.0.1
-
styled-jsx@5.1.6(react@19.2.4):
dependencies:
client-only: 0.0.1
react: 19.2.4
- supports-preserve-symlinks-flag@1.0.0: {}
-
svg-pathdata@6.0.3:
optional: true
@@ -5743,16 +4965,12 @@ snapshots:
tlds@1.261.0: {}
- to-regex-range@5.0.1:
- dependencies:
- is-number: 7.0.0
-
tslib@2.8.1: {}
tsx@4.21.0:
dependencies:
esbuild: 0.27.2
- get-tsconfig: 4.13.0
+ get-tsconfig: 4.13.1
optionalDependencies:
fsevents: 2.3.3
@@ -5814,20 +5032,10 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- which@1.3.1:
- dependencies:
- isexe: 2.0.0
-
wmf@1.0.2: {}
word@0.3.0: {}
- wrap-ansi@7.0.0:
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
xlsx@0.18.5:
dependencies:
adler-32: 1.3.1
@@ -5840,20 +5048,4 @@ snapshots:
xtend@4.0.2: {}
- y18n@5.0.8: {}
-
- yaml@1.10.2: {}
-
- yargs-parser@20.2.9: {}
-
- yargs@16.2.0:
- dependencies:
- cliui: 7.0.4
- escalade: 3.2.0
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 20.2.9
-
zod@4.3.6: {}
diff --git a/public/fonts/LaranjinhaDisplayPro_Bd.woff2 b/public/fonts/LaranjinhaDisplayPro_Bd.woff2
deleted file mode 100644
index d36e2e4..0000000
Binary files a/public/fonts/LaranjinhaDisplayPro_Bd.woff2 and /dev/null differ
diff --git a/public/fonts/LaranjinhaTextPro_Rg.woff2 b/public/fonts/LaranjinhaTextPro_Rg.woff2
deleted file mode 100644
index 35149a9..0000000
Binary files a/public/fonts/LaranjinhaTextPro_Rg.woff2 and /dev/null differ
diff --git a/public/logo_text.png b/public/logo_text.png
index e1cd3a2..25792b6 100644
Binary files a/public/logo_text.png and b/public/logo_text.png differ
diff --git a/public/logos/creditas.png b/public/logos/creditas.png
new file mode 100644
index 0000000..1a1db83
Binary files /dev/null and b/public/logos/creditas.png differ