mirror of
https://github.com/felipegcoutinho/openmonetis.git
synced 2026-05-09 19:01:47 +00:00
Compare commits
12 Commits
v2.5.1
...
01215b3124
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
01215b3124 | ||
|
|
d70223e7b3 | ||
|
|
6ea064e1bd | ||
|
|
9c0669a152 | ||
|
|
b2d4b29cb5 | ||
|
|
1df2ba787d | ||
|
|
e5d9b66cca | ||
|
|
37edb1b76d | ||
|
|
6288f5f8d4 | ||
|
|
57ac326c2a | ||
|
|
dccc18b1c1 | ||
|
|
0cb01a1d4c |
39
CHANGELOG.md
39
CHANGELOG.md
@@ -5,6 +5,45 @@ Todas as mudanças notáveis deste projeto serão documentadas neste arquivo.
|
|||||||
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/),
|
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/),
|
||||||
e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR/).
|
e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR/).
|
||||||
|
|
||||||
|
## [2.5.3] - 2026-05-05
|
||||||
|
|
||||||
|
Esta versão foca em polimento do diálogo de detalhes do lançamento, refresh visual da linha do tempo de parcelas e limpeza terminológica em torno de contas/cartões inativos. O diálogo de detalhes ganhou logo da conta/cartão, ícone colorido por categoria e avatar do responsável; a barra de progresso de parcelas foi redesenhada num layout horizontal compacto; e o widget "Minhas Contas" do dashboard passou a ocultar automaticamente contas marcadas como inativas. Internamente, o termo "arquivadas" foi padronizado como "inativas" nas tabs de contas e cartões, surgiram constantes compartilhadas para formas de pagamento liquidáveis e um helper `isAccountInactive`, e o seed de mock data ganhou cobertura mais realista (novas pessoas, contas, cartões e assinaturas recorrentes).
|
||||||
|
|
||||||
|
### Adicionado
|
||||||
|
- Logo da conta/cartão, ícone colorido por categoria e avatar do responsável no diálogo de detalhes do lançamento.
|
||||||
|
- Constantes `SETTLEABLE_PAYMENT_METHODS` e `CREDIT_CARD_PAYMENT_METHOD` em `features/transactions/constants.ts`.
|
||||||
|
- Helper `isAccountInactive(status)` em `shared/lib/accounts/constants.ts`, reaproveitado em `account-card.tsx` e `my-accounts-widget.tsx`.
|
||||||
|
|
||||||
|
### Alterado
|
||||||
|
- Widget "Minhas Contas" do dashboard agora oculta contas inativas (filtra antes de aplicar a regra de "não consideradas") e ajusta o empty state quando o usuário só tem contas inativas.
|
||||||
|
- Linha do tempo de parcelas (`InstallmentTimeline`) redesenhada: layout horizontal com barra de progresso, datas de compra e quitação alinhadas nas pontas e contador "N restante(s)" / "Última parcela" abaixo.
|
||||||
|
- Diálogo de detalhes do lançamento: badge de status "Pendente" virou "Em aberto" com variante `info`, "Resumo" virou "Total" e ID do lançamento passou a exibir o UUID completo em fonte monoespaçada (sem truncar).
|
||||||
|
- Tabs em contas e cartões: "Arquivadas/Arquivados" renomeadas para "Inativas/Inativos".
|
||||||
|
- Legenda do calendário envolvida em `Card` para destacar visualmente do conteúdo da página.
|
||||||
|
- Páginas `cards`, `categories`, `inbox`, `notes`, `payers` perderam `items-start` no `<main>` (alinhamento natural à largura total); `calendar` ajustou gap de 3 para 4.
|
||||||
|
- Tabela de lançamentos: extraído IIFE de payment-method dos botões de liquidação com as novas constantes compartilhadas; bloco logo+label da coluna Conta/Cartão deduplicado via reuso de variável JSX; removido `capitalize` redundante do label "Venc.".
|
||||||
|
- Mock data renovado em `scripts/mock-data.ts`: novas pessoas (Mario), novas contas (Itaú Personnalité, Banco Inter), novo cartão Inter Black, e cobertura mais ampla de assinaturas recorrentes (Vivo, Sabesp, Disney+, HBO Max, Amazon Prime, OpenAI, Apple iCloud, Notion, YouTube Premium).
|
||||||
|
|
||||||
|
### Removido
|
||||||
|
- Comentário narrativo `{/* Opções de Antecipação */}` em `transactions-columns.tsx`.
|
||||||
|
- Helper local `shortTransactionId` em `transaction-details-dialog.tsx` (substituído pela exibição do UUID completo).
|
||||||
|
|
||||||
|
## [2.5.2] - 2026-05-04
|
||||||
|
|
||||||
|
Esta versão traz melhorias visuais e de usabilidade em contas, lançamentos, orçamentos, cartões e anotações: novos tipos de conta, ícones no seletor, feedback visual de limite excedido nas progress bars e refinamentos nos ícones de tarefas em anotações.
|
||||||
|
|
||||||
|
### Adicionado
|
||||||
|
- Novos tipos de conta `"Dinheiro"` e `"Outros"` na lista padrão do diálogo de contas (issue #50).
|
||||||
|
- Ícones por tipo de conta no seletor (Conta Corrente, Poupança, Carteira Digital, Investimento, Pré-Pago, Dinheiro, Outros).
|
||||||
|
- Filtro automático: ao selecionar `"Dinheiro"` como forma de pagamento em lançamentos, o select de conta exibe apenas contas do tipo `"Dinheiro"`.
|
||||||
|
- Sinal `+` no valor de transferências recebidas na tabela de lançamentos (mantém cor azul).
|
||||||
|
|
||||||
|
### Alterado
|
||||||
|
- Forma de pagamento de novas transferências entre contas alterada de `"Pix"` para `"Transferência bancária"`.
|
||||||
|
- Progress bar de orçamentos excedidos agora exibe indicador e fundo na cor `destructive`.
|
||||||
|
- Progress bar de cartões com 100% do limite utilizado agora exibe indicador e fundo na cor `destructive`.
|
||||||
|
- Ícone de tarefa não concluída no card e no modal de detalhes de anotações substituído por `RiSubtractLine` (locais sem interação de marcação).
|
||||||
|
|
||||||
## [2.5.1] - 2026-05-04
|
## [2.5.1] - 2026-05-04
|
||||||
|
|
||||||
Versão de correção pontual focada na exibição do indicador de anexo nas tabelas de lançamentos da fatura do cartão. Em `/cards/[cardId]/invoice`, lançamentos com anexos não mostravam o ícone porque o fetcher dedicado da fatura não calculava o flag `hasAttachments`. A primeira tentativa de adicionar o EXISTS via `extras` na query relacional gerou SQL inválido (Drizzle re-aliasava `transactionAttachments.transactionId` para o alias da tabela externa). A correção definitiva troca o fetcher pela função compartilhada `fetchTransactionsWithRelations` de `features/transactions`, que já implementa o EXISTS corretamente via `select`.
|
Versão de correção pontual focada na exibição do indicador de anexo nas tabelas de lançamentos da fatura do cartão. Em `/cards/[cardId]/invoice`, lançamentos com anexos não mostravam o ícone porque o fetcher dedicado da fatura não calculava o flag `hasAttachments`. A primeira tentativa de adicionar o EXISTS via `extras` na query relacional gerou SQL inválido (Drizzle re-aliasava `transactionAttachments.transactionId` para o alias da tabela externa). A correção definitiva troca o fetcher pela função compartilhada `fetchTransactionsWithRelations` de `features/transactions`, que já implementa o EXISTS corretamente via `select`.
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
> **⚠️ Não há versão online hospedada.** Você precisa clonar o repositório e rodar localmente ou no seu próprio servidor.
|
> **⚠️ Não há versão online hospedada.** Você precisa clonar o repositório e rodar localmente ou no seu próprio servidor.
|
||||||
|
|
||||||
[](CHANGELOG.md)
|
[](CHANGELOG.md)
|
||||||
[](https://nextjs.org/)
|
[](https://nextjs.org/)
|
||||||
[](https://www.typescriptlang.org/)
|
[](https://www.typescriptlang.org/)
|
||||||
[](https://www.postgresql.org/)
|
[](https://www.postgresql.org/)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://biomejs.dev/schemas/2.4.13/schema.json",
|
"$schema": "https://biomejs.dev/schemas/2.4.14/schema.json",
|
||||||
"vcs": {
|
"vcs": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"clientKind": "git",
|
"clientKind": "git",
|
||||||
|
|||||||
18
package.json
18
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "openmonetis",
|
"name": "openmonetis",
|
||||||
"version": "2.5.1",
|
"version": "2.5.3",
|
||||||
"private": true,
|
"private": true,
|
||||||
"packageManager": "pnpm@10.33.0",
|
"packageManager": "pnpm@10.33.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -33,9 +33,9 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ai-sdk/anthropic": "^3.0.74",
|
"@ai-sdk/anthropic": "^3.0.74",
|
||||||
"@ai-sdk/google": "^3.0.67",
|
"@ai-sdk/google": "^3.0.67",
|
||||||
"@ai-sdk/openai": "^3.0.57",
|
"@ai-sdk/openai": "^3.0.60",
|
||||||
"@aws-sdk/client-s3": "^3.1040.0",
|
"@aws-sdk/client-s3": "^3.1042.0",
|
||||||
"@aws-sdk/s3-request-presigner": "^3.1040.0",
|
"@aws-sdk/s3-request-presigner": "^3.1042.0",
|
||||||
"@better-auth/passkey": "^1.6.9",
|
"@better-auth/passkey": "^1.6.9",
|
||||||
"@dnd-kit/core": "^6.3.1",
|
"@dnd-kit/core": "^6.3.1",
|
||||||
"@dnd-kit/sortable": "^10.0.0",
|
"@dnd-kit/sortable": "^10.0.0",
|
||||||
@@ -63,10 +63,10 @@
|
|||||||
"@radix-ui/react-toggle-group": "1.1.11",
|
"@radix-ui/react-toggle-group": "1.1.11",
|
||||||
"@radix-ui/react-tooltip": "1.2.8",
|
"@radix-ui/react-tooltip": "1.2.8",
|
||||||
"@remixicon/react": "4.9.0",
|
"@remixicon/react": "4.9.0",
|
||||||
"@tanstack/react-query": "^5.100.7",
|
"@tanstack/react-query": "^5.100.9",
|
||||||
"@tanstack/react-table": "8.21.3",
|
"@tanstack/react-table": "8.21.3",
|
||||||
"@tanstack/react-virtual": "^3.13.24",
|
"@tanstack/react-virtual": "^3.13.24",
|
||||||
"ai": "^6.0.173",
|
"ai": "^6.0.175",
|
||||||
"better-auth": "1.6.9",
|
"better-auth": "1.6.9",
|
||||||
"canvas-confetti": "^1.9.4",
|
"canvas-confetti": "^1.9.4",
|
||||||
"class-variance-authority": "0.7.1",
|
"class-variance-authority": "0.7.1",
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
"sonner": "2.0.7",
|
"sonner": "2.0.7",
|
||||||
"tailwind-merge": "3.5.0",
|
"tailwind-merge": "3.5.0",
|
||||||
"vaul": "1.1.2",
|
"vaul": "1.1.2",
|
||||||
"zod": "4.4.1"
|
"zod": "4.4.3"
|
||||||
},
|
},
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
"overrides": {
|
"overrides": {
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.4.13",
|
"@biomejs/biome": "2.4.14",
|
||||||
"@tailwindcss/postcss": "4.2.4",
|
"@tailwindcss/postcss": "4.2.4",
|
||||||
"@types/canvas-confetti": "^1.9.0",
|
"@types/canvas-confetti": "^1.9.0",
|
||||||
"@types/node": "25.6.0",
|
"@types/node": "25.6.0",
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
"@types/react-dom": "19.2.3",
|
"@types/react-dom": "19.2.3",
|
||||||
"dotenv": "^17.4.2",
|
"dotenv": "^17.4.2",
|
||||||
"drizzle-kit": "0.31.10",
|
"drizzle-kit": "0.31.10",
|
||||||
"knip": "^6.10.0",
|
"knip": "^6.11.0",
|
||||||
"tailwindcss": "4.2.4",
|
"tailwindcss": "4.2.4",
|
||||||
"tsx": "4.21.0",
|
"tsx": "4.21.0",
|
||||||
"typescript": "6.0.3"
|
"typescript": "6.0.3"
|
||||||
|
|||||||
447
pnpm-lock.yaml
generated
447
pnpm-lock.yaml
generated
@@ -13,22 +13,22 @@ importers:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@ai-sdk/anthropic':
|
'@ai-sdk/anthropic':
|
||||||
specifier: ^3.0.74
|
specifier: ^3.0.74
|
||||||
version: 3.0.74(zod@4.4.1)
|
version: 3.0.74(zod@4.4.3)
|
||||||
'@ai-sdk/google':
|
'@ai-sdk/google':
|
||||||
specifier: ^3.0.67
|
specifier: ^3.0.67
|
||||||
version: 3.0.67(zod@4.4.1)
|
version: 3.0.67(zod@4.4.3)
|
||||||
'@ai-sdk/openai':
|
'@ai-sdk/openai':
|
||||||
specifier: ^3.0.57
|
specifier: ^3.0.60
|
||||||
version: 3.0.57(zod@4.4.1)
|
version: 3.0.60(zod@4.4.3)
|
||||||
'@aws-sdk/client-s3':
|
'@aws-sdk/client-s3':
|
||||||
specifier: ^3.1040.0
|
specifier: ^3.1042.0
|
||||||
version: 3.1040.0
|
version: 3.1042.0
|
||||||
'@aws-sdk/s3-request-presigner':
|
'@aws-sdk/s3-request-presigner':
|
||||||
specifier: ^3.1040.0
|
specifier: ^3.1042.0
|
||||||
version: 3.1040.0
|
version: 3.1042.0
|
||||||
'@better-auth/passkey':
|
'@better-auth/passkey':
|
||||||
specifier: ^1.6.9
|
specifier: ^1.6.9
|
||||||
version: 1.6.9(22762a9b26d2e46f2ba0c21d31406330)
|
version: 1.6.9(60d949d2bbdb8e45901f3be9be360abb)
|
||||||
'@dnd-kit/core':
|
'@dnd-kit/core':
|
||||||
specifier: ^6.3.1
|
specifier: ^6.3.1
|
||||||
version: 6.3.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
version: 6.3.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
@@ -40,7 +40,7 @@ importers:
|
|||||||
version: 3.2.2(react@19.2.5)
|
version: 3.2.2(react@19.2.5)
|
||||||
'@openrouter/ai-sdk-provider':
|
'@openrouter/ai-sdk-provider':
|
||||||
specifier: ^2.9.0
|
specifier: ^2.9.0
|
||||||
version: 2.9.0(ai@6.0.173(zod@4.4.1))(zod@4.4.1)
|
version: 2.9.0(ai@6.0.175(zod@4.4.3))(zod@4.4.3)
|
||||||
'@radix-ui/react-alert-dialog':
|
'@radix-ui/react-alert-dialog':
|
||||||
specifier: 1.1.15
|
specifier: 1.1.15
|
||||||
version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
@@ -108,8 +108,8 @@ importers:
|
|||||||
specifier: 4.9.0
|
specifier: 4.9.0
|
||||||
version: 4.9.0(react@19.2.5)
|
version: 4.9.0(react@19.2.5)
|
||||||
'@tanstack/react-query':
|
'@tanstack/react-query':
|
||||||
specifier: ^5.100.7
|
specifier: ^5.100.9
|
||||||
version: 5.100.7(react@19.2.5)
|
version: 5.100.9(react@19.2.5)
|
||||||
'@tanstack/react-table':
|
'@tanstack/react-table':
|
||||||
specifier: 8.21.3
|
specifier: 8.21.3
|
||||||
version: 8.21.3(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
version: 8.21.3(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
@@ -117,8 +117,8 @@ importers:
|
|||||||
specifier: ^3.13.24
|
specifier: ^3.13.24
|
||||||
version: 3.13.24(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
version: 3.13.24(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
ai:
|
ai:
|
||||||
specifier: ^6.0.173
|
specifier: ^6.0.175
|
||||||
version: 6.0.173(zod@4.4.1)
|
version: 6.0.175(zod@4.4.3)
|
||||||
better-auth:
|
better-auth:
|
||||||
specifier: 1.6.9
|
specifier: 1.6.9
|
||||||
version: 1.6.9(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)))(mongodb@7.1.0)(mysql2@3.15.3)(next@16.2.4(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.20.0)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
version: 1.6.9(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)))(mongodb@7.1.0)(mysql2@3.15.3)(next@16.2.4(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.20.0)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
@@ -186,12 +186,12 @@ importers:
|
|||||||
specifier: 1.1.2
|
specifier: 1.1.2
|
||||||
version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
zod:
|
zod:
|
||||||
specifier: 4.4.1
|
specifier: 4.4.3
|
||||||
version: 4.4.1
|
version: 4.4.3
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@biomejs/biome':
|
'@biomejs/biome':
|
||||||
specifier: 2.4.13
|
specifier: 2.4.14
|
||||||
version: 2.4.13
|
version: 2.4.14
|
||||||
'@tailwindcss/postcss':
|
'@tailwindcss/postcss':
|
||||||
specifier: 4.2.4
|
specifier: 4.2.4
|
||||||
version: 4.2.4
|
version: 4.2.4
|
||||||
@@ -217,8 +217,8 @@ importers:
|
|||||||
specifier: 0.31.10
|
specifier: 0.31.10
|
||||||
version: 0.31.10
|
version: 0.31.10
|
||||||
knip:
|
knip:
|
||||||
specifier: ^6.10.0
|
specifier: ^6.11.0
|
||||||
version: 6.10.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
|
version: 6.11.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
|
||||||
tailwindcss:
|
tailwindcss:
|
||||||
specifier: 4.2.4
|
specifier: 4.2.4
|
||||||
version: 4.2.4
|
version: 4.2.4
|
||||||
@@ -237,8 +237,8 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
zod: ^3.25.76 || ^4.1.8
|
zod: ^3.25.76 || ^4.1.8
|
||||||
|
|
||||||
'@ai-sdk/gateway@3.0.108':
|
'@ai-sdk/gateway@3.0.110':
|
||||||
resolution: {integrity: sha512-hOtwiM6E/m1PgqHnx0/grvh0P/kjENHsN222OL5iYPQwfWmcX+26oFXM7HGL/UzonB+RORMkYAbskgAiANVwCQ==}
|
resolution: {integrity: sha512-sbv8+1L9/BRKydn8dMNwoMQKupA4iLJ9N+yvxgW6wMQ/94UepDf3FeYWMj/dLdzolAHZ6izRUP4s5WqQkmJ2Zg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
zod: ^3.25.76 || ^4.1.8
|
zod: ^3.25.76 || ^4.1.8
|
||||||
@@ -249,8 +249,8 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
zod: ^3.25.76 || ^4.1.8
|
zod: ^3.25.76 || ^4.1.8
|
||||||
|
|
||||||
'@ai-sdk/openai@3.0.57':
|
'@ai-sdk/openai@3.0.60':
|
||||||
resolution: {integrity: sha512-2kfzDQYYz0m/yRF4bre9s2j8wNiPdhfHzYZc3dxAOMlprvGmRZOvoZBx8chlJIFwL7xR2EFkvLagBvo2llCXPw==}
|
resolution: {integrity: sha512-vZKqbDSCF1T65gDMG2ILJ2NAEpG45U2VtvEve1Fv/WRLu2i5TPUqxjlGKm+5a7Dd57Yr6CGePxrJhsQJC8LJ3A==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
zod: ^3.25.76 || ^4.1.8
|
zod: ^3.25.76 || ^4.1.8
|
||||||
@@ -292,48 +292,48 @@ packages:
|
|||||||
'@aws-crypto/util@5.2.0':
|
'@aws-crypto/util@5.2.0':
|
||||||
resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
|
resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
|
||||||
|
|
||||||
'@aws-sdk/client-s3@3.1040.0':
|
'@aws-sdk/client-s3@3.1042.0':
|
||||||
resolution: {integrity: sha512-Ldfby1xDrlZwNY2NxP9pwdVrf8sqHbGBKP1UkoG/oWcePGlGhjY8iVwy8hRy9f1EQfHVFWIFunwHaPQxhYTnWQ==}
|
resolution: {integrity: sha512-z3Ibstr7ckDT10dz/nkk4+93LitrrO49Oq563/JoFHt30ZNodPBCfSxysKcelLyi/lNVF1MZrhZZfikUAG3iNQ==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/core@3.974.7':
|
'@aws-sdk/core@3.974.8':
|
||||||
resolution: {integrity: sha512-YhRC90ofz5oolTJZlA8voU/oUrCB2azi8Usx51k8hhB5LpWbYQMMXKUqSqkoL0Cru+RQJgWTHpAfEDDIwfUhJw==}
|
resolution: {integrity: sha512-njR2qoG6ZuB0kvAS2FyICsFZJ6gmCcf2X/7JcD14sUvGDm26wiZ5BrA6LOiUxKFEF+IVe7kdroxyE00YlkiYsw==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/crc64-nvme@3.972.7':
|
'@aws-sdk/crc64-nvme@3.972.7':
|
||||||
resolution: {integrity: sha512-QUagVVBbC8gODCF6e1aV0mE2TXWB9Opz4k8EJFdNrujUVQm5R4AjJa1mpOqzwOuROBzqJU9zawzig7M96L8Ejg==}
|
resolution: {integrity: sha512-QUagVVBbC8gODCF6e1aV0mE2TXWB9Opz4k8EJFdNrujUVQm5R4AjJa1mpOqzwOuROBzqJU9zawzig7M96L8Ejg==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-env@3.972.33':
|
'@aws-sdk/credential-provider-env@3.972.34':
|
||||||
resolution: {integrity: sha512-bJV7eViSJV6GSuuN+VIdNVPdwPsNSf75BiC2v5alPrjR/OCcqgKwSZInKbDFz9mNeizldsyf67jt6YSIiv53Cw==}
|
resolution: {integrity: sha512-XT0jtf8Fw9JE6ppsQeoNnZRiG+jqRixMT1v1ZR17G60UvVdsQmTG8nbEyHuEPfMxDXEhfdARaM/XiEhca4lGHQ==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-http@3.972.35':
|
'@aws-sdk/credential-provider-http@3.972.36':
|
||||||
resolution: {integrity: sha512-x/BQGEIdq0oI+4WxLjKmnQvT7CnF9r8ezdGt7wXwxb7ckHXQz0Zmgxt8v3Ne0JaT3R5YefmuybHX6E8EnsDXyA==}
|
resolution: {integrity: sha512-DPoGWfy7J7RKxvbf5kOKIGQkD2ek3dbKgzKIGrnLuvZBz5myU+Im/H6pmc14QcnFbqHMqxvtWSgRDSJW3qXLQg==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-ini@3.972.37':
|
'@aws-sdk/credential-provider-ini@3.972.38':
|
||||||
resolution: {integrity: sha512-eUTpmWfd/BKsq9medhCRcu+GRAhFP2Zrn7/2jKDHHOOjCkhrMoTp/t4cEthqFoG7gE0VGp5wUxrXTdvBCmSmJg==}
|
resolution: {integrity: sha512-oDzUBu2MGJFgoar05sPMCwSrhw44ASyccrHzj66vO69OZqi7I6hZZxXfuPLC8OCzW7C+sU+bI73XHij41yekgQ==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-login@3.972.37':
|
'@aws-sdk/credential-provider-login@3.972.38':
|
||||||
resolution: {integrity: sha512-Ty68y8ISSC+g5Q3D0K8uAaoINwvfaOslnNpsF/LgVUxyosYXHawcK2yV4HLXDVugiTTYLQfJfcw0ce5meAGkKw==}
|
resolution: {integrity: sha512-g1NosS8qe4OF++G2UFCM5ovSkgipC7YYor5KCWatG0UoMSO5YFj9C8muePlyVmOBV/WTI16Jo3/s1NUo/o1Bww==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-node@3.972.38':
|
'@aws-sdk/credential-provider-node@3.972.39':
|
||||||
resolution: {integrity: sha512-BQ9XYnBDVxR2HuV5huXYQYF/PZMTsY+EnwfGnCU2cA8Zw63XpkOtPY8WqiMIZMQCrKPQQEiFURS/o9CIolRLqg==}
|
resolution: {integrity: sha512-HEswDQyxUtadoZ/bJsPPENHg7R0Lzym5LuMksJeHvqhCOpP+rtkDLKI4/ZChH4w3cf5kG8n6bZuI8PzajoiqMg==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-process@3.972.33':
|
'@aws-sdk/credential-provider-process@3.972.34':
|
||||||
resolution: {integrity: sha512-yfjGksI9WQbdMObb0VeLXqzTLI+a0qXLJT9gCDiv0+X/xjPpI3mTz6a5FibrhpuEKIe0gSgvs3MaoFZy5cx4WA==}
|
resolution: {integrity: sha512-T3IFs4EVmVi1dVN5RciFnklCANSzvrQd/VuHY9ThHSQmYkTogjcGkoJEr+oNUPQZnso52183088NqysMPji1/Q==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-sso@3.972.37':
|
'@aws-sdk/credential-provider-sso@3.972.38':
|
||||||
resolution: {integrity: sha512-fpwE+20ntpp3i9Xb9vUuQfXLDKYHH+5I2V+ZG96SX1nBzrruhy10RXDgmN7t1etOz3c55stlA3TeQASUA451NQ==}
|
resolution: {integrity: sha512-5ZxG+t0+3Q3QPh8KEjX6syskhgNf7I0MN7oGioTf6Lm1NTjfP7sIcYGNsthXC2qR8vcD3edNZwCr2ovfSSWuRA==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-web-identity@3.972.37':
|
'@aws-sdk/credential-provider-web-identity@3.972.38':
|
||||||
resolution: {integrity: sha512-aryawqyebf+3WhAFNHfF62rekFpYtVcVN7dQ89qnAWsa4n5hJst8qBG6gXC24WHtW7Nnhkf9ScYnjwo0Brn3bw==}
|
resolution: {integrity: sha512-lYHFF30DGI20jZcYX8cm6Ns0V7f1dDN6g/MBDLTyD/5iw+bXs3yBr2iAiHDkx4RFU5JgsnZvCHYKiRVPRdmOgw==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/middleware-bucket-endpoint@3.972.10':
|
'@aws-sdk/middleware-bucket-endpoint@3.972.10':
|
||||||
@@ -344,8 +344,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-2Yn0f1Qiq/DjxYR3wfI3LokXnjOhFM7Ssn4LTdFDIxRMCE6I32MAsVnhPX1cUZsuVA9tiZtwwhlSLAtFGxAZlQ==}
|
resolution: {integrity: sha512-2Yn0f1Qiq/DjxYR3wfI3LokXnjOhFM7Ssn4LTdFDIxRMCE6I32MAsVnhPX1cUZsuVA9tiZtwwhlSLAtFGxAZlQ==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/middleware-flexible-checksums@3.974.15':
|
'@aws-sdk/middleware-flexible-checksums@3.974.16':
|
||||||
resolution: {integrity: sha512-j4Zp7rA1HfhDTteICnx/tPax4N/v5wmytgguXExUGyEwQ8Ug4EBA4kjp9puFAN1UZoBVpxoiXMiuTFvjaHjeEw==}
|
resolution: {integrity: sha512-6ru8doI0/XzszqLIPXf0E/V7HhAw1Pu94010XCKYtBUfD0LxF0BuOzrUf8OQGR6j2o6wgKTHUniOmndQycHwCA==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/middleware-host-header@3.972.10':
|
'@aws-sdk/middleware-host-header@3.972.10':
|
||||||
@@ -364,36 +364,36 @@ packages:
|
|||||||
resolution: {integrity: sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==}
|
resolution: {integrity: sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/middleware-sdk-s3@3.972.36':
|
'@aws-sdk/middleware-sdk-s3@3.972.37':
|
||||||
resolution: {integrity: sha512-YhPix+0x/MdQrb1Ug1GDKeS5fqylIy+naz800asX8II4jqfTk2KY2KhmmYCwZcky8YWtRQQwWCGdoqeAnip8Uw==}
|
resolution: {integrity: sha512-Km7M+i8DrLArVzrid1gfxeGhYHBd3uxvE77g0s5a52zPSVosxzQBnJ0gwWb6NIp/DOk8gsBMhi7V+cpJG0ndTA==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/middleware-ssec@3.972.10':
|
'@aws-sdk/middleware-ssec@3.972.10':
|
||||||
resolution: {integrity: sha512-Gli9A0u8EVVb+5bFDGS/QbSVg28w/wpEidg1ggVcSj65BDTdGR6punsOcVjqdiu1i42WHWo51MCvARPIIz9juw==}
|
resolution: {integrity: sha512-Gli9A0u8EVVb+5bFDGS/QbSVg28w/wpEidg1ggVcSj65BDTdGR6punsOcVjqdiu1i42WHWo51MCvARPIIz9juw==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/middleware-user-agent@3.972.37':
|
'@aws-sdk/middleware-user-agent@3.972.38':
|
||||||
resolution: {integrity: sha512-N1oNpdiLoVAWYD3WFBnUi3LlfoDA06ZHo4ozyjbsJNLvILzvt//0CnR8N+CZ0NWeYgVB/5V59ivixHCWCx2ALw==}
|
resolution: {integrity: sha512-iz+B29TXcAZsJpwB+AwG/TTGA5l/VnmMZ2UxtiySOZjI6gCdmviXPwdgzcmuazMy16rXoPY4mYCGe7zdNKfx5A==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/nested-clients@3.997.5':
|
'@aws-sdk/nested-clients@3.997.6':
|
||||||
resolution: {integrity: sha512-jGFr6DxtcMTmzOkG/a0jCZYv4BBDmeNYVeO+/memSoDkYCJu4Y58xviYmzwJfYyIVSts+X/BVjJm1uGBnwHEMg==}
|
resolution: {integrity: sha512-WBDnqatJl+kGObpfmfSxqnXeYTu3Me8wx8WCtvoxX3pfWrrTv8I4WTMSSs7PZqcRcVh8WeUKMgGFjMG+52SR1w==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/region-config-resolver@3.972.13':
|
'@aws-sdk/region-config-resolver@3.972.13':
|
||||||
resolution: {integrity: sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==}
|
resolution: {integrity: sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/s3-request-presigner@3.1040.0':
|
'@aws-sdk/s3-request-presigner@3.1042.0':
|
||||||
resolution: {integrity: sha512-AmesZGG/B5sDIiWahyY11fOkXSsuHc7LciE88YFURehMVSdEORo2Vzz1d2kBgmJG9oar5Vmmwf9X/w7mqb7ytg==}
|
resolution: {integrity: sha512-yWgXWDg4W0Vk1xlY4M7puM07ce6PPBS4tBytNOpu57k+wY0puXgxkGN0+k/dUAA4sR4Th6+wDps50gBBLj48Ew==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/signature-v4-multi-region@3.996.24':
|
'@aws-sdk/signature-v4-multi-region@3.996.25':
|
||||||
resolution: {integrity: sha512-amP7tLikppN940wbBFISYqiuzVmpzMS9U3mcgtmVLjX4fdWI/SNCvrXv6ZxfVzTT4cT0rPKOLhFah2xLwzREWw==}
|
resolution: {integrity: sha512-+CMIt3e1VzlklAECmG+DtP1sV8iKq25FuA0OKpnJ4KA0kxUtd7CgClY7/RU6VzJBQwbN4EJ9Ue6plvqx1qGadw==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/token-providers@3.1039.0':
|
'@aws-sdk/token-providers@3.1041.0':
|
||||||
resolution: {integrity: sha512-NMSFL2HwkAOoCeLCQiqoOq5pT3vVbSjww2QZTuYgYknVwhhv125PSDzZIcL5EYnlxuPWjEOdauZK+FspkZDVdw==}
|
resolution: {integrity: sha512-Th7kPI6YPtvJUcdznooXJMy+9rQWjmEF81LxaJssngBzuysK4a/x+l8kjm1zb7nYsUPbndnBdUnwng/3PLvtGw==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
|
|
||||||
'@aws-sdk/types@3.973.8':
|
'@aws-sdk/types@3.973.8':
|
||||||
@@ -419,8 +419,8 @@ packages:
|
|||||||
'@aws-sdk/util-user-agent-browser@3.972.10':
|
'@aws-sdk/util-user-agent-browser@3.972.10':
|
||||||
resolution: {integrity: sha512-FAzqXvfEssGdSIz8ejatan0bOdx1qefBWKF/gWmVBXIP1HkS7v/wjjaqrAGGKvyihrXTXW00/2/1nTJtxpXz7g==}
|
resolution: {integrity: sha512-FAzqXvfEssGdSIz8ejatan0bOdx1qefBWKF/gWmVBXIP1HkS7v/wjjaqrAGGKvyihrXTXW00/2/1nTJtxpXz7g==}
|
||||||
|
|
||||||
'@aws-sdk/util-user-agent-node@3.973.23':
|
'@aws-sdk/util-user-agent-node@3.973.24':
|
||||||
resolution: {integrity: sha512-gGwq8L2Euw0aNG6Ey4EktiAo3fSCVoDy1CaBIthd+oeaKHPXUrNaApMewQ6La5Hv0lcznOtECZaNvYyc5LXXfA==}
|
resolution: {integrity: sha512-ZWwlkjcIp7cEL8ZfTpTAPNkwx25p7xol0xlKoWVVf22+nsjwmLcHYtTPjIV1cSpmB/b6DaK4cb1fSkvCXHgRdw==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
aws-crt: '>=1.0.0'
|
aws-crt: '>=1.0.0'
|
||||||
@@ -541,59 +541,59 @@ packages:
|
|||||||
'@better-fetch/fetch@1.1.21':
|
'@better-fetch/fetch@1.1.21':
|
||||||
resolution: {integrity: sha512-/ImESw0sskqlVR94jB+5+Pxjf+xBwDZF/N5+y2/q4EqD7IARUTSpPfIo8uf39SYpCxyOCtbyYpUrZ3F/k0zT4A==}
|
resolution: {integrity: sha512-/ImESw0sskqlVR94jB+5+Pxjf+xBwDZF/N5+y2/q4EqD7IARUTSpPfIo8uf39SYpCxyOCtbyYpUrZ3F/k0zT4A==}
|
||||||
|
|
||||||
'@biomejs/biome@2.4.13':
|
'@biomejs/biome@2.4.14':
|
||||||
resolution: {integrity: sha512-gLXOwkOBBg0tr7bDsqlkIh4uFeKuMjxvqsrb1Tukww1iDmHcfr4Uu8MoQxp0Rcte+69+osRNWXwHsu/zxT6XqA==}
|
resolution: {integrity: sha512-TmAvxOEgrpLypzVGJ8FulIZnlyA9TxrO1hyqYrCz9r+bwma9xXxuLA5IuYnj55XQneFx460KjRbx6SWGLkg3bQ==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
'@biomejs/cli-darwin-arm64@2.4.13':
|
'@biomejs/cli-darwin-arm64@2.4.14':
|
||||||
resolution: {integrity: sha512-2KImO1jhNFBa2oWConyr0x6flxbQpGKv6902uGXpYM62Xyem8U80j441SyUJ8KyngsmKbQjeIv1q2CQfDkNnYg==}
|
resolution: {integrity: sha512-XvgoE9XOawUOQPdmvs4J7wPhi/DLwSCGks3AlPJDmh34O0awRTqCED1HRcRDdpf1Zrp4us4MGOOdIxNpbqNF5Q==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@biomejs/cli-darwin-x64@2.4.13':
|
'@biomejs/cli-darwin-x64@2.4.14':
|
||||||
resolution: {integrity: sha512-BKrJklbaFN4p1Ts4kPBczo+PkbsHQg57kmJ+vON9u2t6uN5okYHaSr7h/MutPCWQgg2lglaWoSmm+zhYW+oOkg==}
|
resolution: {integrity: sha512-jE7hKBCFhOx3uUh+ZkWBfOHxAcILPfhFplNkuID/eZeSTLHzfZzoZxW8fbqY9xXRnPi7jGNAf1iPVR+0yWsM/Q==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@biomejs/cli-linux-arm64-musl@2.4.13':
|
'@biomejs/cli-linux-arm64-musl@2.4.14':
|
||||||
resolution: {integrity: sha512-U5MsuBQW25dXaYtqWWSPM3P96H6Y+fHuja3TQpMNnylocHW0tEbtFTDlUj6oM+YJLntvEkQy4grBvQNUD4+RCg==}
|
resolution: {integrity: sha512-/z+6gqAqqUQTHazwStxSXKHg9b8UvqBmDFRp+c4wYbq2KXhELQDon9EoC9RpmQ8JWkqQx/lIUy/cs+MhzDZp6A==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
libc: [musl]
|
||||||
|
|
||||||
'@biomejs/cli-linux-arm64@2.4.13':
|
'@biomejs/cli-linux-arm64@2.4.14':
|
||||||
resolution: {integrity: sha512-NzkUDSqfvMBrPplKgVr3aXLHZ2NEELvvF4vZxXulEylKWIGqlvNEcwUcj9OLrn75TD3lJ/GIqCVlBwd1MZCuYQ==}
|
resolution: {integrity: sha512-2TELhZnW5RSLL063l9rc5xLpA0ZIw0Ccwy/0q384rvNAgFw3yI76bd59547yxowdQr5MNPET/xDLrLuvgSeeWQ==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
libc: [glibc]
|
||||||
|
|
||||||
'@biomejs/cli-linux-x64-musl@2.4.13':
|
'@biomejs/cli-linux-x64-musl@2.4.14':
|
||||||
resolution: {integrity: sha512-Z601MienRgTBDza/+u2CH3RSrWoXo9rtr8NK6A4KJzqGgfxx+H3VlyLgTJ4sRo40T3pIsqpTmiOQEvYzQvBRvQ==}
|
resolution: {integrity: sha512-R6BWgJdQOwW9ulJatuTVrQkjnODjqHZkKNOqb1sz++3Noe5LYd0i3PchnOBUCYAPHoPWHhjJqbdZlHEu0hpjdA==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
libc: [musl]
|
||||||
|
|
||||||
'@biomejs/cli-linux-x64@2.4.13':
|
'@biomejs/cli-linux-x64@2.4.14':
|
||||||
resolution: {integrity: sha512-Az3ZZedYRBo9EQzNnD9SxFcR1G5QsGo6VEc2hIyVPZ1rdKwee/7E9oeBBZFpE8Z44ekxsDQBqbiWGW5ShOhUSQ==}
|
resolution: {integrity: sha512-zHrlQZDBDUz4OLAraYpWKcnLS6HOewBFWYOzY91d1ZjdqZwibOyb6BEu6WuWLugyo0P3riCmsbV9UqV1cSXwQg==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
libc: [glibc]
|
||||||
|
|
||||||
'@biomejs/cli-win32-arm64@2.4.13':
|
'@biomejs/cli-win32-arm64@2.4.14':
|
||||||
resolution: {integrity: sha512-Px9PS2B5/Q183bUwy/5VHqp3J2lzdOCeVGzMpphYfl8oSa7VDCqenBdqWpy6DCy/en4Rbf/Y1RieZF6dJPcc9A==}
|
resolution: {integrity: sha512-M3EH5hqOI/F/FUA2u4xcLoUgmxd218mvuj/6JL7Hv2toQvr2/AdOvKSpGkoRuWFCtQPVa+ZqkEV3Q5xBA9+XSA==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@biomejs/cli-win32-x64@2.4.13':
|
'@biomejs/cli-win32-x64@2.4.14':
|
||||||
resolution: {integrity: sha512-tTcMkXyBrmHi9BfrD2VNHs/5rYIUKETqsBlYOvSAABwBkJhSDVb5e7wPukftsQbO3WzQkXe6kaztC6WtUOXSoQ==}
|
resolution: {integrity: sha512-WL0EG5qE+EAKomGXbf2g6VnSKJhTL3tXC0QRzWRwA5VpjxNYa6H4P7ZWfymbGE4IhZZQi1KXQ2R0YjwInmz2fA==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
@@ -2602,6 +2602,7 @@ packages:
|
|||||||
'@smithy/util-retry@4.3.6':
|
'@smithy/util-retry@4.3.6':
|
||||||
resolution: {integrity: sha512-p6/FO1n2KxMeQyna067i0uJ6TSbb165ZhnRtCpWh4Foxqbfc6oW+XITaL8QkFJj3KFnDe2URt4gOhgU06EP9ew==}
|
resolution: {integrity: sha512-p6/FO1n2KxMeQyna067i0uJ6TSbb165ZhnRtCpWh4Foxqbfc6oW+XITaL8QkFJj3KFnDe2URt4gOhgU06EP9ew==}
|
||||||
engines: {node: '>=18.0.0'}
|
engines: {node: '>=18.0.0'}
|
||||||
|
deprecated: '@smithy/util-retry v4.3.6 contains a bug in Adaptive Retry, see https://github.com/smithy-lang/smithy-typescript/issues/1993. Upgrade to 4.3.7+'
|
||||||
|
|
||||||
'@smithy/util-stream@4.5.25':
|
'@smithy/util-stream@4.5.25':
|
||||||
resolution: {integrity: sha512-/PFpG4k8Ze8Ei+mMKj3oiPICYekthuzePZMgZbCqMiXIHHf4n2aZ4Ps0aSRShycFTGuj/J6XldmC0x0DwednIA==}
|
resolution: {integrity: sha512-/PFpG4k8Ze8Ei+mMKj3oiPICYekthuzePZMgZbCqMiXIHHf4n2aZ4Ps0aSRShycFTGuj/J6XldmC0x0DwednIA==}
|
||||||
@@ -2735,11 +2736,11 @@ packages:
|
|||||||
'@tailwindcss/postcss@4.2.4':
|
'@tailwindcss/postcss@4.2.4':
|
||||||
resolution: {integrity: sha512-wgAVj6nUWAolAu8YFvzT2cTBIElWHkjZwFYovF+xsqKsW2ADxM/X2opxj5NsF/qVccAOjRNe8X2IdPzMsWyHTg==}
|
resolution: {integrity: sha512-wgAVj6nUWAolAu8YFvzT2cTBIElWHkjZwFYovF+xsqKsW2ADxM/X2opxj5NsF/qVccAOjRNe8X2IdPzMsWyHTg==}
|
||||||
|
|
||||||
'@tanstack/query-core@5.100.7':
|
'@tanstack/query-core@5.100.9':
|
||||||
resolution: {integrity: sha512-5R7i6ENJLhVeeJrrUz7jKBXUXv/BJrxf9FQJSkR13bPrb3zOcE8A0Z0PxYCcsKPOsiIlTibrBL/zZbtUO1TFyQ==}
|
resolution: {integrity: sha512-SJSFw1S8+kQ0+knv/XGfrbocWoAlT7vDKsSImtLx3ZPQmEcR46hkDjLSvynSy25N8Ms4tIEini1FuBd5k7IscQ==}
|
||||||
|
|
||||||
'@tanstack/react-query@5.100.7':
|
'@tanstack/react-query@5.100.9':
|
||||||
resolution: {integrity: sha512-LoISYWz8dOOuQbeIctF8K6yi42TWtR1WPGpwGuRUpF3u79JVVIg/PVR0MQdIA0VSHqD/ydf/b7PhKTkg3I4fLQ==}
|
resolution: {integrity: sha512-Oa44XkaI3kCNN6ME0KByU3xT3SEUNOMfZpHxL6+wFoTm+OeUFYHKdeYVe0aOXlRDm/f15sgLwEt2HDorIdW8+A==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^18 || ^19
|
react: ^18 || ^19
|
||||||
|
|
||||||
@@ -2835,8 +2836,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==}
|
resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==}
|
||||||
engines: {node: '>= 20'}
|
engines: {node: '>= 20'}
|
||||||
|
|
||||||
ai@6.0.173:
|
ai@6.0.175:
|
||||||
resolution: {integrity: sha512-X2noFb82kouYQ4nlKGm1cR1Wvlp4Xit7fjJzwXv/msKQmtqkQn9NiXH6kCX4Gl4G+9DRWsJHIKANtWk8Ix1nTw==}
|
resolution: {integrity: sha512-6fFFHzbh6FIZnYc31V6osOxq25ABJYCShfG0O6ajHiA4FB/DgnPi1mP8cO5aAU3HNSbQHiMazdlh9bIsp97mVA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
zod: ^3.25.76 || ^4.1.8
|
zod: ^3.25.76 || ^4.1.8
|
||||||
@@ -3487,8 +3488,8 @@ packages:
|
|||||||
jszip@3.10.1:
|
jszip@3.10.1:
|
||||||
resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
|
resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
|
||||||
|
|
||||||
knip@6.10.0:
|
knip@6.11.0:
|
||||||
resolution: {integrity: sha512-u9EaTj17MYkTw2aojWSwMoRQ6pI/ZtjDexuhqkQ8uQuvMFJXeeHu6MhKDdSppijGaiNGtDSMFYs+w5iZLrb2Cg==}
|
resolution: {integrity: sha512-84PTlN8Q5smLpTbzs8smTVh8PMbTDXtw0tFksXq/m6auGFC/KSzJykKFmnYh3As38kiWDkoDBvdTTyKk5M1TAQ==}
|
||||||
engines: {node: ^20.19.0 || >=22.12.0}
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@@ -4320,42 +4321,42 @@ packages:
|
|||||||
resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==}
|
resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
|
|
||||||
zod@4.4.1:
|
zod@4.4.3:
|
||||||
resolution: {integrity: sha512-a6ENMBBGZBsnlSebQ/eKCguSBeGKSf4O7BPnqVPmYGtpBYI7VSqoVqw+QcB7kPRjbqPwhYTpFbVj/RqNz/CT0Q==}
|
resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==}
|
||||||
|
|
||||||
snapshots:
|
snapshots:
|
||||||
|
|
||||||
'@ai-sdk/anthropic@3.0.74(zod@4.4.1)':
|
'@ai-sdk/anthropic@3.0.74(zod@4.4.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ai-sdk/provider': 3.0.10
|
'@ai-sdk/provider': 3.0.10
|
||||||
'@ai-sdk/provider-utils': 4.0.26(zod@4.4.1)
|
'@ai-sdk/provider-utils': 4.0.26(zod@4.4.3)
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
|
|
||||||
'@ai-sdk/gateway@3.0.108(zod@4.4.1)':
|
'@ai-sdk/gateway@3.0.110(zod@4.4.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ai-sdk/provider': 3.0.10
|
'@ai-sdk/provider': 3.0.10
|
||||||
'@ai-sdk/provider-utils': 4.0.26(zod@4.4.1)
|
'@ai-sdk/provider-utils': 4.0.26(zod@4.4.3)
|
||||||
'@vercel/oidc': 3.2.0
|
'@vercel/oidc': 3.2.0
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
|
|
||||||
'@ai-sdk/google@3.0.67(zod@4.4.1)':
|
'@ai-sdk/google@3.0.67(zod@4.4.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ai-sdk/provider': 3.0.10
|
'@ai-sdk/provider': 3.0.10
|
||||||
'@ai-sdk/provider-utils': 4.0.26(zod@4.4.1)
|
'@ai-sdk/provider-utils': 4.0.26(zod@4.4.3)
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
|
|
||||||
'@ai-sdk/openai@3.0.57(zod@4.4.1)':
|
'@ai-sdk/openai@3.0.60(zod@4.4.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ai-sdk/provider': 3.0.10
|
'@ai-sdk/provider': 3.0.10
|
||||||
'@ai-sdk/provider-utils': 4.0.26(zod@4.4.1)
|
'@ai-sdk/provider-utils': 4.0.26(zod@4.4.3)
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
|
|
||||||
'@ai-sdk/provider-utils@4.0.26(zod@4.4.1)':
|
'@ai-sdk/provider-utils@4.0.26(zod@4.4.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ai-sdk/provider': 3.0.10
|
'@ai-sdk/provider': 3.0.10
|
||||||
'@standard-schema/spec': 1.1.0
|
'@standard-schema/spec': 1.1.0
|
||||||
eventsource-parser: 3.0.8
|
eventsource-parser: 3.0.8
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
|
|
||||||
'@ai-sdk/provider@3.0.10':
|
'@ai-sdk/provider@3.0.10':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -4410,29 +4411,29 @@ snapshots:
|
|||||||
'@smithy/util-utf8': 2.3.0
|
'@smithy/util-utf8': 2.3.0
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/client-s3@3.1040.0':
|
'@aws-sdk/client-s3@3.1042.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-crypto/sha1-browser': 5.2.0
|
'@aws-crypto/sha1-browser': 5.2.0
|
||||||
'@aws-crypto/sha256-browser': 5.2.0
|
'@aws-crypto/sha256-browser': 5.2.0
|
||||||
'@aws-crypto/sha256-js': 5.2.0
|
'@aws-crypto/sha256-js': 5.2.0
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/credential-provider-node': 3.972.38
|
'@aws-sdk/credential-provider-node': 3.972.39
|
||||||
'@aws-sdk/middleware-bucket-endpoint': 3.972.10
|
'@aws-sdk/middleware-bucket-endpoint': 3.972.10
|
||||||
'@aws-sdk/middleware-expect-continue': 3.972.10
|
'@aws-sdk/middleware-expect-continue': 3.972.10
|
||||||
'@aws-sdk/middleware-flexible-checksums': 3.974.15
|
'@aws-sdk/middleware-flexible-checksums': 3.974.16
|
||||||
'@aws-sdk/middleware-host-header': 3.972.10
|
'@aws-sdk/middleware-host-header': 3.972.10
|
||||||
'@aws-sdk/middleware-location-constraint': 3.972.10
|
'@aws-sdk/middleware-location-constraint': 3.972.10
|
||||||
'@aws-sdk/middleware-logger': 3.972.10
|
'@aws-sdk/middleware-logger': 3.972.10
|
||||||
'@aws-sdk/middleware-recursion-detection': 3.972.11
|
'@aws-sdk/middleware-recursion-detection': 3.972.11
|
||||||
'@aws-sdk/middleware-sdk-s3': 3.972.36
|
'@aws-sdk/middleware-sdk-s3': 3.972.37
|
||||||
'@aws-sdk/middleware-ssec': 3.972.10
|
'@aws-sdk/middleware-ssec': 3.972.10
|
||||||
'@aws-sdk/middleware-user-agent': 3.972.37
|
'@aws-sdk/middleware-user-agent': 3.972.38
|
||||||
'@aws-sdk/region-config-resolver': 3.972.13
|
'@aws-sdk/region-config-resolver': 3.972.13
|
||||||
'@aws-sdk/signature-v4-multi-region': 3.996.24
|
'@aws-sdk/signature-v4-multi-region': 3.996.25
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@aws-sdk/util-endpoints': 3.996.8
|
'@aws-sdk/util-endpoints': 3.996.8
|
||||||
'@aws-sdk/util-user-agent-browser': 3.972.10
|
'@aws-sdk/util-user-agent-browser': 3.972.10
|
||||||
'@aws-sdk/util-user-agent-node': 3.973.23
|
'@aws-sdk/util-user-agent-node': 3.973.24
|
||||||
'@smithy/config-resolver': 4.4.17
|
'@smithy/config-resolver': 4.4.17
|
||||||
'@smithy/core': 3.23.17
|
'@smithy/core': 3.23.17
|
||||||
'@smithy/eventstream-serde-browser': 4.2.14
|
'@smithy/eventstream-serde-browser': 4.2.14
|
||||||
@@ -4470,7 +4471,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- aws-crt
|
- aws-crt
|
||||||
|
|
||||||
'@aws-sdk/core@3.974.7':
|
'@aws-sdk/core@3.974.8':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@aws-sdk/xml-builder': 3.972.22
|
'@aws-sdk/xml-builder': 3.972.22
|
||||||
@@ -4492,17 +4493,17 @@ snapshots:
|
|||||||
'@smithy/types': 4.14.1
|
'@smithy/types': 4.14.1
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-env@3.972.33':
|
'@aws-sdk/credential-provider-env@3.972.34':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/property-provider': 4.2.14
|
'@smithy/property-provider': 4.2.14
|
||||||
'@smithy/types': 4.14.1
|
'@smithy/types': 4.14.1
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-http@3.972.35':
|
'@aws-sdk/credential-provider-http@3.972.36':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/fetch-http-handler': 5.3.17
|
'@smithy/fetch-http-handler': 5.3.17
|
||||||
'@smithy/node-http-handler': 4.6.1
|
'@smithy/node-http-handler': 4.6.1
|
||||||
@@ -4513,16 +4514,16 @@ snapshots:
|
|||||||
'@smithy/util-stream': 4.5.25
|
'@smithy/util-stream': 4.5.25
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-ini@3.972.37':
|
'@aws-sdk/credential-provider-ini@3.972.38':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/credential-provider-env': 3.972.33
|
'@aws-sdk/credential-provider-env': 3.972.34
|
||||||
'@aws-sdk/credential-provider-http': 3.972.35
|
'@aws-sdk/credential-provider-http': 3.972.36
|
||||||
'@aws-sdk/credential-provider-login': 3.972.37
|
'@aws-sdk/credential-provider-login': 3.972.38
|
||||||
'@aws-sdk/credential-provider-process': 3.972.33
|
'@aws-sdk/credential-provider-process': 3.972.34
|
||||||
'@aws-sdk/credential-provider-sso': 3.972.37
|
'@aws-sdk/credential-provider-sso': 3.972.38
|
||||||
'@aws-sdk/credential-provider-web-identity': 3.972.37
|
'@aws-sdk/credential-provider-web-identity': 3.972.38
|
||||||
'@aws-sdk/nested-clients': 3.997.5
|
'@aws-sdk/nested-clients': 3.997.6
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/credential-provider-imds': 4.2.14
|
'@smithy/credential-provider-imds': 4.2.14
|
||||||
'@smithy/property-provider': 4.2.14
|
'@smithy/property-provider': 4.2.14
|
||||||
@@ -4532,10 +4533,10 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- aws-crt
|
- aws-crt
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-login@3.972.37':
|
'@aws-sdk/credential-provider-login@3.972.38':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/nested-clients': 3.997.5
|
'@aws-sdk/nested-clients': 3.997.6
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/property-provider': 4.2.14
|
'@smithy/property-provider': 4.2.14
|
||||||
'@smithy/protocol-http': 5.3.14
|
'@smithy/protocol-http': 5.3.14
|
||||||
@@ -4545,14 +4546,14 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- aws-crt
|
- aws-crt
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-node@3.972.38':
|
'@aws-sdk/credential-provider-node@3.972.39':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/credential-provider-env': 3.972.33
|
'@aws-sdk/credential-provider-env': 3.972.34
|
||||||
'@aws-sdk/credential-provider-http': 3.972.35
|
'@aws-sdk/credential-provider-http': 3.972.36
|
||||||
'@aws-sdk/credential-provider-ini': 3.972.37
|
'@aws-sdk/credential-provider-ini': 3.972.38
|
||||||
'@aws-sdk/credential-provider-process': 3.972.33
|
'@aws-sdk/credential-provider-process': 3.972.34
|
||||||
'@aws-sdk/credential-provider-sso': 3.972.37
|
'@aws-sdk/credential-provider-sso': 3.972.38
|
||||||
'@aws-sdk/credential-provider-web-identity': 3.972.37
|
'@aws-sdk/credential-provider-web-identity': 3.972.38
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/credential-provider-imds': 4.2.14
|
'@smithy/credential-provider-imds': 4.2.14
|
||||||
'@smithy/property-provider': 4.2.14
|
'@smithy/property-provider': 4.2.14
|
||||||
@@ -4562,20 +4563,20 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- aws-crt
|
- aws-crt
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-process@3.972.33':
|
'@aws-sdk/credential-provider-process@3.972.34':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/property-provider': 4.2.14
|
'@smithy/property-provider': 4.2.14
|
||||||
'@smithy/shared-ini-file-loader': 4.4.9
|
'@smithy/shared-ini-file-loader': 4.4.9
|
||||||
'@smithy/types': 4.14.1
|
'@smithy/types': 4.14.1
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-sso@3.972.37':
|
'@aws-sdk/credential-provider-sso@3.972.38':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/nested-clients': 3.997.5
|
'@aws-sdk/nested-clients': 3.997.6
|
||||||
'@aws-sdk/token-providers': 3.1039.0
|
'@aws-sdk/token-providers': 3.1041.0
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/property-provider': 4.2.14
|
'@smithy/property-provider': 4.2.14
|
||||||
'@smithy/shared-ini-file-loader': 4.4.9
|
'@smithy/shared-ini-file-loader': 4.4.9
|
||||||
@@ -4584,10 +4585,10 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- aws-crt
|
- aws-crt
|
||||||
|
|
||||||
'@aws-sdk/credential-provider-web-identity@3.972.37':
|
'@aws-sdk/credential-provider-web-identity@3.972.38':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/nested-clients': 3.997.5
|
'@aws-sdk/nested-clients': 3.997.6
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/property-provider': 4.2.14
|
'@smithy/property-provider': 4.2.14
|
||||||
'@smithy/shared-ini-file-loader': 4.4.9
|
'@smithy/shared-ini-file-loader': 4.4.9
|
||||||
@@ -4613,12 +4614,12 @@ snapshots:
|
|||||||
'@smithy/types': 4.14.1
|
'@smithy/types': 4.14.1
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/middleware-flexible-checksums@3.974.15':
|
'@aws-sdk/middleware-flexible-checksums@3.974.16':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-crypto/crc32': 5.2.0
|
'@aws-crypto/crc32': 5.2.0
|
||||||
'@aws-crypto/crc32c': 5.2.0
|
'@aws-crypto/crc32c': 5.2.0
|
||||||
'@aws-crypto/util': 5.2.0
|
'@aws-crypto/util': 5.2.0
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/crc64-nvme': 3.972.7
|
'@aws-sdk/crc64-nvme': 3.972.7
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/is-array-buffer': 4.2.2
|
'@smithy/is-array-buffer': 4.2.2
|
||||||
@@ -4657,9 +4658,9 @@ snapshots:
|
|||||||
'@smithy/types': 4.14.1
|
'@smithy/types': 4.14.1
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/middleware-sdk-s3@3.972.36':
|
'@aws-sdk/middleware-sdk-s3@3.972.37':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@aws-sdk/util-arn-parser': 3.972.3
|
'@aws-sdk/util-arn-parser': 3.972.3
|
||||||
'@smithy/core': 3.23.17
|
'@smithy/core': 3.23.17
|
||||||
@@ -4680,9 +4681,9 @@ snapshots:
|
|||||||
'@smithy/types': 4.14.1
|
'@smithy/types': 4.14.1
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/middleware-user-agent@3.972.37':
|
'@aws-sdk/middleware-user-agent@3.972.38':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@aws-sdk/util-endpoints': 3.996.8
|
'@aws-sdk/util-endpoints': 3.996.8
|
||||||
'@smithy/core': 3.23.17
|
'@smithy/core': 3.23.17
|
||||||
@@ -4691,21 +4692,21 @@ snapshots:
|
|||||||
'@smithy/util-retry': 4.3.6
|
'@smithy/util-retry': 4.3.6
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/nested-clients@3.997.5':
|
'@aws-sdk/nested-clients@3.997.6':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-crypto/sha256-browser': 5.2.0
|
'@aws-crypto/sha256-browser': 5.2.0
|
||||||
'@aws-crypto/sha256-js': 5.2.0
|
'@aws-crypto/sha256-js': 5.2.0
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/middleware-host-header': 3.972.10
|
'@aws-sdk/middleware-host-header': 3.972.10
|
||||||
'@aws-sdk/middleware-logger': 3.972.10
|
'@aws-sdk/middleware-logger': 3.972.10
|
||||||
'@aws-sdk/middleware-recursion-detection': 3.972.11
|
'@aws-sdk/middleware-recursion-detection': 3.972.11
|
||||||
'@aws-sdk/middleware-user-agent': 3.972.37
|
'@aws-sdk/middleware-user-agent': 3.972.38
|
||||||
'@aws-sdk/region-config-resolver': 3.972.13
|
'@aws-sdk/region-config-resolver': 3.972.13
|
||||||
'@aws-sdk/signature-v4-multi-region': 3.996.24
|
'@aws-sdk/signature-v4-multi-region': 3.996.25
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@aws-sdk/util-endpoints': 3.996.8
|
'@aws-sdk/util-endpoints': 3.996.8
|
||||||
'@aws-sdk/util-user-agent-browser': 3.972.10
|
'@aws-sdk/util-user-agent-browser': 3.972.10
|
||||||
'@aws-sdk/util-user-agent-node': 3.973.23
|
'@aws-sdk/util-user-agent-node': 3.973.24
|
||||||
'@smithy/config-resolver': 4.4.17
|
'@smithy/config-resolver': 4.4.17
|
||||||
'@smithy/core': 3.23.17
|
'@smithy/core': 3.23.17
|
||||||
'@smithy/fetch-http-handler': 5.3.17
|
'@smithy/fetch-http-handler': 5.3.17
|
||||||
@@ -4743,9 +4744,9 @@ snapshots:
|
|||||||
'@smithy/types': 4.14.1
|
'@smithy/types': 4.14.1
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/s3-request-presigner@3.1040.0':
|
'@aws-sdk/s3-request-presigner@3.1042.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/signature-v4-multi-region': 3.996.24
|
'@aws-sdk/signature-v4-multi-region': 3.996.25
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@aws-sdk/util-format-url': 3.972.10
|
'@aws-sdk/util-format-url': 3.972.10
|
||||||
'@smithy/middleware-endpoint': 4.4.32
|
'@smithy/middleware-endpoint': 4.4.32
|
||||||
@@ -4754,19 +4755,19 @@ snapshots:
|
|||||||
'@smithy/types': 4.14.1
|
'@smithy/types': 4.14.1
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/signature-v4-multi-region@3.996.24':
|
'@aws-sdk/signature-v4-multi-region@3.996.25':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/middleware-sdk-s3': 3.972.36
|
'@aws-sdk/middleware-sdk-s3': 3.972.37
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/protocol-http': 5.3.14
|
'@smithy/protocol-http': 5.3.14
|
||||||
'@smithy/signature-v4': 5.3.14
|
'@smithy/signature-v4': 5.3.14
|
||||||
'@smithy/types': 4.14.1
|
'@smithy/types': 4.14.1
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/token-providers@3.1039.0':
|
'@aws-sdk/token-providers@3.1041.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/core': 3.974.7
|
'@aws-sdk/core': 3.974.8
|
||||||
'@aws-sdk/nested-clients': 3.997.5
|
'@aws-sdk/nested-clients': 3.997.6
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/property-provider': 4.2.14
|
'@smithy/property-provider': 4.2.14
|
||||||
'@smithy/shared-ini-file-loader': 4.4.9
|
'@smithy/shared-ini-file-loader': 4.4.9
|
||||||
@@ -4810,9 +4811,9 @@ snapshots:
|
|||||||
bowser: 2.14.1
|
bowser: 2.14.1
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@aws-sdk/util-user-agent-node@3.973.23':
|
'@aws-sdk/util-user-agent-node@3.973.24':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@aws-sdk/middleware-user-agent': 3.972.37
|
'@aws-sdk/middleware-user-agent': 3.972.38
|
||||||
'@aws-sdk/types': 3.973.8
|
'@aws-sdk/types': 3.973.8
|
||||||
'@smithy/node-config-provider': 4.3.14
|
'@smithy/node-config-provider': 4.3.14
|
||||||
'@smithy/types': 4.14.1
|
'@smithy/types': 4.14.1
|
||||||
@@ -4842,69 +4843,69 @@ snapshots:
|
|||||||
'@babel/helper-validator-identifier': 7.28.5
|
'@babel/helper-validator-identifier': 7.28.5
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)':
|
'@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@better-auth/utils': 0.4.0
|
'@better-auth/utils': 0.4.0
|
||||||
'@better-fetch/fetch': 1.1.21
|
'@better-fetch/fetch': 1.1.21
|
||||||
'@opentelemetry/semantic-conventions': 1.40.0
|
'@opentelemetry/semantic-conventions': 1.40.0
|
||||||
'@standard-schema/spec': 1.1.0
|
'@standard-schema/spec': 1.1.0
|
||||||
better-call: 1.3.5(zod@4.4.1)
|
better-call: 1.3.5(zod@4.4.3)
|
||||||
jose: 6.2.1
|
jose: 6.2.1
|
||||||
kysely: 0.28.14
|
kysely: 0.28.14
|
||||||
nanostores: 1.1.1
|
nanostores: 1.1.1
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@opentelemetry/api': 1.9.0
|
'@opentelemetry/api': 1.9.0
|
||||||
|
|
||||||
'@better-auth/drizzle-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)))':
|
'@better-auth/drizzle-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
||||||
'@better-auth/utils': 0.4.0
|
'@better-auth/utils': 0.4.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
drizzle-orm: 0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))
|
drizzle-orm: 0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))
|
||||||
|
|
||||||
'@better-auth/kysely-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(kysely@0.28.14)':
|
'@better-auth/kysely-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(kysely@0.28.14)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
||||||
'@better-auth/utils': 0.4.0
|
'@better-auth/utils': 0.4.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
kysely: 0.28.14
|
kysely: 0.28.14
|
||||||
|
|
||||||
'@better-auth/memory-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)':
|
'@better-auth/memory-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
||||||
'@better-auth/utils': 0.4.0
|
'@better-auth/utils': 0.4.0
|
||||||
|
|
||||||
'@better-auth/mongo-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(mongodb@7.1.0)':
|
'@better-auth/mongo-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(mongodb@7.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
||||||
'@better-auth/utils': 0.4.0
|
'@better-auth/utils': 0.4.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
mongodb: 7.1.0
|
mongodb: 7.1.0
|
||||||
|
|
||||||
'@better-auth/passkey@1.6.9(22762a9b26d2e46f2ba0c21d31406330)':
|
'@better-auth/passkey@1.6.9(60d949d2bbdb8e45901f3be9be360abb)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
||||||
'@better-auth/utils': 0.4.0
|
'@better-auth/utils': 0.4.0
|
||||||
'@better-fetch/fetch': 1.1.21
|
'@better-fetch/fetch': 1.1.21
|
||||||
'@simplewebauthn/browser': 13.2.2
|
'@simplewebauthn/browser': 13.2.2
|
||||||
'@simplewebauthn/server': 13.2.3
|
'@simplewebauthn/server': 13.2.3
|
||||||
better-auth: 1.6.9(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)))(mongodb@7.1.0)(mysql2@3.15.3)(next@16.2.4(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.20.0)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
better-auth: 1.6.9(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)))(mongodb@7.1.0)(mysql2@3.15.3)(next@16.2.4(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.20.0)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
better-call: 1.3.5(zod@4.4.1)
|
better-call: 1.3.5(zod@4.4.3)
|
||||||
nanostores: 1.1.1
|
nanostores: 1.1.1
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
|
|
||||||
'@better-auth/prisma-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))':
|
'@better-auth/prisma-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
||||||
'@better-auth/utils': 0.4.0
|
'@better-auth/utils': 0.4.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@prisma/client': 7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3)
|
'@prisma/client': 7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3)
|
||||||
prisma: 7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)
|
prisma: 7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)
|
||||||
|
|
||||||
'@better-auth/telemetry@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)':
|
'@better-auth/telemetry@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
||||||
'@better-auth/utils': 0.4.0
|
'@better-auth/utils': 0.4.0
|
||||||
'@better-fetch/fetch': 1.1.21
|
'@better-fetch/fetch': 1.1.21
|
||||||
|
|
||||||
@@ -4914,39 +4915,39 @@ snapshots:
|
|||||||
|
|
||||||
'@better-fetch/fetch@1.1.21': {}
|
'@better-fetch/fetch@1.1.21': {}
|
||||||
|
|
||||||
'@biomejs/biome@2.4.13':
|
'@biomejs/biome@2.4.14':
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@biomejs/cli-darwin-arm64': 2.4.13
|
'@biomejs/cli-darwin-arm64': 2.4.14
|
||||||
'@biomejs/cli-darwin-x64': 2.4.13
|
'@biomejs/cli-darwin-x64': 2.4.14
|
||||||
'@biomejs/cli-linux-arm64': 2.4.13
|
'@biomejs/cli-linux-arm64': 2.4.14
|
||||||
'@biomejs/cli-linux-arm64-musl': 2.4.13
|
'@biomejs/cli-linux-arm64-musl': 2.4.14
|
||||||
'@biomejs/cli-linux-x64': 2.4.13
|
'@biomejs/cli-linux-x64': 2.4.14
|
||||||
'@biomejs/cli-linux-x64-musl': 2.4.13
|
'@biomejs/cli-linux-x64-musl': 2.4.14
|
||||||
'@biomejs/cli-win32-arm64': 2.4.13
|
'@biomejs/cli-win32-arm64': 2.4.14
|
||||||
'@biomejs/cli-win32-x64': 2.4.13
|
'@biomejs/cli-win32-x64': 2.4.14
|
||||||
|
|
||||||
'@biomejs/cli-darwin-arm64@2.4.13':
|
'@biomejs/cli-darwin-arm64@2.4.14':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@biomejs/cli-darwin-x64@2.4.13':
|
'@biomejs/cli-darwin-x64@2.4.14':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@biomejs/cli-linux-arm64-musl@2.4.13':
|
'@biomejs/cli-linux-arm64-musl@2.4.14':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@biomejs/cli-linux-arm64@2.4.13':
|
'@biomejs/cli-linux-arm64@2.4.14':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@biomejs/cli-linux-x64-musl@2.4.13':
|
'@biomejs/cli-linux-x64-musl@2.4.14':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@biomejs/cli-linux-x64@2.4.13':
|
'@biomejs/cli-linux-x64@2.4.14':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@biomejs/cli-win32-arm64@2.4.13':
|
'@biomejs/cli-win32-arm64@2.4.14':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@biomejs/cli-win32-x64@2.4.13':
|
'@biomejs/cli-win32-x64@2.4.14':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@chevrotain/cst-dts-gen@10.5.0':
|
'@chevrotain/cst-dts-gen@10.5.0':
|
||||||
@@ -5522,10 +5523,10 @@ snapshots:
|
|||||||
|
|
||||||
'@nodable/entities@2.1.0': {}
|
'@nodable/entities@2.1.0': {}
|
||||||
|
|
||||||
'@openrouter/ai-sdk-provider@2.9.0(ai@6.0.173(zod@4.4.1))(zod@4.4.1)':
|
'@openrouter/ai-sdk-provider@2.9.0(ai@6.0.175(zod@4.4.3))(zod@4.4.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
ai: 6.0.173(zod@4.4.1)
|
ai: 6.0.175(zod@4.4.3)
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
|
|
||||||
'@opentelemetry/api@1.9.0': {}
|
'@opentelemetry/api@1.9.0': {}
|
||||||
|
|
||||||
@@ -6889,11 +6890,11 @@ snapshots:
|
|||||||
postcss: 8.5.8
|
postcss: 8.5.8
|
||||||
tailwindcss: 4.2.4
|
tailwindcss: 4.2.4
|
||||||
|
|
||||||
'@tanstack/query-core@5.100.7': {}
|
'@tanstack/query-core@5.100.9': {}
|
||||||
|
|
||||||
'@tanstack/react-query@5.100.7(react@19.2.5)':
|
'@tanstack/react-query@5.100.9(react@19.2.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tanstack/query-core': 5.100.7
|
'@tanstack/query-core': 5.100.9
|
||||||
react: 19.2.5
|
react: 19.2.5
|
||||||
|
|
||||||
'@tanstack/react-table@8.21.3(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
'@tanstack/react-table@8.21.3(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||||
@@ -6983,13 +6984,13 @@ snapshots:
|
|||||||
|
|
||||||
'@vercel/oidc@3.2.0': {}
|
'@vercel/oidc@3.2.0': {}
|
||||||
|
|
||||||
ai@6.0.173(zod@4.4.1):
|
ai@6.0.175(zod@4.4.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ai-sdk/gateway': 3.0.108(zod@4.4.1)
|
'@ai-sdk/gateway': 3.0.110(zod@4.4.3)
|
||||||
'@ai-sdk/provider': 3.0.10
|
'@ai-sdk/provider': 3.0.10
|
||||||
'@ai-sdk/provider-utils': 4.0.26(zod@4.4.1)
|
'@ai-sdk/provider-utils': 4.0.26(zod@4.4.3)
|
||||||
'@opentelemetry/api': 1.9.0
|
'@opentelemetry/api': 1.9.0
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
|
|
||||||
archiver-utils@2.1.0:
|
archiver-utils@2.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -7058,23 +7059,23 @@ snapshots:
|
|||||||
|
|
||||||
better-auth@1.6.9(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)))(mongodb@7.1.0)(mysql2@3.15.3)(next@16.2.4(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.20.0)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5):
|
better-auth@1.6.9(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)))(mongodb@7.1.0)(mysql2@3.15.3)(next@16.2.4(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.20.0)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
'@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1)
|
||||||
'@better-auth/drizzle-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)))
|
'@better-auth/drizzle-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(@types/pg@8.20.0)(kysely@0.28.14)(mysql2@3.15.3)(pg@8.20.0)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3)))
|
||||||
'@better-auth/kysely-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(kysely@0.28.14)
|
'@better-auth/kysely-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(kysely@0.28.14)
|
||||||
'@better-auth/memory-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)
|
'@better-auth/memory-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)
|
||||||
'@better-auth/mongo-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(mongodb@7.1.0)
|
'@better-auth/mongo-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(mongodb@7.1.0)
|
||||||
'@better-auth/prisma-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))
|
'@better-auth/prisma-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3))(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))
|
||||||
'@better-auth/telemetry': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.1))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)
|
'@better-auth/telemetry': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.0)(better-call@1.3.5(zod@4.4.3))(jose@6.2.1)(kysely@0.28.14)(nanostores@1.1.1))(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)
|
||||||
'@better-auth/utils': 0.4.0
|
'@better-auth/utils': 0.4.0
|
||||||
'@better-fetch/fetch': 1.1.21
|
'@better-fetch/fetch': 1.1.21
|
||||||
'@noble/ciphers': 2.1.1
|
'@noble/ciphers': 2.1.1
|
||||||
'@noble/hashes': 2.0.1
|
'@noble/hashes': 2.0.1
|
||||||
better-call: 1.3.5(zod@4.4.1)
|
better-call: 1.3.5(zod@4.4.3)
|
||||||
defu: 6.1.7
|
defu: 6.1.7
|
||||||
jose: 6.2.1
|
jose: 6.2.1
|
||||||
kysely: 0.28.14
|
kysely: 0.28.14
|
||||||
nanostores: 1.1.1
|
nanostores: 1.1.1
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@prisma/client': 7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3)
|
'@prisma/client': 7.4.2(prisma@7.4.2(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3))(typescript@6.0.3)
|
||||||
drizzle-kit: 0.31.10
|
drizzle-kit: 0.31.10
|
||||||
@@ -7090,14 +7091,14 @@ snapshots:
|
|||||||
- '@cloudflare/workers-types'
|
- '@cloudflare/workers-types'
|
||||||
- '@opentelemetry/api'
|
- '@opentelemetry/api'
|
||||||
|
|
||||||
better-call@1.3.5(zod@4.4.1):
|
better-call@1.3.5(zod@4.4.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@better-auth/utils': 0.4.0
|
'@better-auth/utils': 0.4.0
|
||||||
'@better-fetch/fetch': 1.1.21
|
'@better-fetch/fetch': 1.1.21
|
||||||
rou3: 0.7.12
|
rou3: 0.7.12
|
||||||
set-cookie-parser: 3.0.1
|
set-cookie-parser: 3.0.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
|
|
||||||
big-integer@1.6.52: {}
|
big-integer@1.6.52: {}
|
||||||
|
|
||||||
@@ -7657,7 +7658,7 @@ snapshots:
|
|||||||
readable-stream: 2.3.8
|
readable-stream: 2.3.8
|
||||||
setimmediate: 1.0.5
|
setimmediate: 1.0.5
|
||||||
|
|
||||||
knip@6.10.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0):
|
knip@6.11.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
fdir: 6.5.0(picomatch@4.0.4)
|
fdir: 6.5.0(picomatch@4.0.4)
|
||||||
formatly: 0.3.0
|
formatly: 0.3.0
|
||||||
@@ -7672,7 +7673,7 @@ snapshots:
|
|||||||
tinyglobby: 0.2.16
|
tinyglobby: 0.2.16
|
||||||
unbash: 3.0.0
|
unbash: 3.0.0
|
||||||
yaml: 2.8.3
|
yaml: 2.8.3
|
||||||
zod: 4.4.1
|
zod: 4.4.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@emnapi/core'
|
- '@emnapi/core'
|
||||||
- '@emnapi/runtime'
|
- '@emnapi/runtime'
|
||||||
@@ -8513,4 +8514,4 @@ snapshots:
|
|||||||
compress-commons: 4.1.2
|
compress-commons: 4.1.2
|
||||||
readable-stream: 3.6.2
|
readable-stream: 3.6.2
|
||||||
|
|
||||||
zod@4.4.1: {}
|
zod@4.4.3: {}
|
||||||
|
|||||||
BIN
public/logos/dinheiro.png
Normal file
BIN
public/logos/dinheiro.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 72 KiB |
1087
scripts/mock-data.ts
1087
scripts/mock-data.ts
File diff suppressed because it is too large
Load Diff
@@ -19,7 +19,6 @@ export default function RootLayout({
|
|||||||
subtitle="Gerencie os anexos das suas transações"
|
subtitle="Gerencie os anexos das suas transações"
|
||||||
/>
|
/>
|
||||||
<MonthNavigation />
|
<MonthNavigation />
|
||||||
|
|
||||||
{children}
|
{children}
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -25,9 +25,7 @@ export default async function Page({ searchParams }: PageProps) {
|
|||||||
const userId = await getUserId();
|
const userId = await getUserId();
|
||||||
const resolvedSearchParams = searchParams ? await searchParams : undefined;
|
const resolvedSearchParams = searchParams ? await searchParams : undefined;
|
||||||
const periodoParam = getSingleParam(resolvedSearchParams, "periodo");
|
const periodoParam = getSingleParam(resolvedSearchParams, "periodo");
|
||||||
|
|
||||||
const { period: selectedPeriod } = parsePeriodParam(periodoParam);
|
const { period: selectedPeriod } = parsePeriodParam(periodoParam);
|
||||||
|
|
||||||
const { budgets, categoriesOptions } = await fetchBudgetsForUser(
|
const { budgets, categoriesOptions } = await fetchBudgetsForUser(
|
||||||
userId,
|
userId,
|
||||||
selectedPeriod,
|
selectedPeriod,
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export default async function Page({ searchParams }: PageProps) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="flex flex-col gap-3">
|
<main className="flex flex-col gap-4">
|
||||||
<MonthNavigation />
|
<MonthNavigation />
|
||||||
<MonthlyCalendar
|
<MonthlyCalendar
|
||||||
period={calendarPeriod}
|
period={calendarPeriod}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export default async function Page() {
|
|||||||
await fetchAllCardsForUser(userId);
|
await fetchAllCardsForUser(userId);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="flex flex-col items-start gap-6">
|
<main className="flex flex-col gap-6">
|
||||||
<CardsPage
|
<CardsPage
|
||||||
cards={activeCards}
|
cards={activeCards}
|
||||||
archivedCards={archivedCards}
|
archivedCards={archivedCards}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export default async function Page() {
|
|||||||
const categories = await fetchCategoriesForUser(userId);
|
const categories = await fetchCategoriesForUser(userId);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="flex flex-col items-start gap-6">
|
<main className="flex flex-col gap-6">
|
||||||
<CategoriesPage categories={categories} />
|
<CategoriesPage categories={categories} />
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ export default async function Page({ searchParams }: PageProps) {
|
|||||||
const normalizedSourceApps = Array.isArray(sourceApps) ? sourceApps : [];
|
const normalizedSourceApps = Array.isArray(sourceApps) ? sourceApps : [];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="flex flex-col items-start gap-6">
|
<main className="flex flex-col gap-6">
|
||||||
<InboxPage
|
<InboxPage
|
||||||
activeStatus={activeStatus}
|
activeStatus={activeStatus}
|
||||||
activeApp={activeApp}
|
activeApp={activeApp}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export default async function Page() {
|
|||||||
const { activeNotes, archivedNotes } = await fetchAllNotesForUser(userId);
|
const { activeNotes, archivedNotes } = await fetchAllNotesForUser(userId);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="flex flex-col items-start gap-6">
|
<main className="flex flex-col gap-6">
|
||||||
<NotesPage notes={activeNotes} archivedNotes={archivedNotes} />
|
<NotesPage notes={activeNotes} archivedNotes={archivedNotes} />
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export default async function Page() {
|
|||||||
const { payers, avatarOptions } = await fetchPayersForUser(userId);
|
const { payers, avatarOptions } = await fetchPayersForUser(userId);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="flex flex-col items-start gap-6">
|
<main className="flex flex-col gap-6">
|
||||||
<PayersPage payers={payers} avatarOptions={avatarOptions} />
|
<PayersPage payers={payers} avatarOptions={avatarOptions} />
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import {
|
|||||||
TooltipContent,
|
TooltipContent,
|
||||||
TooltipTrigger,
|
TooltipTrigger,
|
||||||
} from "@/shared/components/ui/tooltip";
|
} from "@/shared/components/ui/tooltip";
|
||||||
|
import { isAccountInactive } from "@/shared/lib/accounts/constants";
|
||||||
import { cn } from "@/shared/utils/ui";
|
import { cn } from "@/shared/utils/ui";
|
||||||
|
|
||||||
interface AccountCardProps {
|
interface AccountCardProps {
|
||||||
@@ -46,7 +47,7 @@ export function AccountCard({
|
|||||||
onTransfer,
|
onTransfer,
|
||||||
className,
|
className,
|
||||||
}: AccountCardProps) {
|
}: AccountCardProps) {
|
||||||
const isInactive = status?.toLowerCase() === "inativa";
|
const isInactive = isAccountInactive(status);
|
||||||
|
|
||||||
const balanceColor =
|
const balanceColor =
|
||||||
balance > 0
|
balance > 0
|
||||||
@@ -145,6 +146,7 @@ export function AccountCard({
|
|||||||
<span className="text-xs text-muted-foreground">Saldo</span>
|
<span className="text-xs text-muted-foreground">Saldo</span>
|
||||||
<MoneyValues
|
<MoneyValues
|
||||||
amount={balance}
|
amount={balance}
|
||||||
|
showPositiveSign
|
||||||
className={cn("text-2xl font-semibold", balanceColor)}
|
className={cn("text-2xl font-semibold", balanceColor)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -37,7 +37,9 @@ const DEFAULT_ACCOUNT_TYPES = [
|
|||||||
"Conta Poupança",
|
"Conta Poupança",
|
||||||
"Carteira Digital",
|
"Carteira Digital",
|
||||||
"Conta Investimento",
|
"Conta Investimento",
|
||||||
|
"Dinheiro",
|
||||||
"Pré-Pago | VR/VA",
|
"Pré-Pago | VR/VA",
|
||||||
|
"Outros",
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
const DEFAULT_ACCOUNT_STATUS = ["Ativa", "Inativa"] as const;
|
const DEFAULT_ACCOUNT_STATUS = ["Ativa", "Inativa"] as const;
|
||||||
|
|||||||
@@ -12,7 +12,10 @@ import {
|
|||||||
SelectValue,
|
SelectValue,
|
||||||
} from "@/shared/components/ui/select";
|
} from "@/shared/components/ui/select";
|
||||||
import { Textarea } from "@/shared/components/ui/textarea";
|
import { Textarea } from "@/shared/components/ui/textarea";
|
||||||
import { StatusSelectContent } from "./account-select-items";
|
import {
|
||||||
|
AccountTypeSelectContent,
|
||||||
|
StatusSelectContent,
|
||||||
|
} from "./account-select-items";
|
||||||
|
|
||||||
import type { AccountFormValues } from "./types";
|
import type { AccountFormValues } from "./types";
|
||||||
|
|
||||||
@@ -54,12 +57,16 @@ export function AccountFormFields({
|
|||||||
onValueChange={(value) => onChange("accountType", value)}
|
onValueChange={(value) => onChange("accountType", value)}
|
||||||
>
|
>
|
||||||
<SelectTrigger id="account-type" className="w-full">
|
<SelectTrigger id="account-type" className="w-full">
|
||||||
<SelectValue placeholder="Selecione o tipo" />
|
<SelectValue placeholder="Selecione o tipo">
|
||||||
|
{values.accountType && (
|
||||||
|
<AccountTypeSelectContent label={values.accountType} />
|
||||||
|
)}
|
||||||
|
</SelectValue>
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
{accountTypes.map((type) => (
|
{accountTypes.map((type) => (
|
||||||
<SelectItem key={type} value={type}>
|
<SelectItem key={type} value={type}>
|
||||||
{type}
|
<AccountTypeSelectContent label={type} />
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
))}
|
))}
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
|
|||||||
@@ -1,6 +1,18 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import StatusDot from "@/shared/components/status-dot";
|
import StatusDot from "@/shared/components/status-dot";
|
||||||
|
import { getAccountTypeIcon } from "@/shared/utils/icons";
|
||||||
|
|
||||||
|
export function AccountTypeSelectContent({ label }: { label: string }) {
|
||||||
|
const icon = getAccountTypeIcon(label);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<span className="flex items-center gap-2">
|
||||||
|
{icon}
|
||||||
|
<span>{label}</span>
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
export function StatusSelectContent({ label }: { label: string }) {
|
export function StatusSelectContent({ label }: { label: string }) {
|
||||||
const isActive = label === "Ativa";
|
const isActive = label === "Ativa";
|
||||||
|
|||||||
@@ -186,14 +186,14 @@ export function AccountsPage({
|
|||||||
<Tabs value={activeTab} onValueChange={setActiveTab} className="w-full">
|
<Tabs value={activeTab} onValueChange={setActiveTab} className="w-full">
|
||||||
<TabsList>
|
<TabsList>
|
||||||
<TabsTrigger value="ativos">Ativas</TabsTrigger>
|
<TabsTrigger value="ativos">Ativas</TabsTrigger>
|
||||||
<TabsTrigger value="arquivados">Arquivadas</TabsTrigger>
|
<TabsTrigger value="inativas">Inativas</TabsTrigger>
|
||||||
</TabsList>
|
</TabsList>
|
||||||
|
|
||||||
<TabsContent value="ativos" className="mt-4">
|
<TabsContent value="ativos" className="mt-4">
|
||||||
{renderAccountList(orderedAccounts, false)}
|
{renderAccountList(orderedAccounts, false)}
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
|
|
||||||
<TabsContent value="arquivados" className="mt-4">
|
<TabsContent value="inativas" className="mt-4">
|
||||||
{renderAccountList(orderedArchivedAccounts, true)}
|
{renderAccountList(orderedArchivedAccounts, true)}
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|||||||
@@ -90,6 +90,7 @@ export function BudgetCard({ budget, onEdit, onRemove }: BudgetCardProps) {
|
|||||||
<Progress
|
<Progress
|
||||||
value={usagePercent}
|
value={usagePercent}
|
||||||
className={cn("h-2.5", exceeded && "bg-destructive/20!")}
|
className={cn("h-2.5", exceeded && "bg-destructive/20!")}
|
||||||
|
indicatorClassName={cn(exceeded && "bg-destructive")}
|
||||||
aria-label={`${usagePercent.toFixed(1)}% do orçamento utilizado`}
|
aria-label={`${usagePercent.toFixed(1)}% do orçamento utilizado`}
|
||||||
/>
|
/>
|
||||||
<span className="text-xs text-muted-foreground">
|
<span className="text-xs text-muted-foreground">
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { EVENT_TYPE_STYLES } from "@/features/calendar/components/day-cell";
|
import { EVENT_TYPE_STYLES } from "@/features/calendar/components/day-cell";
|
||||||
|
import { Card } from "@/shared/components/ui/card";
|
||||||
import { cn } from "@/shared/utils/ui";
|
import { cn } from "@/shared/utils/ui";
|
||||||
|
|
||||||
const LEGEND_ITEMS = [
|
const LEGEND_ITEMS = [
|
||||||
@@ -12,22 +13,24 @@ const LEGEND_ITEMS = [
|
|||||||
|
|
||||||
export function CalendarLegend() {
|
export function CalendarLegend() {
|
||||||
return (
|
return (
|
||||||
<ul className="flex items-center justify-start gap-2 px-1">
|
<Card className="px-4 py-2">
|
||||||
{LEGEND_ITEMS.map((item) => (
|
<ul className="flex flex-row items-center gap-2">
|
||||||
<li
|
{LEGEND_ITEMS.map((item) => (
|
||||||
key={item.label}
|
<li
|
||||||
className={cn(
|
key={item.label}
|
||||||
"flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium",
|
className={cn(
|
||||||
item.wrapper,
|
"flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium",
|
||||||
)}
|
item.wrapper,
|
||||||
>
|
)}
|
||||||
<span
|
>
|
||||||
className={cn("size-1.5 shrink-0 rounded-full", item.dot)}
|
<span
|
||||||
aria-hidden
|
className={cn("size-1.5 shrink-0 rounded-full", item.dot)}
|
||||||
/>
|
aria-hidden
|
||||||
{item.label}
|
/>
|
||||||
</li>
|
{item.label}
|
||||||
))}
|
</li>
|
||||||
</ul>
|
))}
|
||||||
|
</ul>
|
||||||
|
</Card>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ export function CardItem({
|
|||||||
|
|
||||||
const usagePercent =
|
const usagePercent =
|
||||||
limit > 0 ? Math.min(Math.max((used / limit) * 100, 0), 100) : 0;
|
limit > 0 ? Math.min(Math.max((used / limit) * 100, 0), 100) : 0;
|
||||||
|
const exceeded = usagePercent >= 100;
|
||||||
|
|
||||||
const logoPath = resolveLogoSrc(logo);
|
const logoPath = resolveLogoSrc(logo);
|
||||||
const brandAsset = resolveCardBrandAsset(brand);
|
const brandAsset = resolveCardBrandAsset(brand);
|
||||||
@@ -194,7 +195,8 @@ export function CardItem({
|
|||||||
<div className="flex flex-col gap-2">
|
<div className="flex flex-col gap-2">
|
||||||
<Progress
|
<Progress
|
||||||
value={usagePercent}
|
value={usagePercent}
|
||||||
className="h-2.5"
|
className={cn("h-2.5", exceeded && "bg-destructive/20!")}
|
||||||
|
indicatorClassName={cn(exceeded && "bg-destructive")}
|
||||||
aria-label={`${usagePercent.toFixed(0)}% do limite utilizado`}
|
aria-label={`${usagePercent.toFixed(0)}% do limite utilizado`}
|
||||||
/>
|
/>
|
||||||
<span className="text-xs text-muted-foreground">
|
<span className="text-xs text-muted-foreground">
|
||||||
|
|||||||
@@ -174,14 +174,14 @@ export function CardsPage({
|
|||||||
<Tabs value={activeTab} onValueChange={setActiveTab} className="w-full">
|
<Tabs value={activeTab} onValueChange={setActiveTab} className="w-full">
|
||||||
<TabsList>
|
<TabsList>
|
||||||
<TabsTrigger value="ativos">Ativos</TabsTrigger>
|
<TabsTrigger value="ativos">Ativos</TabsTrigger>
|
||||||
<TabsTrigger value="arquivados">Arquivados</TabsTrigger>
|
<TabsTrigger value="inativos">Inativos</TabsTrigger>
|
||||||
</TabsList>
|
</TabsList>
|
||||||
|
|
||||||
<TabsContent value="ativos" className="mt-4">
|
<TabsContent value="ativos" className="mt-4">
|
||||||
{renderCardList(orderedCards, false)}
|
{renderCardList(orderedCards, false)}
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
|
|
||||||
<TabsContent value="arquivados" className="mt-4">
|
<TabsContent value="inativos" className="mt-4">
|
||||||
{renderCardList(orderedArchivedCards, true)}
|
{renderCardList(orderedArchivedCards, true)}
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ export function BillListItem({ bill, period, onPay }: BillListItemProps) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<li className="flex items-center justify-between transition-all duration-300 py-1.5">
|
<li className="flex items-center justify-between transition-all duration-300 py-1.5">
|
||||||
<div className="flex min-w-0 flex-1 items-center gap-2 py-1">
|
<div className="flex min-w-0 flex-1 items-center gap-2 py-0.5">
|
||||||
<EstablishmentLogo name={bill.name} size={37} />
|
<EstablishmentLogo name={bill.name} size={37} />
|
||||||
|
|
||||||
<div className="min-w-0">
|
<div className="min-w-0">
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import {
|
|||||||
TooltipTrigger,
|
TooltipTrigger,
|
||||||
} from "@/shared/components/ui/tooltip";
|
} from "@/shared/components/ui/tooltip";
|
||||||
import { WidgetEmptyState } from "@/shared/components/widget-empty-state";
|
import { WidgetEmptyState } from "@/shared/components/widget-empty-state";
|
||||||
|
import { isAccountInactive } from "@/shared/lib/accounts/constants";
|
||||||
import { resolveLogoSrc } from "@/shared/lib/logo";
|
import { resolveLogoSrc } from "@/shared/lib/logo";
|
||||||
import { formatPeriodForUrl } from "@/shared/utils/period";
|
import { formatPeriodForUrl } from "@/shared/utils/period";
|
||||||
|
|
||||||
@@ -42,12 +43,15 @@ export function MyAccountsWidget({
|
|||||||
}: MyAccountsWidgetProps) {
|
}: MyAccountsWidgetProps) {
|
||||||
const [isPending, startTransition] = useTransition();
|
const [isPending, startTransition] = useTransition();
|
||||||
|
|
||||||
const excludedAccountsCount = accounts.filter(
|
const activeAccounts = accounts.filter(
|
||||||
|
(account) => !isAccountInactive(account.status),
|
||||||
|
);
|
||||||
|
const excludedAccountsCount = activeAccounts.filter(
|
||||||
(account) => account.excludeFromBalance,
|
(account) => account.excludeFromBalance,
|
||||||
).length;
|
).length;
|
||||||
const visibleAccounts = showExcludedAccounts
|
const visibleAccounts = showExcludedAccounts
|
||||||
? accounts
|
? activeAccounts
|
||||||
: accounts.filter((account) => !account.excludeFromBalance);
|
: activeAccounts.filter((account) => !account.excludeFromBalance);
|
||||||
const displayedAccounts = visibleAccounts.slice(0, 5);
|
const displayedAccounts = visibleAccounts.slice(0, 5);
|
||||||
const remainingCount = visibleAccounts.length - displayedAccounts.length;
|
const remainingCount = visibleAccounts.length - displayedAccounts.length;
|
||||||
const hiddenExcludedAccountsCount = showExcludedAccounts
|
const hiddenExcludedAccountsCount = showExcludedAccounts
|
||||||
@@ -117,7 +121,7 @@ export function MyAccountsWidget({
|
|||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
{accounts.length === 0 ? (
|
{activeAccounts.length === 0 ? (
|
||||||
<div className="-mt-10">
|
<div className="-mt-10">
|
||||||
<WidgetEmptyState
|
<WidgetEmptyState
|
||||||
icon={
|
icon={
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ const formatOccurrences = (value: number | null) => {
|
|||||||
return "Recorrência contínua";
|
return "Recorrência contínua";
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${value} recorrências`;
|
return `${value} recorrências mensais`;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function RecurringExpensesWidget({
|
export function RecurringExpensesWidget({
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import {
|
|||||||
RiFileList2Line,
|
RiFileList2Line,
|
||||||
RiInboxUnarchiveLine,
|
RiInboxUnarchiveLine,
|
||||||
RiPencilLine,
|
RiPencilLine,
|
||||||
|
RiSubtractLine,
|
||||||
} from "@remixicon/react";
|
} from "@remixicon/react";
|
||||||
import {
|
import {
|
||||||
buildNoteDisplayTitle,
|
buildNoteDisplayTitle,
|
||||||
@@ -101,7 +102,7 @@ export function NoteCard({
|
|||||||
{task.completed ? (
|
{task.completed ? (
|
||||||
<RiCheckLine className="h-4 w-4 text-success" />
|
<RiCheckLine className="h-4 w-4 text-success" />
|
||||||
) : (
|
) : (
|
||||||
<div className="h-4 w-4 rounded-sm border border-input" />
|
<RiSubtractLine className="h-4 w-4 text-muted-foreground" />
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<span
|
<span
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { RiCheckLine } from "@remixicon/react";
|
import { RiCheckLine, RiSubtractLine } from "@remixicon/react";
|
||||||
import {
|
import {
|
||||||
buildNoteDisplayTitle,
|
buildNoteDisplayTitle,
|
||||||
formatNoteCreatedAtLong,
|
formatNoteCreatedAtLong,
|
||||||
@@ -69,7 +69,7 @@ export function NoteDetailsDialog({
|
|||||||
{task.completed ? (
|
{task.completed ? (
|
||||||
<RiCheckLine className="h-4 w-4 text-success" />
|
<RiCheckLine className="h-4 w-4 text-success" />
|
||||||
) : (
|
) : (
|
||||||
<div className="h-4 w-4 rounded-sm border border-input" />
|
<RiSubtractLine className="h-4 w-4 text-muted-foreground" />
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<span
|
<span
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { useEffect, useState } from "react";
|
import Image from "next/image";
|
||||||
|
import {
|
||||||
|
type ComponentType,
|
||||||
|
type CSSProperties,
|
||||||
|
useEffect,
|
||||||
|
useState,
|
||||||
|
} from "react";
|
||||||
import {
|
import {
|
||||||
currencyFormatter,
|
currencyFormatter,
|
||||||
formatCondition,
|
formatCondition,
|
||||||
@@ -8,6 +14,11 @@ import {
|
|||||||
formatPeriod,
|
formatPeriod,
|
||||||
} from "@/features/transactions/formatting-helpers";
|
} from "@/features/transactions/formatting-helpers";
|
||||||
import { TransactionTypeBadge } from "@/shared/components/transaction-type-badge";
|
import { TransactionTypeBadge } from "@/shared/components/transaction-type-badge";
|
||||||
|
import {
|
||||||
|
Avatar,
|
||||||
|
AvatarFallback,
|
||||||
|
AvatarImage,
|
||||||
|
} from "@/shared/components/ui/avatar";
|
||||||
import { Badge } from "@/shared/components/ui/badge";
|
import { Badge } from "@/shared/components/ui/badge";
|
||||||
import { Button } from "@/shared/components/ui/button";
|
import { Button } from "@/shared/components/ui/button";
|
||||||
import {
|
import {
|
||||||
@@ -20,8 +31,11 @@ import {
|
|||||||
DialogTitle,
|
DialogTitle,
|
||||||
} from "@/shared/components/ui/dialog";
|
} from "@/shared/components/ui/dialog";
|
||||||
import { Separator } from "@/shared/components/ui/separator";
|
import { Separator } from "@/shared/components/ui/separator";
|
||||||
|
import { resolveLogoSrc } from "@/shared/lib/logo";
|
||||||
|
import { getAvatarSrc } from "@/shared/lib/payers/utils";
|
||||||
|
import { getCategoryColorFromName } from "@/shared/utils/category-colors";
|
||||||
import { parseLocalDateString } from "@/shared/utils/date";
|
import { parseLocalDateString } from "@/shared/utils/date";
|
||||||
import { getPaymentMethodIcon } from "@/shared/utils/icons";
|
import { getIconComponent, getPaymentMethodIcon } from "@/shared/utils/icons";
|
||||||
import { AttachmentSection } from "../attachments/attachment-section";
|
import { AttachmentSection } from "../attachments/attachment-section";
|
||||||
import { InstallmentTimeline } from "../shared/installment-timeline";
|
import { InstallmentTimeline } from "../shared/installment-timeline";
|
||||||
import type { TransactionItem } from "../types";
|
import type { TransactionItem } from "../types";
|
||||||
@@ -64,9 +78,6 @@ export function TransactionDetailsDialog({
|
|||||||
: 0;
|
: 0;
|
||||||
|
|
||||||
const isBoleto = transaction.paymentMethod === "Boleto";
|
const isBoleto = transaction.paymentMethod === "Boleto";
|
||||||
const shortTransactionId = `…${
|
|
||||||
transaction.id.split("-").at(-1) ?? transaction.id
|
|
||||||
}`;
|
|
||||||
|
|
||||||
const handleEdit = () => {
|
const handleEdit = () => {
|
||||||
onOpenChange(false);
|
onOpenChange(false);
|
||||||
@@ -89,21 +100,21 @@ export function TransactionDetailsDialog({
|
|||||||
<div className="flex items-start justify-between gap-3">
|
<div className="flex items-start justify-between gap-3">
|
||||||
<div className="min-w-0">
|
<div className="min-w-0">
|
||||||
<p className="text-xs uppercase tracking-wide text-muted-foreground">
|
<p className="text-xs uppercase tracking-wide text-muted-foreground">
|
||||||
Resumo
|
Total
|
||||||
</p>
|
</p>
|
||||||
<p className="mt-1 text-2xl font-semibold">
|
<p className="mt-1 text-2xl font-semibold">
|
||||||
{currencyFormatter.format(valorTotal)}
|
{currencyFormatter.format(valorTotal)}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<Badge
|
<Badge
|
||||||
variant="secondary"
|
variant={transaction.isSettled ? "secondary" : "info"}
|
||||||
className={
|
className={
|
||||||
transaction.isSettled
|
transaction.isSettled
|
||||||
? "text-success bg-success/10"
|
? "text-success bg-success/10"
|
||||||
: "text-muted-foreground"
|
: undefined
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{transaction.isSettled ? "Pago" : "Pendente"}
|
{transaction.isSettled ? "Pago" : "Em aberto"}
|
||||||
</Badge>
|
</Badge>
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-3 flex flex-wrap items-center gap-2 text-xs text-muted-foreground">
|
<div className="mt-3 flex flex-wrap items-center gap-2 text-xs text-muted-foreground">
|
||||||
@@ -125,7 +136,7 @@ export function TransactionDetailsDialog({
|
|||||||
<ul className="min-w-0 grid gap-2 rounded-lg border p-3">
|
<ul className="min-w-0 grid gap-2 rounded-lg border p-3">
|
||||||
<DetailRow
|
<DetailRow
|
||||||
label="ID"
|
label="ID"
|
||||||
value={shortTransactionId}
|
value={transaction.id}
|
||||||
valueClassName="font-mono"
|
valueClassName="font-mono"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
@@ -144,19 +155,94 @@ export function TransactionDetailsDialog({
|
|||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<DetailRow
|
<li className="min-w-0 flex items-center justify-between gap-3">
|
||||||
label={transaction.cartaoName ? "Cartão" : "Conta"}
|
<span className="text-muted-foreground">
|
||||||
value={transaction.cartaoName ?? transaction.contaName ?? "—"}
|
{transaction.cartaoName ? "Cartão" : "Conta"}
|
||||||
/>
|
</span>
|
||||||
|
{(() => {
|
||||||
|
const accountLabel =
|
||||||
|
transaction.cartaoName ?? transaction.contaName;
|
||||||
|
if (!accountLabel) {
|
||||||
|
return <span className="min-w-0 truncate">—</span>;
|
||||||
|
}
|
||||||
|
const logoSrc = resolveLogoSrc(
|
||||||
|
transaction.cartaoLogo ?? transaction.contaLogo,
|
||||||
|
);
|
||||||
|
return (
|
||||||
|
<span className="inline-flex min-w-0 items-center gap-2">
|
||||||
|
{logoSrc && (
|
||||||
|
<Image
|
||||||
|
src={logoSrc}
|
||||||
|
alt={`Logo de ${accountLabel}`}
|
||||||
|
width={20}
|
||||||
|
height={20}
|
||||||
|
className="shrink-0 rounded-full"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
<span className="min-w-0 truncate">{accountLabel}</span>
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
})()}
|
||||||
|
</li>
|
||||||
|
|
||||||
<DetailRow
|
<li className="min-w-0 flex items-center justify-between gap-3">
|
||||||
label="Categoria"
|
<span className="text-muted-foreground">Categoria</span>
|
||||||
value={transaction.categoriaName ?? "—"}
|
{(() => {
|
||||||
/>
|
if (!transaction.categoriaName) {
|
||||||
|
return <span className="min-w-0 truncate">—</span>;
|
||||||
|
}
|
||||||
|
const IconComponent = transaction.categoriaIcon
|
||||||
|
? (getIconComponent(
|
||||||
|
transaction.categoriaIcon,
|
||||||
|
) as ComponentType<{
|
||||||
|
className?: string;
|
||||||
|
style?: CSSProperties;
|
||||||
|
}> | null)
|
||||||
|
: null;
|
||||||
|
const color = getCategoryColorFromName(
|
||||||
|
transaction.categoriaName,
|
||||||
|
);
|
||||||
|
return (
|
||||||
|
<span className="inline-flex min-w-0 items-center gap-1.5">
|
||||||
|
{IconComponent ? (
|
||||||
|
<IconComponent
|
||||||
|
className="size-3.5 shrink-0"
|
||||||
|
style={{ color }}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
<span className="min-w-0 truncate">
|
||||||
|
{transaction.categoriaName}
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
})()}
|
||||||
|
</li>
|
||||||
|
|
||||||
<li className="flex items-center justify-between">
|
<li className="min-w-0 flex items-center justify-between gap-3">
|
||||||
<span className="text-muted-foreground">Responsável</span>
|
<span className="text-muted-foreground">Responsável</span>
|
||||||
<span>{transaction.pagadorName}</span>
|
{(() => {
|
||||||
|
const label = transaction.pagadorName?.trim() || "—";
|
||||||
|
if (label === "—") {
|
||||||
|
return <span className="min-w-0 truncate">—</span>;
|
||||||
|
}
|
||||||
|
const displayName = label.split(/\s+/)[0] ?? label;
|
||||||
|
const avatarSrc = getAvatarSrc(transaction.pagadorAvatar);
|
||||||
|
const initial = displayName.charAt(0).toUpperCase() || "?";
|
||||||
|
return (
|
||||||
|
<span className="inline-flex min-w-0 items-center gap-2">
|
||||||
|
<Avatar className="size-5">
|
||||||
|
<AvatarImage
|
||||||
|
src={avatarSrc}
|
||||||
|
alt={`Avatar de ${label}`}
|
||||||
|
/>
|
||||||
|
<AvatarFallback className="text-[10px] font-medium uppercase">
|
||||||
|
{initial}
|
||||||
|
</AvatarFallback>
|
||||||
|
</Avatar>
|
||||||
|
<span className="min-w-0 truncate">{label}</span>
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
})()}
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
{isBoleto && transaction.dueDate && (
|
{isBoleto && transaction.dueDate && (
|
||||||
|
|||||||
@@ -93,7 +93,9 @@ export function PaymentMethodSection({
|
|||||||
? accountOptions.filter(
|
? accountOptions.filter(
|
||||||
(option) => option.accountType === "Pré-Pago | VR/VA",
|
(option) => option.accountType === "Pré-Pago | VR/VA",
|
||||||
)
|
)
|
||||||
: accountOptions;
|
: formState.paymentMethod === "Dinheiro"
|
||||||
|
? accountOptions.filter((option) => option.accountType === "Dinheiro")
|
||||||
|
: accountOptions;
|
||||||
|
|
||||||
const hasSecondaryColumn = isCartaoSelected || showContaSelect;
|
const hasSecondaryColumn = isCartaoSelected || showContaSelect;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import { RiArrowDownFill, RiCheckLine } from "@remixicon/react";
|
|
||||||
import {
|
import {
|
||||||
calculateLastInstallmentDate,
|
calculateLastInstallmentDate,
|
||||||
formatCurrentInstallment,
|
formatCurrentInstallment,
|
||||||
@@ -25,68 +24,52 @@ export function InstallmentTimeline({
|
|||||||
totalInstallments,
|
totalInstallments,
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
const progress =
|
||||||
<div className="relative flex items-center justify-between px-4 py-4">
|
totalInstallments > 1
|
||||||
{/* Linha de conexão */}
|
? ((currentInstallment - 1) / (totalInstallments - 1)) * 100
|
||||||
<div className="absolute left-0 right-0 top-6 h-0.5 bg-border">
|
: 100;
|
||||||
<div
|
|
||||||
className="h-full bg-success transition-all duration-300"
|
|
||||||
style={{
|
|
||||||
width: `${
|
|
||||||
((currentInstallment - 1) / (totalInstallments - 1)) * 100
|
|
||||||
}%`,
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Ponto 1: Data de Compra */}
|
const remaining = totalInstallments - currentInstallment;
|
||||||
<div className="relative z-10 flex flex-col items-center gap-2">
|
const isLast = currentInstallment === totalInstallments;
|
||||||
<div className="flex size-4 items-center justify-center rounded-full border-2 border-success bg-success shadow-sm">
|
|
||||||
<RiCheckLine className="size-5 text-white" />
|
return (
|
||||||
</div>
|
<div className="flex flex-col gap-3 py-1">
|
||||||
<div className="flex flex-col items-center">
|
<div className="flex items-start justify-between text-xs">
|
||||||
<span className="text-xs font-medium text-foreground">
|
<div className="flex flex-col gap-0.5">
|
||||||
Data de Compra
|
<span className="text-muted-foreground">Compra</span>
|
||||||
</span>
|
<span className="font-medium text-foreground">
|
||||||
<span className="text-xs text-muted-foreground">
|
|
||||||
{formatPurchaseDate(purchaseDate)}
|
{formatPurchaseDate(purchaseDate)}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div className="flex flex-col items-end gap-0.5">
|
||||||
|
<span className="text-muted-foreground">Quitação estimada</span>
|
||||||
{/* Ponto 2: Parcela Atual */}
|
<span className="font-medium text-foreground">
|
||||||
<div className="relative z-10 flex flex-col items-center gap-2">
|
|
||||||
<div
|
|
||||||
className={`flex size-4 items-center justify-center rounded-full border-2 shadow-sm border-warning bg-warning`}
|
|
||||||
>
|
|
||||||
<RiArrowDownFill className="size-5 text-white" />
|
|
||||||
</div>
|
|
||||||
<div className="flex flex-col items-center">
|
|
||||||
<span className="text-xs font-medium text-foreground">
|
|
||||||
Parcela Atual
|
|
||||||
</span>
|
|
||||||
<span className="text-xs text-muted-foreground">
|
|
||||||
{formatCurrentInstallment(currentInstallment, totalInstallments)}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Ponto 3: Última Parcela */}
|
|
||||||
<div className="relative z-10 flex flex-col items-center gap-2">
|
|
||||||
<div
|
|
||||||
className={`flex size-4 items-center justify-center rounded-full border-2 shadow-sm border-success bg-success`}
|
|
||||||
>
|
|
||||||
<RiCheckLine className="size-5 text-white" />
|
|
||||||
</div>
|
|
||||||
<div className="flex flex-col items-center">
|
|
||||||
<span className="text-xs font-medium text-foreground">
|
|
||||||
Última Parcela
|
|
||||||
</span>
|
|
||||||
<span className="text-xs text-muted-foreground">
|
|
||||||
{formatLastInstallmentDate(lastInstallmentDate)}
|
{formatLastInstallmentDate(lastInstallmentDate)}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div className="relative h-1.5 rounded-full bg-border">
|
||||||
|
<div
|
||||||
|
className="absolute left-0 top-0 h-full rounded-full bg-success transition-all duration-300"
|
||||||
|
style={{ width: `${progress}%` }}
|
||||||
|
/>
|
||||||
|
<div
|
||||||
|
className="absolute top-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-success bg-background shadow-sm transition-all duration-300"
|
||||||
|
style={{ left: `clamp(6px, ${progress}%, calc(100% - 6px))` }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="flex items-center justify-between text-xs">
|
||||||
|
<span className="font-semibold text-foreground">
|
||||||
|
{formatCurrentInstallment(currentInstallment, totalInstallments)}
|
||||||
|
</span>
|
||||||
|
<span className="text-muted-foreground">
|
||||||
|
{isLast
|
||||||
|
? "Última parcela"
|
||||||
|
: `${remaining} restante${remaining > 1 ? "s" : ""}`}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,13 +12,17 @@ import {
|
|||||||
RiHistoryLine,
|
RiHistoryLine,
|
||||||
RiMoreFill,
|
RiMoreFill,
|
||||||
RiPencilLine,
|
RiPencilLine,
|
||||||
RiRefund2Line,
|
RiRefundLine,
|
||||||
RiTimeLine,
|
RiTimeLine,
|
||||||
} from "@remixicon/react";
|
} from "@remixicon/react";
|
||||||
import type { ColumnDef } from "@tanstack/react-table";
|
import type { ColumnDef } from "@tanstack/react-table";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { DEFAULT_LANCAMENTOS_COLUMN_ORDER } from "@/features/transactions/column-order";
|
import { DEFAULT_LANCAMENTOS_COLUMN_ORDER } from "@/features/transactions/column-order";
|
||||||
|
import {
|
||||||
|
CREDIT_CARD_PAYMENT_METHOD,
|
||||||
|
SETTLEABLE_PAYMENT_METHODS,
|
||||||
|
} from "@/features/transactions/constants";
|
||||||
import {
|
import {
|
||||||
CategoryIconBadge,
|
CategoryIconBadge,
|
||||||
EstablishmentLogo,
|
EstablishmentLogo,
|
||||||
@@ -195,7 +199,7 @@ function buildColumns({
|
|||||||
|
|
||||||
const isBoleto = paymentMethod === "Boleto" && dueDate;
|
const isBoleto = paymentMethod === "Boleto" && dueDate;
|
||||||
const dueDateLabel =
|
const dueDateLabel =
|
||||||
isBoleto && dueDate ? `venc. ${formatDate(dueDate)}` : null;
|
isBoleto && dueDate ? `Venc. ${formatDate(dueDate)}` : null;
|
||||||
const hasNote = Boolean(note?.trim().length);
|
const hasNote = Boolean(note?.trim().length);
|
||||||
const isLastInstallment =
|
const isLastInstallment =
|
||||||
currentInstallment === installmentCount &&
|
currentInstallment === installmentCount &&
|
||||||
@@ -348,10 +352,12 @@ function buildColumns({
|
|||||||
cell: ({ row }) => {
|
cell: ({ row }) => {
|
||||||
const isReceita = row.original.transactionType === "Receita";
|
const isReceita = row.original.transactionType === "Receita";
|
||||||
const isTransfer = row.original.transactionType === "Transferência";
|
const isTransfer = row.original.transactionType === "Transferência";
|
||||||
|
const isIncomingTransfer =
|
||||||
|
isTransfer && Number(row.original.amount) > 0;
|
||||||
return (
|
return (
|
||||||
<MoneyValues
|
<MoneyValues
|
||||||
amount={row.original.amount}
|
amount={row.original.amount}
|
||||||
showPositiveSign={isReceita}
|
showPositiveSign={isReceita || isIncomingTransfer}
|
||||||
className={cn(
|
className={cn(
|
||||||
"whitespace-nowrap",
|
"whitespace-nowrap",
|
||||||
isReceita ? "text-success" : "text-foreground",
|
isReceita ? "text-success" : "text-foreground",
|
||||||
@@ -497,20 +503,8 @@ function buildColumns({
|
|||||||
return (
|
return (
|
||||||
<Tooltip>
|
<Tooltip>
|
||||||
<TooltipTrigger asChild>
|
<TooltipTrigger asChild>
|
||||||
<Link
|
<Link href={href} className="hover:underline">
|
||||||
href={href}
|
{content}
|
||||||
className="inline-flex items-center gap-2 hover:underline"
|
|
||||||
>
|
|
||||||
{logoSrc && (
|
|
||||||
<Image
|
|
||||||
src={logoSrc}
|
|
||||||
alt={`Logo de ${label}`}
|
|
||||||
width={30}
|
|
||||||
height={30}
|
|
||||||
className="rounded-full"
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
<span className="truncate">{label}</span>
|
|
||||||
</Link>
|
</Link>
|
||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipContent side="top">
|
<TooltipContent side="top">
|
||||||
@@ -553,27 +547,14 @@ function buildColumns({
|
|||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
{(() => {
|
{(() => {
|
||||||
const paymentMethod = row.original.paymentMethod;
|
const paymentMethod = row.original.paymentMethod;
|
||||||
const showSettlementButton = [
|
const isCreditCard = paymentMethod === CREDIT_CARD_PAYMENT_METHOD;
|
||||||
"Pix",
|
const canToggleSettlement = (
|
||||||
"Boleto",
|
SETTLEABLE_PAYMENT_METHODS as readonly string[]
|
||||||
"Cartão de crédito",
|
).includes(paymentMethod);
|
||||||
"Dinheiro",
|
|
||||||
"Cartão de débito",
|
|
||||||
"Transferência bancária",
|
|
||||||
"Pré-Pago | VR/VA",
|
|
||||||
].includes(paymentMethod);
|
|
||||||
|
|
||||||
if (!showSettlementButton) return null;
|
if (!canToggleSettlement && !isCreditCard) return null;
|
||||||
|
|
||||||
const canToggleSettlement =
|
if (isCreditCard) {
|
||||||
paymentMethod === "Pix" ||
|
|
||||||
paymentMethod === "Boleto" ||
|
|
||||||
paymentMethod === "Dinheiro" ||
|
|
||||||
paymentMethod === "Cartão de débito" ||
|
|
||||||
paymentMethod === "Transferência bancária" ||
|
|
||||||
paymentMethod === "Pré-Pago | VR/VA";
|
|
||||||
|
|
||||||
if (!canToggleSettlement) {
|
|
||||||
const invoicePaid = Boolean(row.original.isSettled);
|
const invoicePaid = Boolean(row.original.isSettled);
|
||||||
return (
|
return (
|
||||||
<Tooltip>
|
<Tooltip>
|
||||||
@@ -701,7 +682,7 @@ function buildColumns({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<DropdownMenuItem onSelect={() => handleRefund(item)}>
|
<DropdownMenuItem onSelect={() => handleRefund(item)}>
|
||||||
<RiRefund2Line className="size-4" />
|
<RiRefundLine className="size-4" />
|
||||||
Reembolso
|
Reembolso
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
);
|
);
|
||||||
@@ -717,7 +698,6 @@ function buildColumns({
|
|||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* Opções de Antecipação */}
|
|
||||||
{row.original.userId === currentUserId &&
|
{row.original.userId === currentUserId &&
|
||||||
row.original.condition === "Parcelado" &&
|
row.original.condition === "Parcelado" &&
|
||||||
row.original.seriesId && (
|
row.original.seriesId && (
|
||||||
|
|||||||
@@ -20,6 +20,12 @@ export const PAYMENT_METHODS = [
|
|||||||
"Transferência bancária",
|
"Transferência bancária",
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
|
export const CREDIT_CARD_PAYMENT_METHOD = "Cartão de crédito" as const;
|
||||||
|
|
||||||
|
export const SETTLEABLE_PAYMENT_METHODS = PAYMENT_METHODS.filter(
|
||||||
|
(method) => method !== CREDIT_CARD_PAYMENT_METHOD,
|
||||||
|
);
|
||||||
|
|
||||||
export const SETTLED_FILTER_VALUES = {
|
export const SETTLED_FILTER_VALUES = {
|
||||||
PAID: "pago",
|
PAID: "pago",
|
||||||
UNPAID: "nao-pago",
|
UNPAID: "nao-pago",
|
||||||
|
|||||||
@@ -7,9 +7,12 @@ import { cn } from "@/shared/utils/ui";
|
|||||||
|
|
||||||
function Progress({
|
function Progress({
|
||||||
className,
|
className,
|
||||||
|
indicatorClassName,
|
||||||
value,
|
value,
|
||||||
...props
|
...props
|
||||||
}: React.ComponentProps<typeof ProgressPrimitive.Root>) {
|
}: React.ComponentProps<typeof ProgressPrimitive.Root> & {
|
||||||
|
indicatorClassName?: string;
|
||||||
|
}) {
|
||||||
return (
|
return (
|
||||||
<ProgressPrimitive.Root
|
<ProgressPrimitive.Root
|
||||||
data-slot="progress"
|
data-slot="progress"
|
||||||
@@ -21,7 +24,10 @@ function Progress({
|
|||||||
>
|
>
|
||||||
<ProgressPrimitive.Indicator
|
<ProgressPrimitive.Indicator
|
||||||
data-slot="progress-indicator"
|
data-slot="progress-indicator"
|
||||||
className="bg-primary h-full w-full flex-1 transition-all"
|
className={cn(
|
||||||
|
"bg-primary h-full w-full flex-1 transition-all",
|
||||||
|
indicatorClassName,
|
||||||
|
)}
|
||||||
style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
|
style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
|
||||||
/>
|
/>
|
||||||
</ProgressPrimitive.Root>
|
</ProgressPrimitive.Root>
|
||||||
|
|||||||
@@ -31,3 +31,6 @@ export const buildRefundNote = (originalTransactionId: string) =>
|
|||||||
|
|
||||||
export const isRefundNote = (note: string | null | undefined) =>
|
export const isRefundNote = (note: string | null | undefined) =>
|
||||||
note?.startsWith(REFUND_NOTE_PREFIX) ?? false;
|
note?.startsWith(REFUND_NOTE_PREFIX) ?? false;
|
||||||
|
|
||||||
|
export const isAccountInactive = (status: string | null | undefined) =>
|
||||||
|
status?.toLowerCase() === "inativa";
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
export const TRANSFER_CATEGORY_NAME = "Transferência interna";
|
export const TRANSFER_CATEGORY_NAME = "Transferência interna";
|
||||||
export const TRANSFER_ESTABLISHMENT_SAIDA = "Saída - Transf. entre contas";
|
export const TRANSFER_ESTABLISHMENT_SAIDA = "Saída - Transf. entre contas";
|
||||||
export const TRANSFER_ESTABLISHMENT_ENTRADA = "Entrada - Transf. entre contas";
|
export const TRANSFER_ESTABLISHMENT_ENTRADA = "Entrada - Transf. entre contas";
|
||||||
export const TRANSFER_PAYMENT_METHOD = "Pix";
|
export const TRANSFER_PAYMENT_METHOD = "Transferência bancária";
|
||||||
export const TRANSFER_CONDITION = "À vista";
|
export const TRANSFER_CONDITION = "À vista";
|
||||||
|
|||||||
@@ -36,13 +36,37 @@ export const getConditionIcon = (condition: string): ReactNode => {
|
|||||||
return registry[key] ?? null;
|
return registry[key] ?? null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getAccountTypeIcon = (accountType: string): ReactNode => {
|
||||||
|
const key = normalizeKey(accountType);
|
||||||
|
|
||||||
|
const registry: Record<string, ReactNode> = {
|
||||||
|
contacorrente: <RemixIcons.RiBankLine className={ICON_CLASS} aria-hidden />,
|
||||||
|
contapoupanca: (
|
||||||
|
<RemixIcons.RiSafe2Line className={ICON_CLASS} aria-hidden />
|
||||||
|
),
|
||||||
|
carteiradigital: (
|
||||||
|
<RemixIcons.RiWalletLine className={ICON_CLASS} aria-hidden />
|
||||||
|
),
|
||||||
|
containvestimento: (
|
||||||
|
<RemixIcons.RiFundsLine className={ICON_CLASS} aria-hidden />
|
||||||
|
),
|
||||||
|
prepagovrva: <RemixIcons.RiCouponLine className={ICON_CLASS} aria-hidden />,
|
||||||
|
dinheiro: <RemixIcons.RiCashLine className={ICON_CLASS} aria-hidden />,
|
||||||
|
outros: <RemixIcons.RiMoreFill className={ICON_CLASS} aria-hidden />,
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
registry[key] ?? (
|
||||||
|
<RemixIcons.RiBankLine className={ICON_CLASS} aria-hidden />
|
||||||
|
)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
export const getPaymentMethodIcon = (paymentMethod: string): ReactNode => {
|
export const getPaymentMethodIcon = (paymentMethod: string): ReactNode => {
|
||||||
const key = normalizeKey(paymentMethod);
|
const key = normalizeKey(paymentMethod);
|
||||||
|
|
||||||
const registry: Record<string, ReactNode> = {
|
const registry: Record<string, ReactNode> = {
|
||||||
dinheiro: (
|
dinheiro: <RemixIcons.RiCashLine className={ICON_CLASS} aria-hidden />,
|
||||||
<RemixIcons.RiMoneyDollarCircleLine className={ICON_CLASS} aria-hidden />
|
|
||||||
),
|
|
||||||
pix: <RemixIcons.RiPixLine className={ICON_CLASS} aria-hidden />,
|
pix: <RemixIcons.RiPixLine className={ICON_CLASS} aria-hidden />,
|
||||||
boleto: <RemixIcons.RiBarcodeLine className={ICON_CLASS} aria-hidden />,
|
boleto: <RemixIcons.RiBarcodeLine className={ICON_CLASS} aria-hidden />,
|
||||||
credito: (
|
credito: (
|
||||||
|
|||||||
Reference in New Issue
Block a user