From 5c38c1427a0c6c62f1bbc6724233a71d931ac431 Mon Sep 17 00:00:00 2001 From: Bernd Storath <32197462+kaaax0815@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:57:02 +0200 Subject: [PATCH 01/31] security: document rate limiting (#2780) document rate limiting --- .../advanced/config/optional-config.md | 6 ++-- docs/content/examples/tutorials/caddy.md | 14 ++++++++ docs/content/examples/tutorials/traefik.md | 35 ++++++++++++++++++- src/server/api/auth/password.post.ts | 2 ++ src/server/api/auth/verify-2fa.post.ts | 2 ++ src/server/routes/cnf/[oneTimeLink].ts | 2 ++ src/server/utils/securityLogger.ts | 17 +++++++++ src/server/utils/trustedProxy.ts | 9 +++++ src/test/unit/trustedProxy.spec.ts | 13 ++++++- 9 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 src/server/utils/securityLogger.ts diff --git a/docs/content/advanced/config/optional-config.md b/docs/content/advanced/config/optional-config.md index 1cafa65e..6728d187 100644 --- a/docs/content/advanced/config/optional-config.md +++ b/docs/content/advanced/config/optional-config.md @@ -11,7 +11,7 @@ You can set these environment variables to configure the container. They are not | `INSECURE` | `false` | `true` | If access over http is allowed | | `DISABLE_IPV6` | `false` | `true` | If IPv6 support should be disabled | | `DISABLE_VERSION_CHECK` | `false` | `true` | If wg-easy should check for new updates | -| `TRUSTED_PROXIES` | | `172.18.0.2,fd00:1234::/64` | Proxy IP addresses or CIDRs allowed to forward the request host | +| `TRUSTED_PROXIES` | | `172.18.0.2,fd00:1234::/64` | Proxy IP addresses or CIDRs allowed to forward request metadata | ## Trusted Proxies @@ -25,7 +25,9 @@ environment: ``` Only add the source addresses used by your reverse proxy. wg-easy only uses -`X-Forwarded-Host` when the request comes from one of these addresses. The +`X-Forwarded-Host` and `X-Forwarded-For` when the request comes from one of +these addresses. The forwarded client address is included in security logs so +that tools such as CrowdSec can identify failed authentication attempts. The request protocol remains controlled by `INSECURE`. Invalid addresses prevent wg-easy from starting so that configuration errors are not silently ignored. Restart the container after changing this setting. diff --git a/docs/content/examples/tutorials/caddy.md b/docs/content/examples/tutorials/caddy.md index c9373d92..d9d123b0 100644 --- a/docs/content/examples/tutorials/caddy.md +++ b/docs/content/examples/tutorials/caddy.md @@ -101,3 +101,17 @@ sudo docker compose up -d ``` You can now access `wg-easy` at [https://wg-easy.example.com](https://wg-easy.example.com) and start the setup. + +## Rate Limiting + +wg-easy does not implement rate limiting. Configure Caddy, a Caddy rate +limiting module, or an external security tool such as CrowdSec to limit requests +to these paths: + +- `/api/auth/password` +- `/api/auth/verify-2fa` +- `/cnf/*` + +Choose limits appropriate for your deployment. When using wg-easy security logs +for detection, configure [`TRUSTED_PROXIES`](../../advanced/config/optional-config.md#trusted-proxies) +so that logged events contain the original client IP address. diff --git a/docs/content/examples/tutorials/traefik.md b/docs/content/examples/tutorials/traefik.md index 1760f4f5..4369581a 100644 --- a/docs/content/examples/tutorials/traefik.md +++ b/docs/content/examples/tutorials/traefik.md @@ -22,7 +22,7 @@ File: `/etc/docker/containers/traefik/docker-compose.yml` ```yaml services: traefik: - image: traefik:3.3 + image: traefik:3.7 container_name: traefik restart: unless-stopped ports: @@ -184,3 +184,36 @@ sudo docker compose up -d ``` You can now access `wg-easy` at `https://wg-easy.$example.com$` and start the setup. + +## Rate Limiting + +wg-easy does not implement rate limiting. Configure a Traefik rate limit +middleware or an external security tool such as CrowdSec to limit requests to +these paths: + +- `/api/auth/password` +- `/api/auth/verify-2fa` +- `/cnf/*` + +Choose limits appropriate for your deployment. When using wg-easy security logs +for detection, configure [`TRUSTED_PROXIES`](../../advanced/config/optional-config.md#trusted-proxies) +so that logged events contain the original client IP address. + +For example, add these labels to the `wg-easy` service to allow an average of +five requests per minute per client IP, with a burst of five requests: + +```yaml +labels: + - 'traefik.http.routers.wg-easy-rate-limit.rule=Host(`wg-easy.$example.com$`) && (Path(`/api/auth/password`) || Path(`/api/auth/verify-2fa`) || PathPrefix(`/cnf/`))' + - 'traefik.http.routers.wg-easy-rate-limit.entrypoints=websecure' + - 'traefik.http.routers.wg-easy-rate-limit.service=wg-easy' + - 'traefik.http.routers.wg-easy-rate-limit.middlewares=wg-easy-rate-limit' + - 'traefik.http.routers.wg-easy-rate-limit.priority=100' + - 'traefik.http.middlewares.wg-easy-rate-limit.ratelimit.average=5' + - 'traefik.http.middlewares.wg-easy-rate-limit.ratelimit.period=1m' + - 'traefik.http.middlewares.wg-easy-rate-limit.ratelimit.burst=5' +``` + +The dedicated router applies the [rate limit middleware](https://doc.traefik.io/traefik/v3.7/reference/routing-configuration/http/middlewares/ratelimit/) +only to the sensitive paths. Adjust `average`, `period`, and `burst` for your +deployment. diff --git a/src/server/api/auth/password.post.ts b/src/server/api/auth/password.post.ts index 90c8fddc..33296c1a 100644 --- a/src/server/api/auth/password.post.ts +++ b/src/server/api/auth/password.post.ts @@ -2,6 +2,7 @@ import { createError, defineEventHandler, readValidatedBody } from 'h3'; import Database from '#server/utils/Database'; import { SERVER_DEBUG, WG_ENV } from '#server/utils/config'; +import { logSecurityEvent } from '#server/utils/securityLogger'; import { useWGSession } from '#server/utils/session'; import { assertUnreachable, validateZod } from '#server/utils/types'; import { UserLoginSchema } from '#db/repositories/user/types'; @@ -28,6 +29,7 @@ export default defineEventHandler(async (event) => { if (!result.success) { switch (result.error) { case 'INCORRECT_CREDENTIALS': + logSecurityEvent(event, 'password', username); throw createError({ statusCode: 401, statusMessage: 'Invalid username or password', diff --git a/src/server/api/auth/verify-2fa.post.ts b/src/server/api/auth/verify-2fa.post.ts index c0d40532..db3a4fba 100644 --- a/src/server/api/auth/verify-2fa.post.ts +++ b/src/server/api/auth/verify-2fa.post.ts @@ -1,6 +1,7 @@ import { createError, defineEventHandler, readValidatedBody } from 'h3'; import Database from '#server/utils/Database'; +import { logSecurityEvent } from '#server/utils/securityLogger'; import { useWGSession } from '#server/utils/session'; import { assertUnreachable, validateZod } from '#server/utils/types'; import { Verify2faSchema } from '#db/repositories/user/types'; @@ -34,6 +35,7 @@ export default defineEventHandler(async (event) => { switch (totpStatus) { case 'INVALID_TOTP_CODE': + logSecurityEvent(event, '2fa'); return { status: 'INVALID_TOTP_CODE' as const }; case 'USER_DISABLED': throw createError({ diff --git a/src/server/routes/cnf/[oneTimeLink].ts b/src/server/routes/cnf/[oneTimeLink].ts index a75b691d..0185ccf1 100644 --- a/src/server/routes/cnf/[oneTimeLink].ts +++ b/src/server/routes/cnf/[oneTimeLink].ts @@ -7,6 +7,7 @@ import { import Database from '#server/utils/Database'; import WireGuard from '#server/utils/WireGuard'; +import { logSecurityEvent } from '#server/utils/securityLogger'; import { validateZod } from '#server/utils/types'; import { OneTimeLinkGetSchema } from '#db/repositories/oneTimeLink/types'; @@ -18,6 +19,7 @@ export default defineEventHandler(async (event) => { const otl = await Database.oneTimeLinks.getByOtl(oneTimeLink); if (!otl) { + logSecurityEvent(event, 'one-time-link'); throw createError({ statusCode: 404, statusMessage: 'Invalid One Time Link', diff --git a/src/server/utils/securityLogger.ts b/src/server/utils/securityLogger.ts new file mode 100644 index 00000000..36c53ee2 --- /dev/null +++ b/src/server/utils/securityLogger.ts @@ -0,0 +1,17 @@ +import type { H3Event } from 'h3'; + +import { WG_ENV } from '#server/utils/config'; +import { getTrustedRequestIP } from '#server/utils/trustedProxy'; + +type SecurityEvent = 'password' | '2fa' | 'one-time-link'; + +export function logSecurityEvent( + event: H3Event, + type: SecurityEvent, + username?: string +) { + const user = username ? ` username=${JSON.stringify(username)}` : ''; + const ip = getTrustedRequestIP(event, WG_ENV.TRUSTED_PROXIES) ?? 'unknown'; + + console.warn(`Security failure: type=${type}${user} ip=${ip}`); +} diff --git a/src/server/utils/trustedProxy.ts b/src/server/utils/trustedProxy.ts index 6c195b5d..52de4d9e 100644 --- a/src/server/utils/trustedProxy.ts +++ b/src/server/utils/trustedProxy.ts @@ -61,6 +61,15 @@ export function getTrustedRequestURL( }); } +export function getTrustedRequestIP( + event: H3Event, + trustedProxies: readonly string[] +): string | undefined { + return getRequestIP(event, { + xForwardedFor: isRequestFromTrustedProxy(event, trustedProxies), + }); +} + function isRequestFromTrustedProxy( event: H3Event, trustedProxies: readonly string[] diff --git a/src/test/unit/trustedProxy.spec.ts b/src/test/unit/trustedProxy.spec.ts index 108c4f1d..f0c33a60 100644 --- a/src/test/unit/trustedProxy.spec.ts +++ b/src/test/unit/trustedProxy.spec.ts @@ -4,6 +4,7 @@ import { createEvent, type H3Event } from 'h3'; import { describe, expect, test } from 'vitest'; import { + getTrustedRequestIP, getTrustedRequestHost, getTrustedRequestURL, parseTrustedProxies, @@ -35,9 +36,11 @@ describe('trusted request helpers', () => { const event = createTestEvent('192.0.2.10', { host: 'wg-easy:51821', 'x-forwarded-host': 'vpn.example.com', + 'x-forwarded-for': '198.51.100.25', 'x-forwarded-proto': 'https', }); + expect(getTrustedRequestIP(event, ['10.0.0.0/8'])).toBe('192.0.2.10'); expect(getTrustedRequestHost(event, ['10.0.0.0/8'])).toBe('wg-easy:51821'); expect(getTrustedRequestURL(event, ['10.0.0.0/8']).origin).toBe( 'http://wg-easy:51821' @@ -50,9 +53,11 @@ describe('trusted request helpers', () => { const event = createTestEvent('10.0.0.2', { host: 'wg-easy:51821', 'x-forwarded-host': 'vpn.example.com:8443, wg-easy:51821', + 'x-forwarded-for': '198.51.100.25', 'x-forwarded-proto': 'HTTPS, http', }); + expect(getTrustedRequestIP(event, ['10.0.0.0/8'])).toBe('198.51.100.25'); expect(getTrustedRequestHost(event, ['10.0.0.0/8'])).toBe( 'vpn.example.com:8443' ); @@ -64,10 +69,16 @@ describe('trusted request helpers', () => { ); expect(event.node.req.headers['x-forwarded-proto']).toBe('HTTPS, http'); }); + + test('returns undefined when no request address is available', () => { + const event = createTestEvent(undefined, {}); + + expect(getTrustedRequestIP(event, ['10.0.0.0/8'])).toBeUndefined(); + }); }); function createTestEvent( - remoteAddress: string, + remoteAddress: string | undefined, headers: IncomingMessage['headers'] ): H3Event { const request = { From f5df5c9463fe6ea1019121199182b85dfcb17486 Mon Sep 17 00:00:00 2001 From: YellowNest <59575587+YellowNest@users.noreply.github.com> Date: Mon, 31 Aug 2026 13:40:12 +0200 Subject: [PATCH 02/31] i18n: add Swedish translation (#2784) --- src/i18n/i18n.config.ts | 2 + src/i18n/locales/sv.json | 310 +++++++++++++++++++++++++++++++++++++++ src/nuxt.config.ts | 5 + 3 files changed, 317 insertions(+) create mode 100644 src/i18n/locales/sv.json diff --git a/src/i18n/i18n.config.ts b/src/i18n/i18n.config.ts index b6ee1d47..76fe6c97 100644 --- a/src/i18n/i18n.config.ts +++ b/src/i18n/i18n.config.ts @@ -22,6 +22,7 @@ import hi from './locales/hi.json'; import gl from './locales/gl.json'; import cs from './locales/cs.json'; import vi from './locales/vi.json'; +import sv from './locales/sv.json'; export default defineI18nConfig(() => ({ legacy: false, @@ -51,5 +52,6 @@ export default defineI18nConfig(() => ({ gl, cs, vi, + sv, }, })); diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json new file mode 100644 index 00000000..7c8d0c74 --- /dev/null +++ b/src/i18n/locales/sv.json @@ -0,0 +1,310 @@ +{ + "pages": { + "me": "Konto", + "clients": "Klienter", + "admin": { + "panel": "Adminpanel", + "general": "Allmänt", + "config": "Konfiguration", + "interface": "Gränssnitt", + "hooks": "Hooks" + } + }, + "user": { + "email": "E-post" + }, + "me": { + "currentPassword": "Nuvarande lösenord", + "enable2fa": "Aktivera tvåfaktorsautentisering", + "enable2faDesc": "Skanna QR-koden med din autentiseringsapp eller ange nyckeln manuellt.", + "2faKey": "TOTP-nyckel", + "2faCodeDesc": "Ange koden från din autentiseringsapp.", + "disable2fa": "Inaktivera tvåfaktorsautentisering", + "disable2faDesc": "Ange ditt lösenord för att inaktivera tvåfaktorsautentisering.", + "linkOauth": "Länka ditt konto till en extern leverantör", + "unlinkOauth": "Ta bort länk", + "linkedWith": "Länkat till {provider}", + "providerDisabled": "Din länkade leverantör är inte aktiverad" + }, + "general": { + "name": "Namn", + "username": "Användarnamn", + "password": "Lösenord", + "newPassword": "Nytt lösenord", + "updatePassword": "Uppdatera lösenord", + "addPassword": "Lägg till lösenord", + "mtu": "MTU", + "allowedIps": "Tillåtna IP-adresser", + "dns": "DNS", + "persistentKeepalive": "Persistent Keepalive", + "logout": "Logga ut", + "continue": "Fortsätt", + "host": "Värd", + "port": "Port", + "yes": "Ja", + "no": "Nej", + "confirmPassword": "Bekräfta lösenord", + "loading": "Laddar...", + "2fa": "Tvåfaktorsautentisering", + "2faCode": "TOTP-kod", + "externalAuth": "Extern autentisering" + }, + "setup": { + "welcome": "Välkommen till den första konfigurationen av wg-easy", + "welcomeDesc": "Du har hittat det enklaste sättet att installera och hantera WireGuard på en Linux-värd", + "existingSetup": "Har du en befintlig konfiguration?", + "createAdminDesc": "Ange först ett administratörsanvändarnamn och ett starkt, säkert lösenord. Dessa uppgifter används för att logga in på adminpanelen.", + "setupConfigDesc": "Ange värd- och portinformation. Den används i klientkonfigurationen när WireGuard konfigureras på klienternas enheter.", + "setupMigrationDesc": "Ange säkerhetskopian om du vill migrera data från din tidigare version av wg-easy till den nya installationen.", + "upload": "Ladda upp", + "migration": "Återställ säkerhetskopian:", + "createAccount": "Skapa konto", + "successful": "Konfigurationen slutfördes", + "hostDesc": "Publikt värdnamn som klienterna ansluter till", + "portDesc": "Publik UDP-port som klienterna ansluter till och som WireGuard lyssnar på" + }, + "update": { + "updateAvailable": "Det finns en tillgänglig uppdatering!", + "update": "Uppdatera" + }, + "theme": { + "dark": "Mörkt tema", + "light": "Ljust tema", + "system": "Systemtema" + }, + "layout": { + "toggleCharts": "Visa/dölj diagram", + "donate": "Donera" + }, + "login": { + "signIn": "Logga in", + "signInWith": "Logga in med {provider}", + "or": "eller", + "rememberMe": "Kom ihåg mig", + "rememberMeDesc": "Fortsätt vara inloggad efter att webbläsaren stängts", + "insecure": "Du kan inte logga in via en osäker anslutning. Använd HTTPS.", + "2faRequired": "Tvåfaktorsautentisering krävs", + "2faWrong": "Koden för tvåfaktorsautentisering är felaktig", + "loginExpired": "Inloggningen har löpt ut. Försök igen" + }, + "client": { + "empty": "Det finns inga klienter ännu.", + "newShort": "Ny", + "sort": "Sortera", + "create": "Skapa klient", + "created": "Klienten skapades", + "new": "Ny klient", + "name": "Namn", + "expireDate": "Utgångsdatum", + "expireDateDesc": "Datum då klienten inaktiveras. Lämna tomt för permanent åtkomst", + "delete": "Ta bort", + "deleteClient": "Ta bort klient", + "deleteDialog": "Är du säker på att du vill ta bort {name}? Åtgärden kan inte ångras.", + "enabled": "Aktiverad", + "address": "Adress", + "serverAllowedIps": "Serverns tillåtna IP-adresser", + "otlDesc": "Generera en kort engångslänk", + "permanent": "Permanent", + "createdOn": "Skapad {date}", + "lastSeen": "Senast sedd {date}", + "totalDownload": "Totalt nedladdat: {total}", + "totalUpload": "Totalt uppladdat: {total}", + "newClient": "Ny klient", + "disableClient": "Inaktivera klient", + "enableClient": "Aktivera klient", + "noPrivKey": "Klienten saknar en känd privat nyckel. Konfigurationen kan inte skapas.", + "showQR": "Visa QR-kod", + "downloadConfig": "Ladda ner konfiguration", + "allowedIpsDesc": "Vilka IP-adresser som ska routas genom VPN-anslutningen (åsidosätter den globala konfigurationen)", + "serverAllowedIpsDesc": "Vilka IP-adresser servern ska routa till klienten", + "mtuDesc": "Anger maximal överföringsenhet (paketstorlek) för VPN-tunneln", + "persistentKeepaliveDesc": "Anger intervallet i sekunder för keepalive-paket. 0 inaktiverar funktionen", + "hooks": "Hooks", + "hooksDescription": "Hooks fungerar endast med wg-quick", + "hooksLeaveEmpty": "Endast för wg-quick. Lämna annars tomt", + "dnsDesc": "DNS-server som klienterna ska använda (åsidosätter den globala konfigurationen)", + "notConnected": "Klienten är inte ansluten", + "endpoint": "Slutpunkt", + "endpointDesc": "Klientens IP-adress från vilken WireGuard-anslutningen upprättas", + "search": "Sök klienter...", + "config": "Konfiguration", + "viewConfig": "Visa konfiguration", + "firewallIps": "Tillåtna IP-adresser i brandväggen", + "firewallIpsDesc": "Mål-IP-adresser/CIDR som klienten får åtkomst till (tillämpas på serversidan). Lämna tomt för att använda Tillåtna IP-adresser. Valfri filtrering efter port och protokoll stöds. Se dokumentationen för syntax.", + "downloadPng": "Ladda ner PNG", + "copyPng": "Kopiera PNG" + }, + "dialog": { + "change": "Ändra", + "cancel": "Avbryt", + "create": "Skapa" + }, + "toast": { + "success": "Klart", + "saved": "Sparat", + "error": "Fel", + "unknown": "Okänt fel. Se konsolen för mer information" + }, + "form": { + "actions": "Åtgärder", + "save": "Spara", + "revert": "Återställ", + "sectionGeneral": "Allmänt", + "sectionAdvanced": "Avancerat", + "noItems": "Inga objekt", + "nullNoItems": "Inga objekt. Den globala konfigurationen används", + "add": "Lägg till" + }, + "admin": { + "general": { + "sessionTimeout": "Sessionstimeout", + "sessionTimeoutDesc": "Sessionslängd för Kom ihåg mig (sekunder)", + "metrics": "Mätvärden", + "metricsPassword": "Lösenord", + "metricsPasswordDesc": "Bearer-lösenord för endpointen för mätvärden (lösenord eller Argon2-hash)", + "json": "JSON", + "jsonDesc": "Sökväg för mätvärden i JSON-format", + "prometheus": "Prometheus", + "prometheusDesc": "Sökväg för Prometheus-mätvärden" + }, + "config": { + "connection": "Anslutning", + "hostDesc": "Publikt värdnamn som klienterna ansluter till (ogiltigförklarar konfigurationen)", + "portDesc": "Publik UDP-port som klienterna ansluter till (ogiltigförklarar konfigurationen, du bör sannolikt även ändra gränssnittets port)", + "allowedIpsDesc": "Tillåtna IP-adresser som klienterna använder (global konfiguration)", + "dnsDesc": "DNS-server som klienterna använder (global konfiguration)", + "mtuDesc": "MTU som klienterna använder (endast för nya klienter)", + "persistentKeepaliveDesc": "Intervall i sekunder för att skicka keepalive-paket till servern. 0 = inaktiverat (endast för nya klienter)", + "suggest": "Föreslå", + "suggestDesc": "Välj en IP-adress eller ett värdnamn för värdfältet" + }, + "interface": { + "cidrSuccess": "CIDR ändrades", + "device": "Enhet", + "deviceDesc": "Ethernet-enhet som WireGuard-trafiken ska vidarebefordras genom", + "routingTable": "Routingtabell", + "routingTableDesc": "Routingtabell för WireGuard-rutter. Ange auto, off eller ett tabellnummer.", + "mtuDesc": "MTU som WireGuard använder", + "portDesc": "UDP-port som WireGuard lyssnar på (du bör sannolikt även ändra porten under Konfiguration)", + "changeCidr": "Ändra CIDR", + "restart": "Starta om gränssnitt", + "restartDesc": "Starta om WireGuard-gränssnittet", + "restartWarn": "Är du säker på att du vill starta om gränssnittet? Alla klienter kopplas från.", + "restartSuccess": "Gränssnittet startades om", + "firewall": "Trafikfiltrering", + "firewallEnabled": "Aktivera brandvägg per klient", + "firewallEnabledDesc": "Begränsa klienttrafik till specifika mål-IP-adresser med iptables. När funktionen är aktiverad kan varje klient konfigureras med tillåtna destinationer." + }, + "introText": "Välkommen till adminpanelen.\n\nHär kan du hantera allmänna inställningar, konfigurationen, gränssnittsinställningar och hooks.\n\nBörja genom att välja ett av avsnitten i sidofältet." + }, + "zod": { + "generic": { + "required": "{field} krävs", + "validNumber": "{field} måste vara ett giltigt tal", + "validNumberRange": "{field} måste vara ett giltigt tal eller talintervall", + "validString": "{field} måste vara en giltig sträng", + "validBoolean": "{field} måste vara ett giltigt booleskt värde", + "validArray": "{field} måste vara en giltig array", + "stringMin": "{field} måste innehålla minst {min} tecken", + "stringMax": "{field} får innehålla högst {max} tecken", + "numberMin": "{field} måste vara minst {min}", + "numberMax": "{field} får vara högst {max}" + }, + "client": { + "id": "Klient-ID", + "name": "Namn", + "expiresAt": "Går ut", + "address4": "IPv4-adress", + "address6": "IPv6-adress", + "serverAllowedIps": "Serverns tillåtna IP-adresser", + "firewallIps": "Tillåtna IP-adresser i brandväggen", + "firewallIpsInvalid": "Ogiltig IP-post för brandväggen. Se dokumentationen för syntax som stöds." + }, + "user": { + "username": "Användarnamn", + "password": "Lösenord", + "remember": "Kom ihåg", + "name": "Namn", + "email": "E-post", + "emailInvalid": "E-postadressen måste vara giltig", + "passwordMatch": "Lösenorden måste matcha", + "totpEnable": "Aktivera TOTP", + "totpEnableTrue": "TOTP måste vara aktiverat", + "totpCode": "TOTP-kod" + }, + "userConfig": { + "host": "Värd" + }, + "general": { + "sessionTimeout": "Sessionstimeout", + "metricsEnabled": "Mätvärden", + "metricsPassword": "Lösenord för mätvärden" + }, + "interface": { + "cidr": "CIDR", + "device": "Enhet", + "cidrValid": "CIDR måste vara giltigt", + "routingTable": "Routingtabellen måste vara auto, off eller ett tabellnummer" + }, + "otl": "Engångslänk", + "stringMalformed": "Strängen har felaktigt format", + "body": "Innehållet måste vara ett giltigt objekt", + "hook": "Hook", + "enabled": "Aktiverad", + "mtu": "MTU", + "port": "Port", + "persistentKeepalive": "Persistent Keepalive", + "address": "IP-adress", + "dns": "DNS", + "allowedIps": "Tillåtna IP-adresser", + "file": "Fil" + }, + "hooks": { + "preUp": "PreUp", + "postUp": "PostUp", + "preDown": "PreDown", + "postDown": "PostDown" + }, + "copy": { + "notSupported": "Kopiering stöds inte", + "copied": "Kopierat!", + "failed": "Kopieringen misslyckades", + "copy": "Kopiera" + }, + "awg": { + "jCLabel": "Antal skräppaket (Jc)", + "jCDescription": "Antal skräppaket som ska skickas (1–128, rekommenderat: 4–12)", + "jMinLabel": "Minsta storlek på skräppaket (Jmin)", + "jMinDescription": "Minsta storlek på skräppaket (0–1279*, rekommenderat: 8, måste vara < Jmax)", + "jMaxLabel": "Största storlek på skräppaket (Jmax)", + "jMaxDescription": "Största storlek på skräppaket (1–1280*, rekommenderat: 80, måste vara > Jmin)", + "s1Label": "Skräpstorlek för initieringspaket (S1)", + "s1Description": "Skräpstorlek för initieringspaket (0–1132[1280* - 148 = 1132], rekommenderat: 15–150, S1+56 ≠ S2)", + "s2Label": "Skräpstorlek för svarspaket (S2)", + "s2Description": "Skräpstorlek för svarspaket (0–1188[1280* - 92 = 1188], rekommenderat: 15–150)", + "s3Label": "Skräpstorlek för cookie-svarspaket (S3)", + "s3Description": "Skräpstorlek för cookie-svarspaket", + "s4Label": "Skräpstorlek för transportpaket (S4)", + "s4Description": "Skräpstorlek för transportpaket", + "h1Label": "Magisk header för initieringspaket (H1)", + "h1Description": "Headervärde eller intervall för initieringspaket (X eller X-Y, där X", + "i2Label": "Särskilt skräppaket 2 (I2)", + "i2Description": "Protokollefterliknande paket i hexformat: ", + "i3Label": "Särskilt skräppaket 3 (I3)", + "i3Description": "Protokollefterliknande paket i hexformat: ", + "i4Label": "Särskilt skräppaket 4 (I4)", + "i4Description": "Protokollefterliknande paket i hexformat: ", + "i5Label": "Särskilt skräppaket 5 (I5)", + "i5Description": "Protokollefterliknande paket i hexformat: ", + "mtuNote": "Värdena beror på MTU", + "obfuscationParameters": "Obfuskeringsparametrar för AmneziaWG" + } +} diff --git a/src/nuxt.config.ts b/src/nuxt.config.ts index 9216c99d..96d1753a 100644 --- a/src/nuxt.config.ts +++ b/src/nuxt.config.ts @@ -148,6 +148,11 @@ export default defineNuxtConfig({ language: 'vi-VN', name: 'Tiếng Việt', }, + { + code: 'sv', + language: 'sv-SE', + name: 'Svenska', + }, ], defaultLocale: 'en', vueI18n: './i18n.config.ts', From f14b03abc11a6b4f74b8227f18501d3b8a8331bc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:49:29 +0200 Subject: [PATCH 03/31] Update docker/setup-qemu-action digest to 1f40c72 (#2793) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/deploy-development.yml | 2 +- .github/workflows/deploy-edge.yml | 2 +- .github/workflows/deploy-pr.yml | 2 +- .github/workflows/deploy.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-development.yml b/.github/workflows/deploy-development.yml index 66e1c9fd..22b5c216 100644 --- a/.github/workflows/deploy-development.yml +++ b/.github/workflows/deploy-development.yml @@ -45,7 +45,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4 + uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 diff --git a/.github/workflows/deploy-edge.yml b/.github/workflows/deploy-edge.yml index 38eb2245..9e7fce1f 100644 --- a/.github/workflows/deploy-edge.yml +++ b/.github/workflows/deploy-edge.yml @@ -54,7 +54,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4 + uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 diff --git a/.github/workflows/deploy-pr.yml b/.github/workflows/deploy-pr.yml index 434ad00e..41421ef1 100644 --- a/.github/workflows/deploy-pr.yml +++ b/.github/workflows/deploy-pr.yml @@ -32,7 +32,7 @@ jobs: echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV - name: Set up QEMU - uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4 + uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 46fccf18..ef1785e2 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -53,7 +53,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4 + uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 From bfb8e59c7f4cc8ecfde7aedfa1ea3fa271fafd4e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:49:44 +0200 Subject: [PATCH 04/31] Update github/codeql-action digest to cdf488f (#2794) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/codeql.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 89bcf5dd..9058f84f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -30,14 +30,14 @@ jobs: uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Initialize CodeQL - uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4 + uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 with: languages: ${{ matrix.language }} - name: Autobuild - uses: github/codeql-action/autobuild@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4 + uses: github/codeql-action/autobuild@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4 + uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 with: category: "/language:${{matrix.language}}" From 549a5549d8fd701a0ccfc96e223f8a13e3403f24 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:49:57 +0200 Subject: [PATCH 05/31] Update Node.js to e67514e (#2795) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 6 +++--- Dockerfile.dev | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4ef19e7e..e32e51c9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/library/node:krypton-alpine@sha256:d32cdf619f63fe0471182d08996dd516c6275bb5fd31ae06e55a570bd9e1ad43 AS build +FROM docker.io/library/node:krypton-alpine@sha256:e67514e5d0f6c46656005e1b693b2ec9d52e80b641307de684d4a015ba7a4eaf AS build WORKDIR /app # update corepack @@ -29,13 +29,13 @@ RUN apk add linux-headers build-base go git && \ make && \ sed -i 's|\[\[ $proto == -4 \]\] && cmd sysctl -q net\.ipv4\.conf\.all\.src_valid_mark=1|[[ $proto == -4 ]] \&\& [[ $(sysctl -n net.ipv4.conf.all.src_valid_mark) != 1 ]] \&\& cmd sysctl -q net.ipv4.conf.all.src_valid_mark=1|' ./wg-quick/linux.bash -FROM docker.io/library/node:krypton-alpine@sha256:d32cdf619f63fe0471182d08996dd516c6275bb5fd31ae06e55a570bd9e1ad43 AS build-libsql +FROM docker.io/library/node:krypton-alpine@sha256:e67514e5d0f6c46656005e1b693b2ec9d52e80b641307de684d4a015ba7a4eaf AS build-libsql WORKDIR /app RUN npm install --no-save --omit=dev libsql # Copy build result to a new image. # This saves a lot of disk space. -FROM docker.io/library/node:krypton-alpine@sha256:d32cdf619f63fe0471182d08996dd516c6275bb5fd31ae06e55a570bd9e1ad43 +FROM docker.io/library/node:krypton-alpine@sha256:e67514e5d0f6c46656005e1b693b2ec9d52e80b641307de684d4a015ba7a4eaf WORKDIR /app HEALTHCHECK --interval=1m --timeout=5s --retries=3 CMD /usr/bin/timeout 5s /bin/sh -c "/usr/bin/wg show | /bin/grep -q interface || exit 1" diff --git a/Dockerfile.dev b/Dockerfile.dev index d8377eb6..66e09c86 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM docker.io/library/node:krypton-alpine@sha256:d32cdf619f63fe0471182d08996dd516c6275bb5fd31ae06e55a570bd9e1ad43 +FROM docker.io/library/node:krypton-alpine@sha256:e67514e5d0f6c46656005e1b693b2ec9d52e80b641307de684d4a015ba7a4eaf WORKDIR /app ENV PNPM_HOME="/pnpm" From e27057c50636b83c9e7c645807729cbfb8e05924 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:50:32 +0200 Subject: [PATCH 06/31] Update dependency reka-ui to v2.10.4 (#2798) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- src/pnpm-lock.yaml | 319 ++++++++++++++++++++++++++------------------- 1 file changed, 183 insertions(+), 136 deletions(-) diff --git a/src/pnpm-lock.yaml b/src/pnpm-lock.yaml index 2329859d..9e451155 100644 --- a/src/pnpm-lock.yaml +++ b/src/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@heroicons/vue': specifier: ^2.2.0 - version: 2.2.0(vue@3.5.41(typescript@6.0.3)) + version: 2.2.0(vue@3.5.42(typescript@6.0.3)) '@libsql/client': specifier: ^0.17.4 version: 0.17.4 @@ -19,7 +19,7 @@ importers: version: 4.0.1(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) '@nuxtjs/i18n': specifier: ^10.6.0 - version: 10.6.0(@vue/compiler-dom@3.5.41)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)) + version: 10.6.0(@vue/compiler-dom@3.5.41)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) '@nuxtjs/tailwindcss': specifier: ^6.14.0 version: 6.14.0(magicast@0.5.4)(supports-color@10.2.2)(tsx@4.23.12)(yaml@2.9.0) @@ -28,16 +28,16 @@ importers: version: 1.0.0 '@pinia/nuxt': specifier: ^1.0.1 - version: 1.0.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + version: 1.0.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) '@tailwindcss/forms': specifier: ^0.5.11 version: 0.5.11(tailwindcss@3.4.19(tsx@4.23.12)(yaml@2.9.0)) '@vueuse/core': specifier: ^14.4.0 - version: 14.4.0(vue@3.5.41(typescript@6.0.3)) + version: 14.4.0(vue@3.5.42(typescript@6.0.3)) '@vueuse/nuxt': specifier: ^14.4.0 - version: 14.4.0(2b18b4a4d95dcdc94899147e03978a2f) + version: 14.4.0(ec4b4abfb3045127c841979d1f79173d) apexcharts: specifier: ^6.8.0 version: 6.10.0 @@ -73,7 +73,7 @@ importers: version: 1.0.0 nuxt: specifier: ^4.5.2 - version: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) + version: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) obug: specifier: ^2.1.4 version: 2.1.4 @@ -85,13 +85,13 @@ importers: version: 9.5.1 pinia: specifier: ^4.0.2 - version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)) + version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) qr: specifier: ^0.6.0 version: 0.6.0 reka-ui: specifier: ^2.10.3 - version: 2.10.3(vue@3.5.41(typescript@6.0.3)) + version: 2.10.4(vue@3.5.42(typescript@6.0.3)) semver: specifier: ^7.8.5 version: 7.8.5 @@ -100,10 +100,10 @@ importers: version: 3.4.19(tsx@4.23.12)(yaml@2.9.0) vue: specifier: latest - version: 3.5.41(typescript@6.0.3) + version: 3.5.42(typescript@6.0.3) vue3-apexcharts: specifier: ^1.11.1 - version: 1.11.1(apexcharts@6.10.0)(vue@3.5.41(typescript@6.0.3)) + version: 1.11.1(apexcharts@6.10.0)(vue@3.5.42(typescript@6.0.3)) zod: specifier: ^4.4.3 version: 4.4.3 @@ -946,11 +946,11 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@internationalized/date@3.12.3': - resolution: {integrity: sha512-fuLX+3ZKLsxI73y8b01EG/WjHb6gE6weCqlfawPO27kBWGMh9G1yH6Csv1uU7/cac9H2GHmOMt6CjmuQ1aia4Q==} + '@internationalized/date@3.12.4': + resolution: {integrity: sha512-M1dEn4c1U1HsSlaVR8upZtSqvXrTkHDfv18H01uCSJyjVLDxnBR38v/fMxecmlwXKR4i9HeZcmgQAPE6A+aGJQ==} - '@internationalized/number@3.6.7': - resolution: {integrity: sha512-3ji1fcrT+FPAK86UqEhB/psHixYo6niWPJtt7+qRaYFynt/BaJG8GhAPimtWUpEiVSTq8ZM8L5psMxGquiB/Vg==} + '@internationalized/number@3.6.8': + resolution: {integrity: sha512-8UmMFia46DUt+k97zKd9fKWXcWHR+k8ae3eYzILETuT2KbIvLyOfac7zesw+sJdRAAZ7Q9pM1Mk22aXp2LD0Ig==} '@intlify/bundle-utils@11.2.5': resolution: {integrity: sha512-gl7CGygRALtuT4H8n/PNC0hubg4rnctPoT04//GZNsTemvJw0Q7i6jSaq0PZHxnH0cdGqyowNXmW4FYILbahzg==} @@ -1979,11 +1979,11 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' - '@tanstack/virtual-core@3.17.7': - resolution: {integrity: sha512-bp+v10y65sp2H7WpWfIMyxTNfl8ZVfxFTLRjPIFRryi6FV/J33z4IS53WO4pTk36KlvJ4iLiQz+oaydDC1xbcA==} + '@tanstack/virtual-core@3.17.8': + resolution: {integrity: sha512-BfEvehNpOT75r5Ksc5xW6NZuXujTfb7nlSEyVu4XHG3gdxNg1KqXruWbDewXOUaUYIo4oRbSfkjIajz4MAT8tA==} - '@tanstack/vue-virtual@3.13.35': - resolution: {integrity: sha512-lOfSPvgPdlaH6Qy+CyIc3XpycitaSQ9GECndGpTuDiu+uDA1am+90yWXwzDSd/20ZM196ggWJLS+Qb6WjVd/OA==} + '@tanstack/vue-virtual@3.13.36': + resolution: {integrity: sha512-gKpExv4RbB9luVG+SucTXoqPZv/gzu/Yvz6BNO+8kpNxJ2x+I/ulryzl5W9BRciahZGp5Tls3Dp5XP1ztVGbMw==} peerDependencies: vue: ^2.7.0 || ^3.0.0 @@ -2351,15 +2351,27 @@ packages: '@vue/compiler-core@3.5.41': resolution: {integrity: sha512-q0Xtv/F9w2YO/7htQhtiL+Ev2WCJbe5N2hc+XfgyKkEKqWpSxknmT8QOuGdEKNdjPq0c3F7rNpFkTo3Kfrm7pg==} + '@vue/compiler-core@3.5.42': + resolution: {integrity: sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==} + '@vue/compiler-dom@3.5.41': resolution: {integrity: sha512-oKacVfNglLvGjnS6BXOlGL7EyG2h8X03pqXCjzotRZUaXGjbrTJUnVAQjrCqUnS+lyu31nwQjZY/d817GmCnfw==} + '@vue/compiler-dom@3.5.42': + resolution: {integrity: sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==} + '@vue/compiler-sfc@3.5.41': resolution: {integrity: sha512-XJhip7R2wy6vX3knCxdZN4KracFaZUef58s1KYewqluedHIJaPIVfXoYT7MF1F8nCvv6k8bWWxDC8opMkg1VTQ==} + '@vue/compiler-sfc@3.5.42': + resolution: {integrity: sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw==} + '@vue/compiler-ssr@3.5.41': resolution: {integrity: sha512-U3v5OejKEGqOI0Wy0+Sz7hGuIFZHA4LSXzrNM3IMIeDyJEBBfTpX26n3SDgToRpP2bLc9FfI2j/kSgcJ8Emq5A==} + '@vue/compiler-ssr@3.5.42': + resolution: {integrity: sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA==} + '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} @@ -2380,21 +2392,24 @@ packages: '@vue/language-core@3.3.10': resolution: {integrity: sha512-CR7ByBbgPHqhxrioKPOcZBqttaozzLNwtkCzXQ+uF8gLPHnUe03srPnGpdtHD3zp+bq5iyVkZ1WNx7W564RPwg==} - '@vue/reactivity@3.5.41': - resolution: {integrity: sha512-rznsqKM0np0x18EjzF8x88MpEhdNsffbvFbckLL5+oUKz1BxAImEmO7J1ArRYSyo6aQaVoBDp7jEkT91OOxydA==} + '@vue/reactivity@3.5.42': + resolution: {integrity: sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ==} - '@vue/runtime-core@3.5.41': - resolution: {integrity: sha512-Vcry58hiAKwGen9Z1jUZE0feFsNArPCMOImYI8el48A9Idf6DuQYD0U05zZIF2Iad1hGhPSvcbBbAOhNr55fhg==} + '@vue/runtime-core@3.5.42': + resolution: {integrity: sha512-9uACtuHs7vJGkm5Bp3xu4xRDLFTIYy5DgxpToVjqGIAhAEKwQfsaLvKINhM6nFVp6bZPRFGdDqd1g52MqKsotA==} - '@vue/runtime-dom@3.5.41': - resolution: {integrity: sha512-3vVBahVBS9+U6cmXBLyb8nE6/yYo4J/CGI9eVFs3KiMc0YHuudwKyShTD65jtJy/L9PUUxNAFu4cj4LiJ0UFbw==} + '@vue/runtime-dom@3.5.42': + resolution: {integrity: sha512-rsCmhiWLaRxGltLwhlCWyYkFn7WAbKRh0q17eZ1A6Dq6eqc2ACQ61IIryxz0LrsvCzHSilLA9JHovVwM8CNE2g==} - '@vue/server-renderer@3.5.41': - resolution: {integrity: sha512-n6hx/pNFfbD6SuyeuMVkvqox8bwf/ET9JlA/kAz/imw8sw++wkqKe2mHX5KutjPpbKE4Z56yTHszoOjGMI9igQ==} + '@vue/server-renderer@3.5.42': + resolution: {integrity: sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ==} '@vue/shared@3.5.41': resolution: {integrity: sha512-IOnwSCma8j+9xJT6b8H0dEYidC80NsYmNMlZxRsukYcSoGaDBohog5hDxzeUXdFeGWFA++vWvxqOmrr96VlqMA==} + '@vue/shared@3.5.42': + resolution: {integrity: sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==} + '@vueuse/core@14.4.0': resolution: {integrity: sha512-X4WHz1HlCzCBoYXesUkifzzWBAcZgXG8Fi5iNPQg/epdzOB3gu8Fawj3hvuwYR1nGcXGnvxwYYcUC/71++svtQ==} peerDependencies: @@ -4985,8 +5000,8 @@ packages: resolution: {integrity: sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==} hasBin: true - reka-ui@2.10.3: - resolution: {integrity: sha512-nJGZbwcha8AcP2wbnjodfzsciTKBqp1mIzepC9Pi2xDI/YK3++ej3vpJOSPyxqrkq1Oorj4K+BdJkbVCV6x6ag==} + reka-ui@2.10.4: + resolution: {integrity: sha512-kbS5GAbkHkYj0EVKAg5ZPEPndhBjeUFSa1Aq5m5ftQwyHnB1v5tw8X6fcwfKH/ry3StPXblMWM1DW82MVS71cw==} peerDependencies: vue: '>= 3.4.0' @@ -5869,8 +5884,8 @@ packages: apexcharts: '>=5.10.0' vue: '>=3.0.0' - vue@3.5.41: - resolution: {integrity: sha512-2laE0p+aK+/AOPG/XL/WepOs/GlK755LJ1XECi9kDUrz1FKNw8rb2Xzlw9JS1rqEV55nb0ttsKxVlTCcd+R5cg==} + vue@3.5.42: + resolution: {integrity: sha512-4RyHQTbQvOPs3MfvUO1Sg0YRrKNnA0mAVtvpd12Tg1fKDN7OHBUl1IqSn8zGJjK9nI3NkNp8cgTpVrSZC5TTcA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -6616,18 +6631,18 @@ snapshots: '@floating-ui/utils@0.2.12': {} - '@floating-ui/vue@1.1.11(vue@3.5.41(typescript@6.0.3))': + '@floating-ui/vue@1.1.11(vue@3.5.42(typescript@6.0.3))': dependencies: '@floating-ui/dom': 1.8.0 '@floating-ui/utils': 0.2.12 - vue-demi: 0.14.10(vue@3.5.41(typescript@6.0.3)) + vue-demi: 0.14.10(vue@3.5.42(typescript@6.0.3)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@heroicons/vue@2.2.0(vue@3.5.41(typescript@6.0.3))': + '@heroicons/vue@2.2.0(vue@3.5.42(typescript@6.0.3))': dependencies: - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) '@humanfs/core@0.19.2': dependencies: @@ -6645,15 +6660,15 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@internationalized/date@3.12.3': + '@internationalized/date@3.12.4': dependencies: '@swc/helpers': 0.5.23 - '@internationalized/number@3.6.7': + '@internationalized/number@3.6.8': dependencies: '@swc/helpers': 0.5.23 - '@intlify/bundle-utils@11.2.5(vue-i18n@11.4.8(vue@3.5.41(typescript@6.0.3)))': + '@intlify/bundle-utils@11.2.5(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)))': dependencies: '@intlify/message-compiler': 11.4.8 '@intlify/shared': 11.4.8 @@ -6665,7 +6680,7 @@ snapshots: source-map-js: 1.2.1 yaml-eslint-parser: 1.3.2 optionalDependencies: - vue-i18n: 11.4.8(vue@3.5.41(typescript@6.0.3)) + vue-i18n: 11.4.8(vue@3.5.42(typescript@6.0.3)) '@intlify/core-base@11.4.8': dependencies: @@ -6695,12 +6710,12 @@ snapshots: '@intlify/shared@11.4.8': {} - '@intlify/unplugin-vue-i18n@11.2.5(@vue/compiler-dom@3.5.41)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-i18n@11.4.8(vue@3.5.41(typescript@6.0.3)))(vue@3.5.41(typescript@6.0.3))': + '@intlify/unplugin-vue-i18n@11.2.5(@vue/compiler-dom@3.5.41)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3))': dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - '@intlify/bundle-utils': 11.2.5(vue-i18n@11.4.8(vue@3.5.41(typescript@6.0.3))) + '@intlify/bundle-utils': 11.2.5(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3))) '@intlify/shared': 11.4.8 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.4.8)(@vue/compiler-dom@3.5.41)(vue-i18n@11.4.8(vue@3.5.41(typescript@6.0.3)))(vue@3.5.41(typescript@6.0.3)) + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.4.8)(@vue/compiler-dom@3.5.41)(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) '@rollup/pluginutils': 5.4.0(rollup@4.62.4) '@typescript-eslint/scope-manager': 8.67.0 '@typescript-eslint/typescript-estree': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) @@ -6709,10 +6724,10 @@ snapshots: pathe: 2.0.3 picocolors: 1.1.1 unplugin: 2.3.11 - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) optionalDependencies: vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vue-i18n: 11.4.8(vue@3.5.41(typescript@6.0.3)) + vue-i18n: 11.4.8(vue@3.5.42(typescript@6.0.3)) transitivePeerDependencies: - '@vue/compiler-dom' - eslint @@ -6724,14 +6739,14 @@ snapshots: '@intlify/utils@0.14.1': {} - '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.4.8)(@vue/compiler-dom@3.5.41)(vue-i18n@11.4.8(vue@3.5.41(typescript@6.0.3)))(vue@3.5.41(typescript@6.0.3))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.4.8)(@vue/compiler-dom@3.5.41)(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3))': dependencies: '@babel/parser': 7.29.8 optionalDependencies: '@intlify/shared': 11.4.8 '@vue/compiler-dom': 3.5.41 - vue: 3.5.41(typescript@6.0.3) - vue-i18n: 11.4.8(vue@3.5.41(typescript@6.0.3)) + vue: 3.5.42(typescript@6.0.3) + vue-i18n: 11.4.8(vue@3.5.42(typescript@6.0.3)) '@ioredis/commands@1.10.0': {} @@ -6972,12 +6987,12 @@ snapshots: pkg-types: 2.3.1 semver: 7.8.5 - '@nuxt/devtools@3.4.1(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))': + '@nuxt/devtools@3.4.1(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: '@nuxt/devtools-kit': 3.4.1(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) '@nuxt/devtools-wizard': 3.4.1 '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - '@vue/devtools-core': 8.2.1(vue@3.5.41(typescript@6.0.3)) + '@vue/devtools-core': 8.2.1(vue@3.5.42(typescript@6.0.3)) '@vue/devtools-kit': 8.2.1 birpc: 4.1.0 consola: 3.4.2 @@ -7005,7 +7020,7 @@ snapshots: unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) vite-plugin-inspect: 11.4.1(@nuxt/kit@4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - vite-plugin-vue-tracer: 1.5.0(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)) + vite-plugin-vue-tracer: 1.5.0(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) which: 6.0.1 ws: 8.21.3 transitivePeerDependencies: @@ -7203,11 +7218,11 @@ snapshots: - rolldown - unplugin - '@nuxt/nitro-server@4.5.2(ea1b3e8d6f65e045f8e04fc178cbf666)': + '@nuxt/nitro-server@4.5.2(07a0427701d7eaae84fe356bc8b16442)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - '@unhead/vue': 3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)) + '@unhead/vue': 3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) '@vue/shared': 3.5.41 consola: 3.4.2 defu: 6.1.7 @@ -7222,7 +7237,7 @@ snapshots: mocked-exports: 0.1.1 nitropack: 2.13.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4))(oxc-parser@0.141.0)(rolldown@1.2.4)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) nostics: 1.2.0 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) nypm: 0.6.9 ohash: 2.0.12 pathe: 2.0.3 @@ -7231,7 +7246,7 @@ snapshots: ufo: 1.6.4 unctx: 3.0.0(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) vue-bundle-renderer: 2.3.2 vue-devtools-stub: 0.1.0 optionalDependencies: @@ -7336,7 +7351,7 @@ snapshots: ufo: 1.6.4 unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) vitest-environment-nuxt: 2.0.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.4)(rollup@4.62.4)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vitest@4.1.11) - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) optionalDependencies: '@vitest/ui': 4.1.11(vitest@4.1.11) vitest: 4.1.11(@types/node@26.2.0)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) @@ -7353,11 +7368,11 @@ snapshots: - vite - webpack - '@nuxt/vite-builder@4.5.2(67a159140f5abc3f4dfb6471ad3f3982)': + '@nuxt/vite-builder@4.5.2(d09f14978b5ccf9d57b622d00c5afb40)': dependencies: '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - '@vitejs/plugin-vue': 6.0.8(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': 5.1.6(supports-color@10.2.2)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)) + '@vitejs/plugin-vue': 6.0.8(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@vitejs/plugin-vue-jsx': 5.1.6(supports-color@10.2.2)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) autoprefixer: 10.5.4(postcss@8.5.26) consola: 3.4.2 cssnano: 8.0.5(postcss@8.5.26) @@ -7371,7 +7386,7 @@ snapshots: knitwork: 1.3.0 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) nypm: 0.6.9 pathe: 2.0.3 pkg-types: 2.3.1 @@ -7385,7 +7400,7 @@ snapshots: vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) vite-node: 6.0.0(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) vite-plugin-checker: 0.14.5(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(optionator@0.9.4)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3)) - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) vue-bundle-renderer: 2.3.2 optionalDependencies: '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) @@ -7436,13 +7451,13 @@ snapshots: - rolldown - unplugin - '@nuxtjs/i18n@10.6.0(@vue/compiler-dom@3.5.41)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))': + '@nuxtjs/i18n@10.6.0(@vue/compiler-dom@3.5.41)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: '@intlify/core': 11.4.8 '@intlify/h3': 0.7.4 '@intlify/message-compiler': 11.4.8 '@intlify/shared': 11.4.8 - '@intlify/unplugin-vue-i18n': 11.2.5(@vue/compiler-dom@3.5.41)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-i18n@11.4.8(vue@3.5.41(typescript@6.0.3)))(vue@3.5.41(typescript@6.0.3)) + '@intlify/unplugin-vue-i18n': 11.2.5(@vue/compiler-dom@3.5.41)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) '@intlify/utils': 0.14.1 '@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.62.4) '@nuxt/kit': 4.5.2(magic-string@0.30.21)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) @@ -7465,8 +7480,8 @@ snapshots: unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) unrouting: 0.2.3 unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) - vue-i18n: 11.4.8(vue@3.5.41(typescript@6.0.3)) - vue-router: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)) + vue-i18n: 11.4.8(vue@3.5.42(typescript@6.0.3)) + vue-router: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7669,10 +7684,10 @@ snapshots: '@phc/format@1.0.0': {} - '@pinia/nuxt@1.0.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))': + '@pinia/nuxt@1.0.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))': dependencies: '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)) + pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) transitivePeerDependencies: - magic-string - magicast @@ -7922,12 +7937,12 @@ snapshots: mini-svg-data-uri: 1.4.4 tailwindcss: 3.4.19(tsx@4.23.12)(yaml@2.9.0) - '@tanstack/virtual-core@3.17.7': {} + '@tanstack/virtual-core@3.17.8': {} - '@tanstack/vue-virtual@3.13.35(vue@3.5.41(typescript@6.0.3))': + '@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3))': dependencies: - '@tanstack/virtual-core': 3.17.7 - vue: 3.5.41(typescript@6.0.3) + '@tanstack/virtual-core': 3.17.8 + vue: 3.5.42(typescript@6.0.3) '@tybys/wasm-util@0.10.3': dependencies: @@ -8078,13 +8093,13 @@ snapshots: - rollup - unloader - '@unhead/vue@3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))': + '@unhead/vue@3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: '@unhead/bundler': 3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(unhead@3.3.2(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) hookable: 6.1.1 unhead: 3.3.2(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) optionalDependencies: vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) transitivePeerDependencies: @@ -8190,7 +8205,7 @@ snapshots: - rollup - supports-color - '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))': + '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) @@ -8198,15 +8213,15 @@ snapshots: '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.8(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.8(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': dependencies: @@ -8288,7 +8303,7 @@ snapshots: optionalDependencies: typescript: 6.0.3 - '@vue-macros/common@3.1.4(vue@3.5.41(typescript@6.0.3))': + '@vue-macros/common@3.1.4(vue@3.5.42(typescript@6.0.3))': dependencies: '@vue/compiler-sfc': 3.5.41 ast-kit: 2.2.0 @@ -8296,7 +8311,7 @@ snapshots: magic-string-ast: 1.0.3 unplugin-utils: 0.3.2 optionalDependencies: - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) '@vue/babel-helper-vue-transform-on@2.0.1': {} @@ -8335,11 +8350,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.42': + dependencies: + '@babel/parser': 7.29.8 + '@vue/shared': 3.5.42 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.41': dependencies: '@vue/compiler-core': 3.5.41 '@vue/shared': 3.5.41 + '@vue/compiler-dom@3.5.42': + dependencies: + '@vue/compiler-core': 3.5.42 + '@vue/shared': 3.5.42 + '@vue/compiler-sfc@3.5.41': dependencies: '@babel/parser': 7.29.8 @@ -8352,22 +8380,39 @@ snapshots: postcss: 8.5.26 source-map-js: 1.2.1 + '@vue/compiler-sfc@3.5.42': + dependencies: + '@babel/parser': 7.29.8 + '@vue/compiler-core': 3.5.42 + '@vue/compiler-dom': 3.5.42 + '@vue/compiler-ssr': 3.5.42 + '@vue/shared': 3.5.42 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.26 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.5.41': dependencies: '@vue/compiler-dom': 3.5.41 '@vue/shared': 3.5.41 + '@vue/compiler-ssr@3.5.42': + dependencies: + '@vue/compiler-dom': 3.5.42 + '@vue/shared': 3.5.42 + '@vue/devtools-api@6.6.4': {} '@vue/devtools-api@8.2.1': dependencies: '@vue/devtools-kit': 8.2.1 - '@vue/devtools-core@8.2.1(vue@3.5.41(typescript@6.0.3))': + '@vue/devtools-core@8.2.1(vue@3.5.42(typescript@6.0.3))': dependencies: '@vue/devtools-kit': 8.2.1 '@vue/devtools-shared': 8.2.1 - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) '@vue/devtools-kit@8.2.1': dependencies: @@ -8388,47 +8433,49 @@ snapshots: path-browserify: 1.0.1 picomatch: 4.0.5 - '@vue/reactivity@3.5.41': + '@vue/reactivity@3.5.42': dependencies: - '@vue/shared': 3.5.41 + '@vue/shared': 3.5.42 - '@vue/runtime-core@3.5.41': + '@vue/runtime-core@3.5.42': dependencies: - '@vue/reactivity': 3.5.41 - '@vue/shared': 3.5.41 + '@vue/reactivity': 3.5.42 + '@vue/shared': 3.5.42 - '@vue/runtime-dom@3.5.41': + '@vue/runtime-dom@3.5.42': dependencies: - '@vue/reactivity': 3.5.41 - '@vue/runtime-core': 3.5.41 - '@vue/shared': 3.5.41 + '@vue/reactivity': 3.5.42 + '@vue/runtime-core': 3.5.42 + '@vue/shared': 3.5.42 csstype: 3.2.3 - '@vue/server-renderer@3.5.41': + '@vue/server-renderer@3.5.42': dependencies: - '@vue/compiler-ssr': 3.5.41 - '@vue/runtime-dom': 3.5.41 - '@vue/shared': 3.5.41 + '@vue/compiler-ssr': 3.5.42 + '@vue/runtime-dom': 3.5.42 + '@vue/shared': 3.5.42 '@vue/shared@3.5.41': {} - '@vueuse/core@14.4.0(vue@3.5.41(typescript@6.0.3))': + '@vue/shared@3.5.42': {} + + '@vueuse/core@14.4.0(vue@3.5.42(typescript@6.0.3))': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 14.4.0 - '@vueuse/shared': 14.4.0(vue@3.5.41(typescript@6.0.3)) - vue: 3.5.41(typescript@6.0.3) + '@vueuse/shared': 14.4.0(vue@3.5.42(typescript@6.0.3)) + vue: 3.5.42(typescript@6.0.3) '@vueuse/metadata@14.4.0': {} - '@vueuse/nuxt@14.4.0(2b18b4a4d95dcdc94899147e03978a2f)': + '@vueuse/nuxt@14.4.0(ec4b4abfb3045127c841979d1f79173d)': dependencies: '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - '@vueuse/core': 14.4.0(vue@3.5.41(typescript@6.0.3)) + '@vueuse/core': 14.4.0(vue@3.5.42(typescript@6.0.3)) '@vueuse/metadata': 14.4.0 local-pkg: 1.2.1 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) - vue: 3.5.41(typescript@6.0.3) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) + vue: 3.5.42(typescript@6.0.3) transitivePeerDependencies: - magic-string - magicast @@ -8436,9 +8483,9 @@ snapshots: - rolldown - unplugin - '@vueuse/shared@14.4.0(vue@3.5.41(typescript@6.0.3))': + '@vueuse/shared@14.4.0(vue@3.5.42(typescript@6.0.3))': dependencies: - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) abbrev@3.0.1: {} @@ -10419,17 +10466,17 @@ snapshots: nuxt-define@1.0.0: {} - nuxt@4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0): + nuxt@4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0): dependencies: '@dxup/nuxt': 0.5.7(esbuild@0.28.2)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.2)(cac@7.0.0)(magicast@0.5.4)(supports-color@10.2.2) - '@nuxt/devtools': 3.4.1(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)) + '@nuxt/devtools': 3.4.1(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - '@nuxt/nitro-server': 4.5.2(ea1b3e8d6f65e045f8e04fc178cbf666) + '@nuxt/nitro-server': 4.5.2(07a0427701d7eaae84fe356bc8b16442) '@nuxt/schema': 4.5.2 '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))) - '@nuxt/vite-builder': 4.5.2(67a159140f5abc3f4dfb6471ad3f3982) - '@unhead/vue': 3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)) + '@nuxt/vite-builder': 4.5.2(d09f14978b5ccf9d57b622d00c5afb40) + '@unhead/vue': 3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) '@vue/shared': 3.5.41 chokidar: 5.0.0 compatx: 0.2.0 @@ -10478,9 +10525,9 @@ snapshots: unrouting: 0.2.3 untyped: 2.0.0 verkit: 0.3.2 - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) vue-component-type-helpers: 3.3.10 - vue-router: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)) + vue-router: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) optionalDependencies: '@types/node': 26.2.0 transitivePeerDependencies: @@ -10765,11 +10812,11 @@ snapshots: pify@2.3.0: {} - pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)): + pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)): dependencies: '@vue/devtools-api': 8.2.1 nostics: 1.2.0 - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 @@ -11096,19 +11143,19 @@ snapshots: dependencies: jsesc: 3.1.0 - reka-ui@2.10.3(vue@3.5.41(typescript@6.0.3)): + reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)): dependencies: '@floating-ui/dom': 1.8.0 - '@floating-ui/vue': 1.1.11(vue@3.5.41(typescript@6.0.3)) - '@internationalized/date': 3.12.3 - '@internationalized/number': 3.6.7 - '@tanstack/vue-virtual': 3.13.35(vue@3.5.41(typescript@6.0.3)) - '@vueuse/core': 14.4.0(vue@3.5.41(typescript@6.0.3)) - '@vueuse/shared': 14.4.0(vue@3.5.41(typescript@6.0.3)) + '@floating-ui/vue': 1.1.11(vue@3.5.42(typescript@6.0.3)) + '@internationalized/date': 3.12.4 + '@internationalized/number': 3.6.8 + '@tanstack/vue-virtual': 3.13.36(vue@3.5.42(typescript@6.0.3)) + '@vueuse/core': 14.4.0(vue@3.5.42(typescript@6.0.3)) + '@vueuse/shared': 14.4.0(vue@3.5.42(typescript@6.0.3)) aria-hidden: 1.2.6 defu: 6.1.7 ohash: 2.0.12 - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) transitivePeerDependencies: - '@vue/composition-api' @@ -11873,7 +11920,7 @@ snapshots: optionalDependencies: '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - vite-plugin-vue-tracer@1.5.0(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)): + vite-plugin-vue-tracer@1.5.0(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.1.1 @@ -11881,7 +11928,7 @@ snapshots: pathe: 2.0.3 source-map-js: 1.2.1 vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0): dependencies: @@ -11979,9 +12026,9 @@ snapshots: vue-component-type-helpers@3.3.10: {} - vue-demi@0.14.10(vue@3.5.41(typescript@6.0.3)): + vue-demi@0.14.10(vue@3.5.42(typescript@6.0.3)): dependencies: - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) vue-devtools-stub@0.1.0: {} @@ -11997,18 +12044,18 @@ snapshots: transitivePeerDependencies: - supports-color - vue-i18n@11.4.8(vue@3.5.41(typescript@6.0.3)): + vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)): dependencies: '@intlify/core-base': 11.4.8 '@intlify/devtools-types': 11.4.8 '@intlify/shared': 11.4.8 '@vue/devtools-api': 6.6.4 - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) - vue-router@5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3)): + vue-router@5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): dependencies: '@babel/generator': 8.0.0 - '@vue-macros/common': 3.1.4(vue@3.5.41(typescript@6.0.3)) + '@vue-macros/common': 3.1.4(vue@3.5.42(typescript@6.0.3)) '@vue/devtools-api': 8.2.1 ast-walker-scope: 0.9.0 chokidar: 5.0.0 @@ -12024,11 +12071,11 @@ snapshots: tinyglobby: 0.2.17 unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) unplugin-utils: 0.3.2 - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) yaml: 2.9.0 optionalDependencies: '@vue/compiler-sfc': 3.5.41 - pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)) + pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' @@ -12046,18 +12093,18 @@ snapshots: '@vue/language-core': 3.3.10 typescript: 6.0.3 - vue3-apexcharts@1.11.1(apexcharts@6.10.0)(vue@3.5.41(typescript@6.0.3)): + vue3-apexcharts@1.11.1(apexcharts@6.10.0)(vue@3.5.42(typescript@6.0.3)): dependencies: apexcharts: 6.10.0 - vue: 3.5.41(typescript@6.0.3) + vue: 3.5.42(typescript@6.0.3) - vue@3.5.41(typescript@6.0.3): + vue@3.5.42(typescript@6.0.3): dependencies: - '@vue/compiler-dom': 3.5.41 - '@vue/compiler-sfc': 3.5.41 - '@vue/runtime-dom': 3.5.41 - '@vue/server-renderer': 3.5.41 - '@vue/shared': 3.5.41 + '@vue/compiler-dom': 3.5.42 + '@vue/compiler-sfc': 3.5.42 + '@vue/runtime-dom': 3.5.42 + '@vue/server-renderer': 3.5.42 + '@vue/shared': 3.5.42 optionalDependencies: typescript: 6.0.3 From f7f0a58bfe721dba02d9a464982375babd4730c2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:50:55 +0200 Subject: [PATCH 07/31] Update pnpm to v11.25.0 (#2801) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- src/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f6eb94c4..0781b6d6 100644 --- a/package.json +++ b/package.json @@ -13,5 +13,5 @@ "devDependencies": { "prettier": "^3.9.6" }, - "packageManager": "pnpm@11.22.0" + "packageManager": "pnpm@11.25.0" } diff --git a/src/package.json b/src/package.json index 45e97a38..59ef6403 100644 --- a/src/package.json +++ b/src/package.json @@ -74,5 +74,5 @@ "vitest": "^4.1.10", "vue-tsc": "^3.3.9" }, - "packageManager": "pnpm@11.22.0" + "packageManager": "pnpm@11.25.0" } From ac07ceefb1627a6f0767c12a80b75ec9ad4eaab9 Mon Sep 17 00:00:00 2001 From: Bernd Storath Date: Mon, 7 Sep 2026 08:03:00 +0200 Subject: [PATCH 08/31] update renovate config --- .github/renovate.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/renovate.json b/.github/renovate.json index d5223615..c3bda816 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -15,6 +15,20 @@ "matchDatasources": ["docker"], "matchUpdateTypes": ["digest"] }, + { + "groupName": "github-actions-digest", + "matchManagers": ["github-actions"], + "matchUpdateTypes": ["digest"] + }, + { + "matchManagers": ["npm"], + "rangeStrategy": "bump" + }, + { + "groupName": "npm-non-major", + "matchManagers": ["npm"], + "matchUpdateTypes": ["patch", "minor", "lockFileMaintenance"] + }, { "matchManagers": ["docker-compose"], "pinDigests": false From 5daef1ba93f05fac5c87176b4fab5c4c391baee6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 08:06:46 +0200 Subject: [PATCH 09/31] Update dependency amnezia-vpn/amneziawg-go to v3.1.20260828 (#2796) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e32e51c9..233e2838 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,7 @@ RUN pnpm build # renovate: datasource=github-releases depName=amnezia-vpn/amneziawg-tools ARG AWGTOOLS_BRANCH=v3.1.20260812 # renovate: datasource=github-tags depName=amnezia-vpn/amneziawg-go -ARG AWGGO_BRANCH=v3.1.20260814 +ARG AWGGO_BRANCH=v3.1.20260828 # Build amneziawg-tools RUN apk add linux-headers build-base go git && \ From b3fffafac982df77433a8f14942bea1f405c02f6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Sep 2026 11:35:08 +0200 Subject: [PATCH 10/31] Lock file maintenance (#2802) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- src/pnpm-lock.yaml | 2655 ++++++++++++++++++++++---------------------- 1 file changed, 1317 insertions(+), 1338 deletions(-) diff --git a/src/pnpm-lock.yaml b/src/pnpm-lock.yaml index 9e451155..409a2aa6 100644 --- a/src/pnpm-lock.yaml +++ b/src/pnpm-lock.yaml @@ -16,28 +16,28 @@ importers: version: 0.17.4 '@nuxtjs/color-mode': specifier: ^4.0.1 - version: 4.0.1(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + version: 4.0.1(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@nuxtjs/i18n': specifier: ^10.6.0 - version: 10.6.0(@vue/compiler-dom@3.5.41)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + version: 10.6.0(@vue/compiler-dom@3.5.42)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) '@nuxtjs/tailwindcss': specifier: ^6.14.0 - version: 6.14.0(magicast@0.5.4)(supports-color@10.2.2)(tsx@4.23.12)(yaml@2.9.0) + version: 6.14.0(magicast@0.5.4)(supports-color@10.2.2)(tsx@4.23.13)(yaml@2.9.0) '@phc/format': specifier: ^1.0.0 version: 1.0.0 '@pinia/nuxt': specifier: ^1.0.1 - version: 1.0.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + version: 1.0.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@tailwindcss/forms': specifier: ^0.5.11 - version: 0.5.11(tailwindcss@3.4.19(tsx@4.23.12)(yaml@2.9.0)) + version: 0.5.11(tailwindcss@3.4.19(tsx@4.23.13)(yaml@2.9.0)) '@vueuse/core': specifier: ^14.4.0 version: 14.4.0(vue@3.5.42(typescript@6.0.3)) '@vueuse/nuxt': specifier: ^14.4.0 - version: 14.4.0(ec4b4abfb3045127c841979d1f79173d) + version: 14.4.0(c7a15abfadeb1c2d705bc86835ad7621) apexcharts: specifier: ^6.8.0 version: 6.10.0 @@ -73,16 +73,16 @@ importers: version: 1.0.0 nuxt: specifier: ^4.5.2 - version: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) + version: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) obug: specifier: ^2.1.4 version: 2.1.4 openid-client: specifier: ^6.8.4 - version: 6.8.7 + version: 6.8.8 otpauth: specifier: ^9.5.1 - version: 9.5.1 + version: 9.5.2 pinia: specifier: ^4.0.2 version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) @@ -97,7 +97,7 @@ importers: version: 7.8.5 tailwindcss: specifier: ^3.4.19 - version: 3.4.19(tsx@4.23.12)(yaml@2.9.0) + version: 3.4.19(tsx@4.23.13)(yaml@2.9.0) vue: specifier: latest version: 3.5.42(typescript@6.0.3) @@ -106,14 +106,14 @@ importers: version: 1.11.1(apexcharts@6.10.0)(vue@3.5.42(typescript@6.0.3)) zod: specifier: ^4.4.3 - version: 4.4.3 + version: 4.5.4 devDependencies: '@nuxt/eslint': specifier: ^1.17.0 - version: 1.17.0(@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + version: 1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@nuxt/test-utils': specifier: ^4.1.0 - version: 4.1.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.4)(rollup@4.62.4)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vitest@4.1.11) + version: 4.2.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) '@types/phc__format': specifier: ^1.0.1 version: 1.0.1 @@ -134,10 +134,10 @@ importers: version: 0.28.2 eslint: specifier: ^10.8.1 - version: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + version: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) + version: 10.1.8(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) prettier: specifier: ^3.9.6 version: 3.9.6 @@ -146,21 +146,21 @@ importers: version: 0.8.1(prettier@3.9.6) tsx: specifier: ^4.23.12 - version: 4.23.12 + version: 4.23.13 typescript: specifier: ^6.0.3 version: 6.0.3 vitest: specifier: ^4.1.10 - version: 4.1.11(@types/node@26.2.0)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + version: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) vue-tsc: specifier: ^3.3.9 - version: 3.3.10(typescript@6.0.3) + version: 3.3.11(typescript@6.0.3) packages: - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + '@alloc/quick-lru@5.3.0': + resolution: {integrity: sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA==} engines: {node: '>=10'} '@antfu/install-pkg@2.0.1': @@ -188,10 +188,6 @@ packages: resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} engines: {node: '>=6.9.0'} - '@babel/generator@8.0.0': - resolution: {integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==} - engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-annotate-as-pure@7.29.7': resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} engines: {node: '>=6.9.0'} @@ -246,18 +242,10 @@ packages: resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@8.0.0': - resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==} - engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-validator-identifier@7.29.7': resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@8.0.4': - resolution: {integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==} - engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-validator-option@7.29.7': resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} engines: {node: '>=6.9.0'} @@ -271,11 +259,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@8.0.4': - resolution: {integrity: sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==} - engines: {node: ^22.18.0 || >=24.11.0} - hasBin: true - '@babel/plugin-syntax-jsx@7.29.7': resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} engines: {node: '>=6.9.0'} @@ -306,10 +289,6 @@ packages: resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} - '@babel/types@8.0.4': - resolution: {integrity: sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==} - engines: {node: ^22.18.0 || >=24.11.0} - '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -329,6 +308,12 @@ packages: commander: optional: true + '@cacheable/memory@2.2.0': + resolution: {integrity: sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==} + + '@cacheable/utils@2.5.0': + resolution: {integrity: sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==} + '@clack/core@1.4.3': resolution: {integrity: sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==} engines: {node: '>= 20.12.0'} @@ -341,8 +326,8 @@ packages: resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} engines: {node: '>=18.0.0'} - '@colordx/core@5.5.0': - resolution: {integrity: sha512-3PxTH8itZzltK0U9jTwVVnjLXvnDYuq3m+QXsHkENxWiPRh4WaoLcs1SQjqgZ55kS+QyirpH5BVwzP2gMVG6EQ==} + '@colordx/core@5.8.0': + resolution: {integrity: sha512-cG0QJAO6VkaRUlIb0zOzX9gfJgs1pjoOL9gZ/PK1kfvBs0GCkADu5oQh6gPxXgQnZ3gV575h+lQRC0NlMDTclA==} '@csstools/selector-resolve-nested@3.1.0': resolution: {integrity: sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==} @@ -359,8 +344,8 @@ packages: '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} - '@dxup/nuxt@0.5.7': - resolution: {integrity: sha512-JLa4Xfr3s1ToCl4eSipyR+5eXeT7wyeqMRkKsSWXID04o8FdT0cSqKQxTuVNBk/UrW1mQIZ1Q3t4CAFFiV90Kw==} + '@dxup/nuxt@0.5.10': + resolution: {integrity: sha512-54Vehb7LmR7qYpC6KFwjDTSm6CB1CayBu+JXdHrPLrIjjr5xAgb43jvgOU+mnB+tsRh414fSsEy0QjBMKILQ8g==} '@dxup/unimport@0.1.2': resolution: {integrity: sha512-/B8YJGPzaYq1NbsQmwgP8EZqg40NpTw4ZB3suuI0TplbxKHeK94jeaawLmVhCv+YwUnOpiWEz9U6SeThku/8JQ==} @@ -856,8 +841,8 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/compat@2.1.0': - resolution: {integrity: sha512-LgaSCymEpw7tF53xvDw9SNsraPb1IBHxpdABIOM0hW8UAlP8znrjYtuxfR58FSJ3L9BhwD+FaPRFQpZq84Nh6g==} + '@eslint/compat@2.1.1': + resolution: {integrity: sha512-rMcy8GSrwNzcISX/BlTDY/GLB4eCopEuy9woIls3To+15OLxykZrxxq+WUcylCPCQ6F4MujjBM1DX5V1aqI3Vw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: eslint: ^8.40 || 9 || 10 @@ -877,8 +862,8 @@ packages: resolution: {integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-inspector@3.2.0': - resolution: {integrity: sha512-kylJhcii8eDOiRFPANNUHOyDebBIOt+nqYXt8q6W9FbhYzFJAXjLzJz6KFNzY0WvIyOBKdbSQdwdPNrkMh05tg==} + '@eslint/config-inspector@3.4.0': + resolution: {integrity: sha512-8TXN2JiWBX2pzY+bb5uccWBIZ3C1mSSzyvYDBwHaorAq+GaGJax9/BtwdnqbvWviVHUN5vHBgUkg2gYyd+js7w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -888,8 +873,8 @@ packages: resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/css-tree@4.0.5': - resolution: {integrity: sha512-iPmijIAq4hlIJB86PYmY/fcZORHtjphSqICDbwuw32A/JmkhZQ/K/6TjHE03zqf3n5yABpVcbRAMG8Mi9ojy8g==} + '@eslint/css-tree@4.1.0': + resolution: {integrity: sha512-cg0ohyrAG3swyGqt8t1K/OK97DqBw/ftDvlvyY1fmEst5B40UOmsimwLENq74z2dyw5CDM+3zJIW+CV2nFNDdA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/js@10.0.1': @@ -905,8 +890,8 @@ packages: resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.7.2': - resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} + '@eslint/plugin-kit@0.7.3': + resolution: {integrity: sha512-IkO+/KEUvwbVpiURZg+P7zF74z5Jxe0UgJxVni+RtoHQ6IZieXaO02kmadomap/q+l6bc/jdPGGqTjhuZnuz1Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@floating-ui/core@1.8.0': @@ -964,28 +949,28 @@ packages: vue-i18n: optional: true - '@intlify/core-base@11.4.8': - resolution: {integrity: sha512-A+Q7SKm5oEcy1E/cghqd7n/St4XjTqLhiiyDuieNcMrJcrHlkY5n0jp7Q9dD3txvVHzvsmBVV5M9wD5/s1zfzw==} + '@intlify/core-base@11.4.10': + resolution: {integrity: sha512-+yJ74JRWVJokdgG9zYNMyTSzeNV3O9T4vVxk8PvLFHmI+R/BYA//cITh7vhRK37hWLZ4/kTcKcUz1dlWOpypIg==} engines: {node: '>= 22'} - '@intlify/core@11.4.8': - resolution: {integrity: sha512-TGFCWeunb0mmKWpX7UXRAS2enMtucTC+NG9dT+RMfxFDCAIvXF33Wb2yJUbeNczxER4f0uMt0b9g1MCsROfKyA==} + '@intlify/core@11.4.10': + resolution: {integrity: sha512-zQ/dUn7Sp7mXneQMAGp1k1h0vYDXqKWh9wQz7GCReRyx4r9kiZZOdlL/mEAexaUcph6D0gbVxHoknS+je1Em4w==} engines: {node: '>= 22'} - '@intlify/devtools-types@11.4.8': - resolution: {integrity: sha512-MGpID+rlfzGUbNcnC20bm5NMSBHPrvx0atLTfv9dftn3kjXw1hGKDcIcwrO99tSrZEc2i+hczRL7ks8qXsHPkQ==} + '@intlify/devtools-types@11.4.10': + resolution: {integrity: sha512-xZxzZsAuu6/0zoLRVQWdpXWe5Kjl0LnWpjlQA3r9u9FbLYMhapqt7IwkgQyn0Tm2GUNAqhj9eZiUmYOrB024BQ==} engines: {node: '>= 22'} '@intlify/h3@0.7.4': resolution: {integrity: sha512-BtL5+U3Dd9Qz6so+ArOMQWZ+nV21rOqqYUXnqwvW6J3VUXr66A9+9+vUFb/NAQvOU4kdfkO3c/9LMRGU9WZ8vw==} engines: {node: '>= 20'} - '@intlify/message-compiler@11.4.8': - resolution: {integrity: sha512-vbzk17dYwduYiv52EK61+FDCyhfVg1uPUtPmiD/d45W99uJIcXywrweOBcHv7n9/iEqmXiMGT52bgJbZDQqK3w==} + '@intlify/message-compiler@11.4.10': + resolution: {integrity: sha512-oUB/scz2EJENXDiUJ7JjZffOrH8UIZ1BuZeHvonbi5fWLavLt04aivuk2OIByOZA0tsci1bkeeQRmwhb5M8Imw==} engines: {node: '>= 22'} - '@intlify/shared@11.4.8': - resolution: {integrity: sha512-XbRgrv+XEuvDr7UCY55oibVrh+o4u+A0VB6nSL0F5Z8LcZxE/8j573LYG6bCrOigIcHdGpSNI7Rh5UpC5/B/eg==} + '@intlify/shared@11.4.10': + resolution: {integrity: sha512-FeImVdPeoSHTm3NBFFZHv0eRP9gQ3F4lj2puDBX5Kw7iiM1uJW6JTf39ian0K/17pbXCI3ef5i9RVsRrALqI6Q==} engines: {node: '>= 22'} '@intlify/unplugin-vue-i18n@11.2.5': @@ -1054,12 +1039,21 @@ packages: '@jridgewell/source-map@0.3.11': resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/sourcemap-codec@1.6.0': + resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==} '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@keyv/bigmap@1.3.1': + resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} + engines: {node: '>= 18'} + peerDependencies: + keyv: ^5.6.0 + + '@keyv/serialize@1.1.1': + resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} + '@koa/router@12.0.2': resolution: {integrity: sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==} engines: {node: '>= 12'} @@ -1138,6 +1132,14 @@ packages: peerDependencies: rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + '@modelcontextprotocol/core@2.0.0': + resolution: {integrity: sha512-pJCEwGG7Lfr/+PQp9ZTwKXNeO5wzbfKL7H3MYpCorM4oFBoQrdjnBgEoqG+RjhsvS1FKrDbKux+M1HhlnGWqcA==} + engines: {node: '>=20'} + + '@modelcontextprotocol/server@2.0.0': + resolution: {integrity: sha512-YhHWdHfpFMQfd0prsEnxKeS3Qz3ytIGmsS0sth4KDjnacIT7hxk6hXHkJ9KysxlkvTM+WZAtQbbcUhdoP4Hvtw==} + engines: {node: '>=20'} + '@napi-rs/lzma-linux-x64-gnu@1.5.1': resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==} engines: {node: ^22.20 || ^24.12 || >=25} @@ -1155,8 +1157,8 @@ packages: '@neon-rs/load@0.0.4': resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} - '@noble/hashes@2.2.0': - resolution: {integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==} + '@noble/hashes@2.4.0': + resolution: {integrity: sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA==} engines: {node: '>= 20.19.0'} '@nodelib/fs.scandir@2.1.5': @@ -1189,17 +1191,17 @@ packages: peerDependencies: vite: '>=6.0' - '@nuxt/devtools-kit@3.4.1': - resolution: {integrity: sha512-6ltPm2yUW8GvDdf3VJna7+flLi+ej7xRfSr+S4ovevKt/CuPf9EqYOn1jW7Kw/U1MXt/71zkn+/O2vu3G6O9Hg==} + '@nuxt/devtools-kit@3.4.2': + resolution: {integrity: sha512-TPPbmH9xrExagYxfCe6JgtbHmgchfgDdA656Yws18rn8I/oCvB+gcw3kTWBBp2sC9ipZPXsgbsW/yZnVnGNBiA==} peerDependencies: vite: '>=6.0' - '@nuxt/devtools-wizard@3.4.1': - resolution: {integrity: sha512-taGeuTnkHsZVjgD9r6NXvvHaBzB2j4mCgOmlmkz3ntsqgh1SJfmsD11Tmtl7FVAxJS8Wuvuzgt0GyTlADBW9Wg==} + '@nuxt/devtools-wizard@3.4.2': + resolution: {integrity: sha512-U2G8fw7KW1rdECyJDho5N14z8hSllpTk430KG1QPLjrv5w3pDksZ+YcpITd0u762Vw3gq3Arpg65Bk6U4ua6aQ==} hasBin: true - '@nuxt/devtools@3.4.1': - resolution: {integrity: sha512-20zZs6k/zAdi+PM7s1BwxE3hanZ+R1OGi5DWCKPyzSnhUUeeNebvWNgec7Rwnx6iKLkJfK4WFIZ+FL2QurG/ZQ==} + '@nuxt/devtools@3.4.2': + resolution: {integrity: sha512-Nidg0/zB710cyK89ltTkv66hMfPlIPlKA+Yb67bIrAkNm5PoTwQ1goHdFWHIAGZ9nTadcVTzATwMwa56nvl/Wg==} hasBin: true peerDependencies: '@vitejs/devtools': '*' @@ -1262,15 +1264,15 @@ packages: resolution: {integrity: sha512-h9g1kt9O2iU9nX6HDFu9gvwtpn+8oSJX0RSTWRBnEx/Pkz+WlOHtjuS0SbkTAXw5aT1+H1GysWVwNTjJfBY/0w==} engines: {node: ^14.18.0 || >=16.10.0} - '@nuxt/telemetry@2.8.0': - resolution: {integrity: sha512-zAwXY24KYvpLTmiV+osagd2EHkfs5IF+7oDZYTQoit5r0kPlwaCNlzHp5I/wUAWT4LBw6lG8gZ6bWidAdv/erQ==} + '@nuxt/telemetry@2.9.1': + resolution: {integrity: sha512-WYQs6GvebU278YXhbGlLA8pUO3ox+juHAiKCB3SEH0lq2PDRwX465tHRtpVIqsHv+lGK/n99FC7qqyBt9+p3oQ==} engines: {node: '>=18.12.0'} hasBin: true peerDependencies: '@nuxt/kit': '>=3.0.0' - '@nuxt/test-utils@4.1.0': - resolution: {integrity: sha512-B0CipGKVVY5qbLMXJqYPYdalNzE9VFzybEAOqHGFHPDqv/8RFRe+/F3lJJigtLFroxaBDMMyrhLcmgKIXBv8og==} + '@nuxt/test-utils@4.2.0': + resolution: {integrity: sha512-QwmLxlOFoqHrHnOSSl3TJObJ+htx1UgoasP98zbcQbWjkXBef//pMMn7pKzEBHbrW4WfRCioDQw1L2nI3BqkfA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: '@cucumber/cucumber': '>=11.0.0' @@ -1468,8 +1470,8 @@ packages: '@oxc-project/types@0.141.0': resolution: {integrity: sha512-S4as7z0j0xQkXcJlyY5ehntwK8/wRkQb9Cyqw+J/N2rkWGQGK0SxD6X6DhQTc7qsxVTBxXbxZtBJh3mr3PtIzQ==} - '@oxc-project/types@0.144.0': - resolution: {integrity: sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==} + '@oxc-project/types@0.148.0': + resolution: {integrity: sha512-Nm4s/jB+4FpFsPhWGEC4h7rzksesmtnMXomo6rCMcg/b8zLQuOziRgkCS1fxDCXOlJB/6Q8oABOZ/OP6RIPj9A==} '@oxc-transform/binding-android-arm-eabi@0.141.0': resolution: {integrity: sha512-FOdseb5KpV3JtkM+7TN4u3sW3aQkUSRy0bWWiKgT/qrIGqZHqzKEUpwaMybutsfwEglWBXuJgnrT9loWisPkrw==} @@ -1629,92 +1631,98 @@ packages: '@poppinss/exception@1.2.3': resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} - '@rolldown/binding-android-arm64@1.2.4': - resolution: {integrity: sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==} + '@rolldown/binding-android-arm-eabi@1.2.7': + resolution: {integrity: sha512-EypzgnYCwyVY4NDHKzGmNJT5b+XaQEBniHxsMdeIQLB/tcCzZnhqrzHpZFbX9iaxx+5RiB8caATBtfvZP7zVxQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@rolldown/binding-android-arm64@1.2.7': + resolution: {integrity: sha512-l17HE9EweWaqJZhuUuNBN/FzM62xw+DECVnJyvMsxn8vJFAGLy5QfLDoYAcronkAN8VxKZHezDpulHDPx95vFw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.2.4': - resolution: {integrity: sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==} + '@rolldown/binding-darwin-arm64@1.2.7': + resolution: {integrity: sha512-8ED8ELFvHXc6OCETIn4gXObPiaR6bckM/ipXtbzlPVDRMBfEGjCKgO90F9YtfdpDatVx/ZQw7aZ1vUMf/+T3Mw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.2.4': - resolution: {integrity: sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==} + '@rolldown/binding-darwin-x64@1.2.7': + resolution: {integrity: sha512-/WPripjtiAIZ2tWY7ddijORT0Ujg87wxWW/qcoFVCKAWVDPhtY0xr7Dj0M3GyNGz60jGwTElhro/mkF9dT7dDQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.2.4': - resolution: {integrity: sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==} + '@rolldown/binding-freebsd-x64@1.2.7': + resolution: {integrity: sha512-14DI4NcqpvbICxSnGLx3PmtDaWqRP/KGSGb6C+JLLVPeZRl6dKdHba3pGsqT3vpdTqhEYIPG0MMQ8c0xYqoJxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.2.4': - resolution: {integrity: sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==} + '@rolldown/binding-linux-arm-gnueabihf@1.2.7': + resolution: {integrity: sha512-bxrWIRvHWQvbJwi+VIie/kDJmQxcNE6xxWwZdqF/ExVAigtHkv54WTLQPb+QsZdnFy18fg7JPfWGL0RH6vwIlQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.2.4': - resolution: {integrity: sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==} + '@rolldown/binding-linux-arm64-gnu@1.2.7': + resolution: {integrity: sha512-toOY2BChBZyuxU7OYX6Tn389di4IzAqPTycVcci0O7FSfBqzRB3RZn+K5Is6ANf4tmgRd/K1yZTsNTXbkXsnLg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.2.4': - resolution: {integrity: sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==} + '@rolldown/binding-linux-arm64-musl@1.2.7': + resolution: {integrity: sha512-lAIXTH/aiLRLxsTgQvfhjo4K1ydWIp00+V0voOr9beb/9ZmkUFrSIb03dXNFRgMNvkE6oGsF10ioQ6UsI+vS5Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.2.4': - resolution: {integrity: sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==} + '@rolldown/binding-linux-ppc64-gnu@1.2.7': + resolution: {integrity: sha512-kdnwS28Pkenp/mZMRwjXXXwxQ7pIsm+bF919LUK93BOyhcLsrVKdP2p9fxpiPNPAbNuch8ypQt0pm2P2LYCAGg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.4': - resolution: {integrity: sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==} + '@rolldown/binding-linux-s390x-gnu@1.2.7': + resolution: {integrity: sha512-516OdsyLdr5E65paF3yBF55t8mfm9+gmtCsK3xI7XKXIT7EfRlHhxL8K/NR6Hu8BWSgF5+1w74lTL0+nxcc8Qw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.4': - resolution: {integrity: sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==} + '@rolldown/binding-linux-x64-gnu@1.2.7': + resolution: {integrity: sha512-r8/z8n7GFaYRln3xmP1Cxy0HH/HLM0uBUPkEuSVEfKGDA89M0FsZRZJRSwe/tJjRx+fpH/gjorfhB8tmEbSFLA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.2.4': - resolution: {integrity: sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==} + '@rolldown/binding-linux-x64-musl@1.2.7': + resolution: {integrity: sha512-pAsE8iiDxUg1xBqdhrTfg45AVDVpirjz00sblEYClGNNcMnDb+e8beQgqIAw6LvauX/APvgxUnwrgun/YYGBhw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.2.4': - resolution: {integrity: sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==} + '@rolldown/binding-openharmony-arm64@1.2.7': + resolution: {integrity: sha512-lTcIYmmnQQA8Or/2DatS6oSqcdLHvendjS+zLu+FwgToynWMRSmQdpM65fTANJgIS4mjbMOo5KT2lnT9SAb96w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-win32-arm64-msvc@1.2.4': - resolution: {integrity: sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==} + '@rolldown/binding-win32-arm64-msvc@1.2.7': + resolution: {integrity: sha512-e3Gu3WxbNk/UqQhxqU7YIYO+9ZBvWNz3U+h/qRFosscMFzdRPbXYSaSWgSnklv2fz1TgzBTcti2z35c/7irsHw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.4': - resolution: {integrity: sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==} + '@rolldown/binding-win32-x64-msvc@1.2.7': + resolution: {integrity: sha512-W/jg5qoRSqjsEv0+dZi4e687mcHqmVuU0P4fK6qS/xjetW2Gmc1W8j//z5nAeNcC8Ttm0hV46IjcYeuVwYhuiw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1803,141 +1811,141 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.62.4': - resolution: {integrity: sha512-RrPokAb7dmbxFoeO3TloqHyOjgye8RkBhSqmp4aJMIex4c9r46ZstPnleDQOq1t46VOVjwIuwNogIqbodV1Vvg==} + '@rollup/rollup-android-arm-eabi@4.63.1': + resolution: {integrity: sha512-UZ8sUxPTiHWYX9QNdJedb1kDZSpS1t/VPWBWGSgqHNi9w3Cu6IXvu2mzbhiTiPvtrqgTQJ+zqiAq2iPIPilpaQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.62.4': - resolution: {integrity: sha512-JKuJc+pnpks2pjy7L/N3v/cAkZxYlnmuZoD840ldbMI5KDbC4iO9NKwPKYdjYFCMAIIlBzYSFHxIJVYzRo2/8A==} + '@rollup/rollup-android-arm64@4.63.1': + resolution: {integrity: sha512-cQ4nFQABN5cDvDpbvJ7bMStCpnaVxynZrRMfUJYgxcIk9Sh54FIO1vtfkg0B69REjER77ioZ/ov+eAApx/KmLQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.62.4': - resolution: {integrity: sha512-krw5uS2STmvJ02x0uTXHbqQNuz+9eZ1iw+qXk9dmW2gvV4jV7O2hEoOnuhFrpOPiel1mBFtqbxYZZtC46hXLOw==} + '@rollup/rollup-darwin-arm64@4.63.1': + resolution: {integrity: sha512-FQNqd1lRy/0QhDk3xeRIkSBiCpXCiDnZO3YLVdcDKN1UBiKToNftCzcXYNLshmPDUMlu2TdeS8tGcsU6f3YF1Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.62.4': - resolution: {integrity: sha512-wsTxtgApb4PrOsNJIm0FZ1h3WvCC+k9uxLJ4ad75hgoS4NiRes2SoJFlDAyMwiUY8IssDqGcHbXuN0sx1tfF1A==} + '@rollup/rollup-darwin-x64@4.63.1': + resolution: {integrity: sha512-pvD16V939D3CloK0+qikpGaxiPrDUXTe7Y5cWOMkMSy7m1cawa8EGy/kXYi/G/cKAC4HDAbSnzCIk1WmsoOKXg==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.62.4': - resolution: {integrity: sha512-GUOnQlyZe3yAXhWOtOMsn5Qkrv5E5mZXa0thbARWi5Ei2szlVXJFQhddZ4HbAzh8q92w5twp+CQvs/eFanz9YQ==} + '@rollup/rollup-freebsd-arm64@4.63.1': + resolution: {integrity: sha512-pcFGeL2345VwdTnJhA6zLbew+YgWB0qBG2+dMtXjCicf6+rm6kO6cOoh5VnTe0ZMrMRgRyuHmCJxZWrIdzYuOw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.62.4': - resolution: {integrity: sha512-/Y7f3QuxjzPKsjA/rfEDa3+0vXqyjmJ50Ln8dPpCmWkKTrUoWHG1cWhTqaAMLob2m2nESWuC7yGrREz019Ztqg==} + '@rollup/rollup-freebsd-x64@4.63.1': + resolution: {integrity: sha512-mRJlqSRulVzcKq/LKA6ICSIc3K/l4fzlVn/gePn2nXIHy8seRi5z/eeRE0d/XMBxcMldiXtQTSpRj0tkkC3g8Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.62.4': - resolution: {integrity: sha512-81wiiX3v7aqy+T+bT61TJ78yJjRquqFFTTbAPt08imfQQzkPIW8t6aJbkTagtCCrXMNc9D66+geqlK7ydLPNqA==} + '@rollup/rollup-linux-arm-gnueabihf@4.63.1': + resolution: {integrity: sha512-YDUNvVM85TI3g/1OpnqKP1h4NeW/j64DfWMf+G3M809xNk1bJSnpFp4sh83NpmVE5DXnkh8ULor4LTVZKoYLHw==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.62.4': - resolution: {integrity: sha512-9kmDIvNZqdoHOBZgNtpTBeLWYO/LVipM3H/j62P8848/l/VPEQL6N3uxU9pvP1oZAsXyC2MEnFP3ovRjo7WYNQ==} + '@rollup/rollup-linux-arm-musleabihf@4.63.1': + resolution: {integrity: sha512-7Mcn71p9ZuQFAj+h+dhQXy/yeLePRS2yKRnmW1DijA9thKO5qap0GNOIQK4yQ6iP3SU0Mrb/yWo8h8vgRba8lw==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.62.4': - resolution: {integrity: sha512-CcnXHWnXg69g+DX5VWL3FHts3qMRN2uVEHX+BZvGLdd07/gXkn3ePjYtO1LDJvxkGKVHMclKBRa1QUTH+6toYQ==} + '@rollup/rollup-linux-arm64-gnu@4.63.1': + resolution: {integrity: sha512-4YiLQTX6U4CSl0L9cluep9A9W6UmTfqBDc2/CH6wlu54pl4E7Jn3cOD8oxzvBDEGk/JMKgJ47C8g+radF7mwvg==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.62.4': - resolution: {integrity: sha512-iFOibiHnTRuhrWLlRsOQFdZJJIa7S8OwkneJr4ocALP16u5yk6lWLINFwhHaEqBFMsKDUZofLkGos7+CPzGB3g==} + '@rollup/rollup-linux-arm64-musl@4.63.1': + resolution: {integrity: sha512-2ra8F7w8OquwZN9z2/fKFnli69wa8PLwaVzRMIPGb13ByMJwC28Fbp8YcVGoUhlYMTt7j5j9bNgpysrN2UM+vw==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.62.4': - resolution: {integrity: sha512-XnWYMI7euHlb5a871xPja+Gm7DRCFU+FGRrtS2sMq9N8FvqtpagUy6gD4YOemC5MRk9xbh8+jYMEJbigFQwsgA==} + '@rollup/rollup-linux-loong64-gnu@4.63.1': + resolution: {integrity: sha512-Sy20ncyhjmBP0Ml+UvQbimjlk6VFgjW5uNP+qqwHB00mTE8Bl2C1TuHTlRwK2YoXeZbee5lP2XevBWVkAQAtSQ==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.62.4': - resolution: {integrity: sha512-qGDAlO0U8xedCcsdRm9oaoQY8DAx/QT7uIxJWhCdx0ceIWX783UC9QSYkdpzAe29wNiVfp24+bZdQmn49o45SQ==} + '@rollup/rollup-linux-loong64-musl@4.63.1': + resolution: {integrity: sha512-noITLp8oNjYliPnGWmLyelIHwULGqbHloQHGw1rtxbWhTuWooRpnZarZQJ1y9EUC4szuCusCc+HEpUtxpIwYvA==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.62.4': - resolution: {integrity: sha512-ru4H6ezD7ysA5EiEK6qkkaEb4modH8CTej6kUy/gQi20u3kB3G7Zn8snXXkeJSCOFKG/rbPPtM/+9Wgas1961w==} + '@rollup/rollup-linux-ppc64-gnu@4.63.1': + resolution: {integrity: sha512-hlxxXd+F1mWiAcaFR7Sv9ZQT6m6UfI8+Vy/kFJzztq2pDMU/0wZ9sish0iszNZvsQDo8Gc0i5yuFEOz5dDf6fA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.62.4': - resolution: {integrity: sha512-2W4MO5WQVJnbJaZdvDb9rhBDuFU1nKIepPFpJUBsTh2k1YY2g+ODViaWuyOAjQ5cOP7NvrvLzt3wvHOoiAvc7w==} + '@rollup/rollup-linux-ppc64-musl@4.63.1': + resolution: {integrity: sha512-EF7OpqQTQ/BvGqLzUi4rEHuagCV9MugAUXSHemwPW5vxZ75RR+jxO/2j95Ph2dalMpFHSVECjRoioHZgA9zOYA==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.62.4': - resolution: {integrity: sha512-+fxjfuoAmVMCYV5QyjoIpu0cp5DOiOTeqYFk1AVaxGr+/ravWLX89XfQmptsoWcaVy/TGf2hexzbUOrCQIL1CQ==} + '@rollup/rollup-linux-riscv64-gnu@4.63.1': + resolution: {integrity: sha512-wQO3JesW9PRkwlabQ27y7sPfVOOTLRG73I4F2UYHG5PXun3J9U3y+b7ezVKSYbsvSKGQ1k1cq8Qlun4C9kLt3w==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.62.4': - resolution: {integrity: sha512-jTn8JfHGL4djjFxPuM06LmNUJDsst2jeVlsd9OmIH6zc5sC9K6rIuO4YajXatLUpBmBKl6b35ro1QZocLi+tcA==} + '@rollup/rollup-linux-riscv64-musl@4.63.1': + resolution: {integrity: sha512-ouAGwhO6wHRXdnOVCOsB0tRFkA7nhNB2Nwax6oECXN0YiN8EYUTBAOudADOB1PI+yDL61TeNx/u7MVCzksNbkQ==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.62.4': - resolution: {integrity: sha512-oCJCJL4pXsoDcP2QZ+JVlPTIRc6266zsIaeJJsWImmF7HO0W8nb6HuSgZlMWxJwaPf8ehbSw8yo0EUw925hKsA==} + '@rollup/rollup-linux-s390x-gnu@4.63.1': + resolution: {integrity: sha512-q2R38Sn+1J8RxhfJ+T54wSWmyKXWec+9jgDfqO2AtArEqHO5R2aeayp5H5OYLr5UYDVGsVaZPEFUooMhYCdz5A==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.62.4': - resolution: {integrity: sha512-W69hukhZ3KKNRCaMIEzKvcFye42hh0FE1+YoYaf5+Ikacuftoco6yO/xouz0hc5d5W/s3yBro5jRiuEE/Q5vUw==} + '@rollup/rollup-linux-x64-gnu@4.63.1': + resolution: {integrity: sha512-gfI5T24WLLuFfSKw7Go/zDXjAAV0fny0swTaDv+WjK7vqcw4cRhFfdsyKL1n+ukI+ooBxn3bVQnyrn06WpI50w==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.62.4': - resolution: {integrity: sha512-qiXbGG2jkjXhzXpsFZSR2Xpb8DN/UaxYsbb/STbuR/6fpaDgRmmaq1B/LmtF2wQFOFOSsK2jdE0RZ3a0zHn4QA==} + '@rollup/rollup-linux-x64-musl@4.63.1': + resolution: {integrity: sha512-4h6XqthmB4Hspji84wvgk+ElodTsGj+dbZqHJHHtKxj4mYq0ANSEEPX9ys3moJueqsRjwpaJYH7874Itwnj2ow==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.62.4': - resolution: {integrity: sha512-nWeM//hxv8mIo6jD7Hu4o48DVmV9pbV6gsKaWU+4NFyqHoPKwrkRiZGLKUhOBk8qNmDmpwFtPKg80Bo/Tn4xiQ==} + '@rollup/rollup-openbsd-x64@4.63.1': + resolution: {integrity: sha512-dlfCOa87o1VAYegLQ9EKilx2JCeRofiyPGhTCmqnuXZ6bMPiycO1rq1+sKoulAp7pGLIsTIw+1x5R+zgh5LhhA==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.62.4': - resolution: {integrity: sha512-s62SQ/vgsRSvMwDkOEfTqfgASF0f26ZNaQuTA6Aok5lrikf89yI2W0gFHvZb2Jpgc6N8JnOKZgCK2iciO3CsxQ==} + '@rollup/rollup-openharmony-arm64@4.63.1': + resolution: {integrity: sha512-cjkLbOlfcm3QGhMM1J5zaZjsw1GggbN6rw9UTSSRrPrR1KkcXnN7Uq9rPw34xImQ9VOY9GN+6u2Zj80B9ptkcw==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.62.4': - resolution: {integrity: sha512-J6wGf8TVGbXJq+HH+ttTvrcfNKPbuZecV6KT1B8I18BC5IURUh5kl4Yl5OEP5eFIUoI5BWxCsyYMhFsDx8kekw==} + '@rollup/rollup-win32-arm64-msvc@4.63.1': + resolution: {integrity: sha512-Li1KdUnWGE4N3e1F/B4RTB1ms+nG4WBgjByO46pkeBVX/2UBsY53xf5vK9WygVmnH3RwncIST7lkSdLSY6P9lg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.62.4': - resolution: {integrity: sha512-zmfrQd/0wu6oJs8Vq8KwY/YtsKSsLtKe/HwAP4Wqy8LhWjeT55fHRAkOhYQ12wI3ayS4Tt12d5CDRD7N96SAYQ==} + '@rollup/rollup-win32-ia32-msvc@4.63.1': + resolution: {integrity: sha512-t4ZYOSoLTgwhuFMrmTMLx/+i1DQVK7HYqMc6kY46EApwi8X0nIVphzdNoThU3xt6n+N5urG1/gxBdCaKDLavfg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.62.4': - resolution: {integrity: sha512-qPzHqdj9rfUD+w79dtE07zi/kFwKyCJqplp5K5ygeLTp7jLpAoc16OAH39HSmRC9UpozaecsleI8uAdEj6v2yw==} + '@rollup/rollup-win32-x64-gnu@4.63.1': + resolution: {integrity: sha512-RgroPfMmKlD1RzSDxvwgcPiy2HNQKoYV7OmwIXDsk73uKW5t6B/V8KIy27SMv/FNXFo/oSBtWc9J0X7t91ezZg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.62.4': - resolution: {integrity: sha512-zD6NdeWEByGE9QF9vCrlJ5YQB4oq9q91kPZS37Jwj5hOkvR1lTBSpsKhKDw4IJtbQ35LsTS1HD9DZYGKIshU1Q==} + '@rollup/rollup-win32-x64-msvc@4.63.1': + resolution: {integrity: sha512-at8QVep6S3h5Y6gSbdGU06bRY5WJkf6WUduM9YtvYMbYhB1MOFfUgc6kehitQXzOtMSaT70q7f9ydPhpqu821w==} cpu: [x64] os: [win32] @@ -2002,14 +2010,11 @@ packages: '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@types/jsesc@2.5.1': - resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@26.2.0': - resolution: {integrity: sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==} + '@types/node@26.4.1': + resolution: {integrity: sha512-k97ENvZWtvA6yqz5/FS6a7duDgOPEeOQOc2iKS/nY6mX6qJUKtLnWzQS+Xj6tXweyj6ZcTAK2Qecetnvi9nCLA==} '@types/phc__format@1.0.1': resolution: {integrity: sha512-hoAQFKcP3voXk/ZEl3jrvS63o/HYLszq4nA2mqjytaSEHEy3j3t0gSFtPLnfKtX34k/xfath7etOoGw5ukoqXQ==} @@ -2026,75 +2031,75 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@typescript-eslint/eslint-plugin@8.67.0': - resolution: {integrity: sha512-Un7Heoyj65NREbKAyIrFxeM143NZpExWmy1Nep4DLeQOeLlTeumPjoNKnBrU5D5moWXbPJgRa5Uwcdu0faVNGQ==} + '@typescript-eslint/eslint-plugin@8.69.0': + resolution: {integrity: sha512-t5jQTKPIgVW1PE6dR6H6Qz5gm8zjMlX5/2gRaOGd9eO6V7J+tQc6iWKukEe7dY8u9HyYasQ0yfF0/FSSTEO2gA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.67.0 + '@typescript-eslint/parser': ^8.69.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.67.0': - resolution: {integrity: sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==} + '@typescript-eslint/parser@8.69.0': + resolution: {integrity: sha512-l4b0DhWioGg6Gt2ebGlvfkFMOjRsauxtsnDRwUSRX1qHq3HdTfQHV8wW9zEXeciai6HfeaKOedQn2Zoofx3WBw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.67.0': - resolution: {integrity: sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==} + '@typescript-eslint/project-service@8.69.0': + resolution: {integrity: sha512-yi4obFrHMmnsesWehHbkg9zMA7Jt8cXT+mKM08G999pH1yT6nqgsHx7MYm0uY1wAj8CqiBXYRJ7WAT0QdQHQXg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.67.0': - resolution: {integrity: sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==} + '@typescript-eslint/scope-manager@8.69.0': + resolution: {integrity: sha512-ewfspqWvSxKSOaplqAUNbaSFO0eB6w1EtQ+esfYFRm3614Ty4uNtExkcbgd6nWsXphbqKyf9ZYdbZdv2xEoWEQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.67.0': - resolution: {integrity: sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==} + '@typescript-eslint/tsconfig-utils@8.69.0': + resolution: {integrity: sha512-xNqK7YTDZsLniQMV/4rpFR8Z5JlqeRvVjuG1YgF/mdPVH84HSD19L8CczMA0qg2RfwEV231GHH3VnToJDo4MfQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.67.0': - resolution: {integrity: sha512-aVWDXbRmdXO9siTfX4ditQI1T9+zVcNazT48EJCD0v40/9RIFoUgZ05CmGEq9H2gixRpjUn/iplwvlcvutJW/Q==} + '@typescript-eslint/type-utils@8.69.0': + resolution: {integrity: sha512-ZfoJAVg3JZndQEpEl9petVlxau3lRuElc4HRMuAlLCf8to04/iHz692RUSNmXKDjEuJmIL+KZ2/BsOcBc16dsA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.67.0': - resolution: {integrity: sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==} + '@typescript-eslint/types@8.69.0': + resolution: {integrity: sha512-K3VrubUPhlo9VDBS6QdI8YB5j7ClpqLRdefcz6PFrhnwicehBweqQ9Evhl4l+FYz0HdDmMqIiSX0aldGRYtDCA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.67.0': - resolution: {integrity: sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==} + '@typescript-eslint/typescript-estree@8.69.0': + resolution: {integrity: sha512-AdFkgqck3Vudb/kWnxlyafU/4aBhHrbQ9locP2N4psXTy5mOBg0SHJumnLvx7r6g1gV4DKvUFwV2nJZBoqOD8w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.67.0': - resolution: {integrity: sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==} + '@typescript-eslint/utils@8.69.0': + resolution: {integrity: sha512-tUbx60BBqQa31kXF5MCsOOLL5E/WzUuxIn7YpAvq+eaUlqvk8/NXnXMBNAdLCr0icjkzem7iUA5QqWHe/hJ1aw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.67.0': - resolution: {integrity: sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==} + '@typescript-eslint/visitor-keys@8.69.0': + resolution: {integrity: sha512-+rmdgPA+EXkNgKYvHvFfhrs35utXbwaC5PGpDquSXcoXQDKUA5UjV0LmTucG/4JXkM31BTu4TilHtrN8IVBe8w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unhead/bundler@3.3.2': - resolution: {integrity: sha512-FgddDfNva/2n/BPRsqNJVNJ26TVnO5ywqrWYeC8xXV4c1CLQRABDwmmyy7hEsKH1YXg9bDb8IkZzyNBkJ59LTQ==} + '@unhead/bundler@3.4.0': + resolution: {integrity: sha512-RnsCYynvDiUwmZ/U7TkFwFLr6yTRXVFJlZFj3ehi+m6M4f+GWL/O+6BTQzaHdz59zg2UHHejQvwuXvcL7dj0Dw==} peerDependencies: - '@unhead/cli': ^3.3.2 + '@unhead/cli': ^3.4.0 '@vitejs/devtools-kit': ^0.4.1 esbuild: '>=0.17.0' lightningcss: '>=1.20.0' oxc-parser: '>=0.98.0' rolldown: '>=1.0.0' - unhead: ^3.3.2 + unhead: ^3.4.0 vite: '>=6.4.2' webpack: '>=5.0.0' peerDependenciesMeta: @@ -2115,8 +2120,8 @@ packages: webpack: optional: true - '@unhead/vue@3.3.2': - resolution: {integrity: sha512-WMmKtBxEzYrs2GBG3nuFFguuq8CdbQ6s7NX8TxBNev++WGh8otHa6KvmlMwNCawu+iH83aRWuCaxLpCKAuCDkQ==} + '@unhead/vue@3.4.0': + resolution: {integrity: sha512-fSnDS9d++bqR4t1z6+zFN7bQB5F0+5nwvE4yHW7BGRfEmssCP4fel0GprooUgoLkzx+FcAWMwVIakyaeErSRBA==} peerDependencies: vite: '>=6.4.2' vue: '>=3.5.18' @@ -2247,8 +2252,8 @@ packages: cpu: [x64] os: [win32] - '@vercel/nft@1.10.2': - resolution: {integrity: sha512-w+WyX5Ulmj4dtTZrxaulqrjaLZHSbnPzx75SJsTNYmotKsqn1JlLnDJa+lz5hn90HJofhl/2MAtw0mCrgM3qYw==} + '@vercel/nft@1.11.0': + resolution: {integrity: sha512-m1QFg+U+3yPOnP1xSYJ73UIRxLOXdts1JOhiOiyPYqEsALgrXFFINvgUaD6R6iNvaBFAjHllBCbkfx4FuOdpaA==} engines: {node: '>=20'} hasBin: true @@ -2348,27 +2353,15 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@vue/compiler-core@3.5.41': - resolution: {integrity: sha512-q0Xtv/F9w2YO/7htQhtiL+Ev2WCJbe5N2hc+XfgyKkEKqWpSxknmT8QOuGdEKNdjPq0c3F7rNpFkTo3Kfrm7pg==} - '@vue/compiler-core@3.5.42': resolution: {integrity: sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==} - '@vue/compiler-dom@3.5.41': - resolution: {integrity: sha512-oKacVfNglLvGjnS6BXOlGL7EyG2h8X03pqXCjzotRZUaXGjbrTJUnVAQjrCqUnS+lyu31nwQjZY/d817GmCnfw==} - '@vue/compiler-dom@3.5.42': resolution: {integrity: sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==} - '@vue/compiler-sfc@3.5.41': - resolution: {integrity: sha512-XJhip7R2wy6vX3knCxdZN4KracFaZUef58s1KYewqluedHIJaPIVfXoYT7MF1F8nCvv6k8bWWxDC8opMkg1VTQ==} - '@vue/compiler-sfc@3.5.42': resolution: {integrity: sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw==} - '@vue/compiler-ssr@3.5.41': - resolution: {integrity: sha512-U3v5OejKEGqOI0Wy0+Sz7hGuIFZHA4LSXzrNM3IMIeDyJEBBfTpX26n3SDgToRpP2bLc9FfI2j/kSgcJ8Emq5A==} - '@vue/compiler-ssr@3.5.42': resolution: {integrity: sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA==} @@ -2389,8 +2382,8 @@ packages: '@vue/devtools-shared@8.2.1': resolution: {integrity: sha512-Fkac7lUdGReh6pVOi3AYPRGe82LQqRmAfThW7RRligOAP0ZA/Z1z9XLHDM9dv34pV2HRc79DK8uKPeG2fLnA/g==} - '@vue/language-core@3.3.10': - resolution: {integrity: sha512-CR7ByBbgPHqhxrioKPOcZBqttaozzLNwtkCzXQ+uF8gLPHnUe03srPnGpdtHD3zp+bq5iyVkZ1WNx7W564RPwg==} + '@vue/language-core@3.3.11': + resolution: {integrity: sha512-QJmpliwAVpC/OxubIByPAhNzsQPRc8/gxlN2qnVzVfIMjMDz/9RnXRFoetjz5yEgXVXyp4LqhXq3V53PjmNzFw==} '@vue/reactivity@3.5.42': resolution: {integrity: sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ==} @@ -2404,9 +2397,6 @@ packages: '@vue/server-renderer@3.5.42': resolution: {integrity: sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ==} - '@vue/shared@3.5.41': - resolution: {integrity: sha512-IOnwSCma8j+9xJT6b8H0dEYidC80NsYmNMlZxRsukYcSoGaDBohog5hDxzeUXdFeGWFA++vWvxqOmrr96VlqMA==} - '@vue/shared@3.5.42': resolution: {integrity: sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==} @@ -2551,8 +2541,8 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - autoprefixer@10.5.4: - resolution: {integrity: sha512-MaU0U/za7N3r6brxD4YB/l4NSrFzLPlANv6wEuQVaIPlD3L4W9rFcQPbL/EilY9BHhHvhfcz3gInDLrEtWT4EA==} + autoprefixer@10.5.5: + resolution: {integrity: sha512-uiRYvQYe/nNSzBJ7OUnd2/TZVsAdob3blml44teEpee9Cc1f4rGZFewO+JT3Wo8mgFOSzNqes4FHZn/Qz8WOuw==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -2573,16 +2563,16 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - bare-events@2.9.1: - resolution: {integrity: sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==} + bare-events@2.9.2: + resolution: {integrity: sha512-AIPKioV7/Y/8KfZ3AAhjPJxLLbY49S64Ym5DakZlUg75qQiTgUq9hEJoEwa4eUezPUlXRy/i5NpsKvo9jgKmoA==} peerDependencies: bare-abort-controller: '*' peerDependenciesMeta: bare-abort-controller: optional: true - bare-fs@4.8.0: - resolution: {integrity: sha512-fM+MhCvdQhZ7NV6S95a07gPSqjIYKn6mFaXfx266wN3ajZGl/+1AzH+ubkXQ0fFZvOe2nk9VHkzdYkQE5zMV3Q==} + bare-fs@4.8.1: + resolution: {integrity: sha512-N1nnXdHZAOSstz0XiHikGS4HGMH4CnSwhqWdGQQMqqdvp4Jybm9sE3R1WVnpWVd4SFkc8ryPDBLViNLwiEqECg==} engines: {bare: '>=1.28.0'} peerDependencies: bare-buffer: '*' @@ -2590,11 +2580,11 @@ packages: bare-buffer: optional: true - bare-path@3.1.1: - resolution: {integrity: sha512-JprUlveX3QjApC1cTpsUOiscADftCGVWkzitbHsRqv84hzYwYHw2mbluddsq5TvI8mH/8Ov1f4BiMAdcB0oYnQ==} + bare-path@3.1.2: + resolution: {integrity: sha512-ZyKbsuuqK6Ag0K8pX6V5Txq6XeJRvY+wXucnFGRjiyVYP9YWDpIQugk/b+enRYrEYBJaqLzghRQpXPMR7341Nw==} - bare-stream@2.13.3: - resolution: {integrity: sha512-Kc+brLqvEqGkjyfiwJmImAOqLZL7OsoLKuavx+hJjgVV3nLTOjloJyPMFxjUPerGGHrNH0fLU06jjykMLWrERQ==} + bare-stream@2.13.4: + resolution: {integrity: sha512-PcrQ8lVLbiJscNm1Kez+Yp4Gy4AHGcN1lzwjvf5NybWen7VvEgUfyfnXYJ2zNqWnzOfCb1Abq6lH8ti0syQszA==} peerDependencies: bare-abort-controller: '*' bare-buffer: '*' @@ -2607,14 +2597,14 @@ packages: bare-events: optional: true - bare-url@2.5.2: - resolution: {integrity: sha512-L13PCJzKG8RGvx8V1/DdMi12ERhC3tprr7/8a94BxpmnRsFqxh5XZNdhtMxu5HPkRshYOOWRGY8lDP7ZhpG9Cg==} + bare-url@2.5.4: + resolution: {integrity: sha512-Gxa7UVWBr0/edU1b+TJhn/AZvMQUj9OGspvYsaTYQrAbZA4BOTZGL3LiZxvD+CeMlDH4juwD84+eTAp/bLYW5g==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.11.14: - resolution: {integrity: sha512-JyJ954WzuIR8/FFzX0o5krdSTrBAkcCSRfWSleRsIHSWV+cZe2FI1PKggVkFke1hBldRs+LRxUczzE9iPmgZww==} + baseline-browser-mapping@2.11.21: + resolution: {integrity: sha512-uh8vpY/1/YyFkunIDFH/12p7/7VdPKA1hejMVEbdkEaWnUz0Hesvx5EbiU6XxjyHZIOju+ZMbQJkRh+es3/spQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -2628,8 +2618,8 @@ packages: birpc@2.9.0: resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} - birpc@4.1.0: - resolution: {integrity: sha512-O8L9vALWGqdEe0cG4HJckauw3WeJETlJnDRPUYpgwB7wrU43b/5NGMdVjdVcRo+4ROgd3ih2wha1glDe4HRVgw==} + birpc@4.2.0: + resolution: {integrity: sha512-KxgKcZPfrtzJDDALHPguGpGJUrzdgpymyiQQgzFjWreHMOpWrnFNVREr5J48x2DBh8ZVioscrV1SBkDipGiX+Q==} boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -2648,8 +2638,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.28.8: - resolution: {integrity: sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==} + browserslist@4.28.9: + resolution: {integrity: sha512-EWazOblFYUvlGZcfGhPUPmYh3nikUxBVb+y9MJun5f3hBi812X+8MSQTujLBtgK3cf51fJWbWfOjyeO954d+Eg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2687,6 +2677,9 @@ packages: resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} engines: {node: '>= 6.0.0'} + cacheable@2.5.0: + resolution: {integrity: sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -2702,8 +2695,8 @@ packages: caniuse-api@4.0.0: resolution: {integrity: sha512-B0hQ1OLyJuHTQSOWXvwibWqM6DCoqJdvBA6X1S/53bd4XU7LJ1yurIPlrsouol3mw1jh9pGI4ivubSpmJeIqCA==} - caniuse-lite@1.0.30001809: - resolution: {integrity: sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==} + caniuse-lite@1.0.30001810: + resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==} chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} @@ -2732,10 +2725,6 @@ packages: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} - cidr-regex@7.0.1: - resolution: {integrity: sha512-5gppzHz6kQy4wob+bAyk5FsqF7irqxi7V6o2qO/iL1pWbwxL4uTNZ9IHk/X4MKdDegjjWIz8uERyX5nIFITT4g==} - engines: {node: '>=22'} - cidr-regex@7.1.0: resolution: {integrity: sha512-BQ5X/OTeC6hrD7k8/rNY93etXfQ3mcjIiYOkYDrB5oThXyOrgoa/jgeQxVglQaDA7UrtEnSEpHBqpfuyriwXsQ==} engines: {node: '>=22'} @@ -2819,6 +2808,9 @@ packages: confbox@0.2.4: resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + confbox@0.3.1: + resolution: {integrity: sha512-cKUSoKa8YxFZZSmraVi7onONx3amu77ngK3kGpsYHDH7drPwCRkQE1RYMPlLRrMtnciRj274XNRxcHxnKmDSnA==} + consola@3.4.2: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -2883,16 +2875,16 @@ packages: crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} - crossws@0.4.10: - resolution: {integrity: sha512-pz3oubH/dt12KjqsUB0IuXW4nwRDQ583iDsP4555Cpdqx0NoU7pGlWBcayyFI8f/l/idRpgjMEfwuOxSWJYlIA==} + crossws@0.4.12: + resolution: {integrity: sha512-aypfsr6t0uNvkqaZc6zvBfXzC6pLI0/sIulpkV6RwCVtZqG5ebBzv4weImKK0VNCj91Wl9F5j7p5WU4MNrybng==} peerDependencies: srvx: '>=0.11.5' peerDependenciesMeta: srvx: optional: true - css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-select@6.0.0: + resolution: {integrity: sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==} css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} @@ -2902,8 +2894,8 @@ packages: resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + css-what@7.0.0: + resolution: {integrity: sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==} engines: {node: '>= 6'} cssesc@3.0.0: @@ -2911,20 +2903,20 @@ packages: engines: {node: '>=4'} hasBin: true - cssnano-preset-default@8.0.5: - resolution: {integrity: sha512-R9O+oRNnKcVBf7GZZ7nfBcOiBZZwi3kR1HtKirBHel/gTtHLMHOCsL2H3QGy1161CPystJV4EiKniC7XyUKfcw==} + cssnano-preset-default@8.0.10: + resolution: {integrity: sha512-34uq3q7OXgmfxXn+MHTgIqysCLH7zRZZUMAwrBiO09F5/KLVD33iDFNRRUNYStKdj0SaAIUVr6Akao2Fpp0aVA==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - cssnano-utils@6.0.3: - resolution: {integrity: sha512-HskzChO3gRkXBQSWg68DfwoVfptRUV2GvuiQBvt+C7mUw4VB0CvPjkC4iF4JSf7yW1/66Hsc6WJtqNqD5Ydt2Q==} + cssnano-utils@6.0.4: + resolution: {integrity: sha512-j1z2mW4MqtcGM4I8TxXAdOXUifp1DZ5/bZnyYnCpHlzQ/ilCj2voLxE0aqEKnBDA5hF6HahSY13JU8kyZ1s8Mg==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - cssnano@8.0.5: - resolution: {integrity: sha512-Yigb8Apuqi/jWwii1XFmZwgAPZ2RHDUx/ANodBZsEQusYIFryChhwOQNKco0A7V6zgFqDDy3LqefGK6OnniGMA==} + cssnano@8.0.10: + resolution: {integrity: sha512-aMlBsvQW5g1b8vfPnkuy5Bk7g/jyRsf5eMpbhe4nKnePx+n2IrC0L6dFqnd3r4/OGNIYGEHfAt09oywi84fWKQ==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 @@ -2990,8 +2982,8 @@ packages: resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} engines: {node: '>=18'} - default-browser@5.5.0: - resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + default-browser@5.5.1: + resolution: {integrity: sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==} engines: {node: '>=18'} define-lazy-prop@3.0.0: @@ -3035,21 +3027,18 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - devalue@5.9.0: - resolution: {integrity: sha512-RWrqdArjvPbsATEhOPUo6Wndc/iWnkWKlhIrdlF3zMMYo/c3CVtoaVAyLtWxz5h8nSlkHzxnzV2uLydPXmtF+A==} + devalue@5.9.2: + resolution: {integrity: sha512-po4PAY5c53tw5XMocSnf8A/5OHhbbUftpr93aEN6BBoAdntUmK7vu7wOATqvt7cXO7m1Cl4gMVn6p7n6n4mj0w==} - devframe@0.8.2: - resolution: {integrity: sha512-oodQXEQnrvufA1so/E058Z3SG3bk9AlUE5+NIAsyx5ZJH9P/oX6WMxjC0bs5PPwtKbS7pBHjxja2AD8EwGE8/Q==} + devframe@0.9.12: + resolution: {integrity: sha512-WXwohwmTPVesEQYDAIh41rZYry6BRsufEyr8f5EAPXKi3SYchAYVJJV5qjBv4jRtouyRh7Z96zfZiSE0YEfQaA==} hasBin: true peerDependencies: '@modelcontextprotocol/client': ^2.0.0 - '@modelcontextprotocol/server': ^2.0.0 cac: ^7.0.0 peerDependenciesMeta: '@modelcontextprotocol/client': optional: true - '@modelcontextprotocol/server': - optional: true cac: optional: true @@ -3193,8 +3182,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.407: - resolution: {integrity: sha512-4R8XgQOdfxexCd/u63lRm6wCHjECwI45MV9wxAs2ggtfWe2hwlo1ql97jKsju2IcJ+jFSTwBssyYoiWhh7mauQ==} + electron-to-chromium@1.5.422: + resolution: {integrity: sha512-UvA/32XqrLDdZSn7Jllo1AYNcWji/G0d5M0GTViE7KoGBiMunw3a34Sb2KO4ZZyrSEhqsxFoVhWWJshdyfKqJA==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -3238,9 +3227,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@2.3.1: - resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} - es-module-lexer@2.3.2: resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} @@ -3283,8 +3269,8 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-flat-gitignore@2.3.0: - resolution: {integrity: sha512-bg4ZLGgoARg1naWfsINUUb/52Ksw/K22K+T16D38Y8v+/sGwwIYrGvH/JBjOin+RQtxxC9tzNNiy4shnGtGyyQ==} + eslint-config-flat-gitignore@2.4.0: + resolution: {integrity: sha512-JhYC+V7qEDiCDsbJcVP8fxNc62fk4+i91YLP/YvmVHlkaQ8Xo99olYN8MO5COdxl7onGlsrfZVONe5NYsZP1UA==} peerDependencies: eslint: ^9.5.0 || ^10.0.0 @@ -3336,8 +3322,8 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - eslint-plugin-regexp@3.2.0: - resolution: {integrity: sha512-4yq47CnLxyfHFKJEo5kvNaiJ0aDtBxSJWk4M2LiamplUXdWxdlzDYqImb/ZVCp+2BqkQjBAmw4Xc07Q8SXVDZg==} + eslint-plugin-regexp@3.3.0: + resolution: {integrity: sha512-TT0JTQbW7CRKohntpGAsMdQ1K3MsmJK4gdAhKJtIwlJ0JvuYxauymFgJdvqxIY4lqNj0EuRZWVrymQtEdJYEFg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: eslint: '>=9.38.0' @@ -3389,8 +3375,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.8.1: - resolution: {integrity: sha512-wqA7W2jbsC/BnV9Iv1UZpKVFkO1AdNoSmYW8NWG4HNOBbkAMvIqDZ27pI2f07dqn583NcIC44ckjAcOXDL1QbQ==} + eslint@10.10.0: + resolution: {integrity: sha512-NPXn6r5zl4uET1DAVPaOwzX3rut4c0wcmw3dWJAfOsTM5+TogXo0DDjz8pwm/hL8cyVNpHqeK4JpN0NjnyFFNw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -3497,8 +3483,8 @@ packages: fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + fastq@1.20.3: + resolution: {integrity: sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==} fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} @@ -3512,9 +3498,8 @@ packages: fflate@0.8.3: resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + file-entry-cache@11.1.5: + resolution: {integrity: sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==} file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -3535,9 +3520,8 @@ packages: resolution: {integrity: sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww==} engines: {node: '>=20'} - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + flat-cache@6.1.23: + resolution: {integrity: sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==} flatted@3.4.4: resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} @@ -3624,8 +3608,8 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - get-tsconfig@4.14.2: - resolution: {integrity: sha512-XpwZALwwl/BaKTAyC6+c5T8y6kCg2jk+XGqOVrKIQmW49pNypYLMRjCUXqa28tQgJlhS2RlzP7sc+Rx7W6qsfw==} + get-tsconfig@4.14.3: + resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==} giget@3.3.1: resolution: {integrity: sha512-r+mvuDjrjMpsdw46Kmeydb8bdHm7wOKw8wNBtTndkjbPjgAp5oUJUxRE76wZFknxIPokfWvep2qSXK37aXE6zg==} @@ -3656,12 +3640,12 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} - globals@17.11.0: - resolution: {integrity: sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==} + globals@17.12.0: + resolution: {integrity: sha512-cezEd/DTyyht9cvSSURyygXPfy04GtWO/5e6ZPvH7fCtjKz9PYOmuawphw1Ctd1f6C+5JypXfGD7ahNMXvevBA==} engines: {node: '>=18'} - globby@16.2.3: - resolution: {integrity: sha512-VZX7TV7jmd/pn71vdnLKtgwy1IWqc3KjI9x1/UtPkwoKk5fKrNLY30ltDe3cAM5xruIN7YuuaulFt133jRrKZg==} + globby@16.2.4: + resolution: {integrity: sha512-c8B/VNLmxRcmqqenRA9t+9IyOjf9+V6lTxPaUJLqOCONdQkWZ0ETYgX0qbtJqPsgCNusT9MZ5Jeidw8Eb9tn2g==} engines: {node: '>=20'} gopd@1.2.0: @@ -3678,15 +3662,18 @@ packages: h3@1.15.11: resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} - h3@2.0.1-rc.26: - resolution: {integrity: sha512-GDxlvDsKxgjRvG5UBRJYyGJTMWLV30CJ4cV+e7QCTgftDHihrvio1fVPbNembhEr6J4WNm8IWy3fookgyTweLw==} + h3@2.0.1-rc.31: + resolution: {integrity: sha512-AG7qZzF99a0BSYoXT3evJgIhwSIUKow7R+hwkLRZS06WJ9nbSb7QXUDgs1ByBjp6svTvl++N/GKA7I9YPz9cQQ==} engines: {node: '>=20.11.1'} hasBin: true peerDependencies: - crossws: ^0.4.9 + crossws: ^0.4.12 + ocache: '>=0.3.0' peerDependenciesMeta: crossws: optional: true + ocache: + optional: true has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -3700,6 +3687,10 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + hashery@1.5.1: + resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} + engines: {node: '>=20'} + hasown@2.0.4: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} @@ -3710,6 +3701,12 @@ packages: hookable@6.1.1: resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} + hookified@1.15.1: + resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} + + hookified@2.2.0: + resolution: {integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==} + html-entities@2.6.0: resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} @@ -3758,15 +3755,15 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.6: - resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} + ignore@7.0.8: + resolution: {integrity: sha512-YYNsSlXBjMk92SKnkwvB5LOVSa6OznlFUGcsvrFgNJbJCd0M1XKeFVRc8ZByeCqz32FivYNHJVooLmdqrmvp/Q==} engines: {node: '>= 4'} image-meta@0.2.2: resolution: {integrity: sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==} - impound@1.1.7: - resolution: {integrity: sha512-v/7sJ+2BX17U5VV9J1H72ExlRtfGoieRpYZG9DTos6gtCbB65C1l0CPehXCXq9phYZn6viphV5XayyZFHi85zg==} + impound@1.2.0: + resolution: {integrity: sha512-hbFh2WURN+XQ364SbblzubhEEj/B3qZCe80l/EHXPWM6/kZP2mvOllxwRBBWNxe4gLbqXZL0fxOZwoDCSlJZQw==} imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -3943,11 +3940,11 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true - jose@6.2.10: - resolution: {integrity: sha512-iiW7J9qRFlGxvCOIBDBDxFePQSn7ZMAnrYGhrrOo6siO/MIqwfyilLR27pkfDgUk+raLuzADS8A3S/KLBisc0g==} + jose@6.2.12: + resolution: {integrity: sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==} - js-base64@3.9.2: - resolution: {integrity: sha512-6zayE8QlUdiweYI6cETD/XBSqFcoCUlufn/29PJR99r82x1yDnIprRca0YvAYpAW+ez0GuQkVBC6xG5QkD7OjA==} + js-base64@3.9.3: + resolution: {integrity: sha512-uwYQp+VJ38FVvtim6qNbit6e9uT6dwWQ4Y1+H9TxhW5hcHjpHwoxlR0nMpqUmIFOmu4VqMxwdJA88gIVuZJQ/g==} js-sha256@1.0.0: resolution: {integrity: sha512-Bqxf6ENUzYIMzuELCmRNrJOVbjKH1oMgbfYJBKVr/W1Xf9fazpahqCbb24v1pR7XV1isuqhM+w9KWpK7zCyUQw==} @@ -3958,16 +3955,16 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@4.3.1: - resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==} + js-yaml@4.3.2: + resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} hasBin: true jsdoc-type-pratt-parser@8.0.0: resolution: {integrity: sha512-uQu/fXVqVaMg6gM8/E5G5+eygVcZ1NV0Z51CvqhNa2bDWxvHMl484ETr6vph4oPyC+KUcbP/w2W2pewfCiR9aQ==} engines: {node: '>=20.0.0'} - jsdoc-type-pratt-parser@9.1.1: - resolution: {integrity: sha512-kojSbQb9iQM2bk2PmHiKa3reG0U4v2gN9U8D8+eCQq+4KM5ZXBUyBVeF8KmR0RiwqyrW4+uVWYWTOLnpsavnkw==} + jsdoc-type-pratt-parser@9.2.1: + resolution: {integrity: sha512-V4Ww4EHnTcTLSOMoB0FsF72JhQvcAsriCm/LWnxJeGWoxIjEL2l9na11abQok5SYShq8m0Gl02el/xAbTCulvQ==} engines: {node: ^22.22.2 || >=24.15.0} jsesc@3.1.0: @@ -3975,9 +3972,6 @@ packages: engines: {node: '>=6'} hasBin: true - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-schema-to-typescript-lite@15.0.0: resolution: {integrity: sha512-5mMORSQm9oTLyjM4mWnyNBi2T042Fhg1/0gCIB6X8U/LVpM2A+Nmj2yEyArqVouDmFThDxpEXcnTgSrjkGJRFA==} @@ -4003,8 +3997,8 @@ packages: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyv@5.6.0: + resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==} kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} @@ -4181,8 +4175,8 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - magic-string@1.2.0: - resolution: {integrity: sha512-ptco+HFxTLgjafSLim2LojBSwfg5feBjd+SqyiwdGkzC38UPdZy3zgrHMI2CoTf5fJL38tbHMYWVzIH8BxGqJw==} + magic-string@1.2.3: + resolution: {integrity: sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g==} magicast@0.5.4: resolution: {integrity: sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==} @@ -4205,8 +4199,8 @@ packages: mdn-data@2.27.1: resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} - mdn-data@2.29.0: - resolution: {integrity: sha512-pVxQFCcaYUEAH853+v7yoI/qzhxXSq1bTb9obMYGYAN1c3Hen+XDCEvr296XhstrwlSTNgOR7mCSD4JPjbJe5A==} + mdn-data@2.34.0: + resolution: {integrity: sha512-OgIlLv0NxJKVW4GTSAoEgpRGd4F2XCqGinK0MsMlBCCS/Zcm2/LsbercNWNA7PeMMcjl75NnI97eqyo7zkdxWA==} media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} @@ -4355,8 +4349,8 @@ packages: node-mock-http@1.0.5: resolution: {integrity: sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw==} - node-releases@2.0.53: - resolution: {integrity: sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==} + node-releases@2.0.54: + resolution: {integrity: sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ==} engines: {node: '>=18'} nopt@8.1.0: @@ -4404,8 +4398,8 @@ packages: engines: {node: '>=18'} hasBin: true - oauth4webapi@3.8.7: - resolution: {integrity: sha512-4RxcKxXjuItDFZ20RRPf4YTw3kpeXJyCgJFxVzJ068A7PNJ18st2Dg90tlC1LkSDS0GecroagCLHYEIVUhCAkw==} + oauth4webapi@3.8.8: + resolution: {integrity: sha512-8N28E+a/oxfXWBgOMt+ZP/JUf/XR+IFbvkAEPP3gznXOMv9BpAAwiIj0TFNz3tGTPc0ZQ8zmWBNgN1nAys0gng==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -4428,9 +4422,6 @@ packages: ofetch@1.5.1: resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} - ofetch@2.0.0-alpha.3: - resolution: {integrity: sha512-zpYTCs2byOuft65vI3z43Dd6iSdFbOZZLb9/d21aCpx2rGastVU9dOCv0lu4ykc1Ur1anAYjDi3SUvR0vq50JA==} - ohash@2.0.12: resolution: {integrity: sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw==} @@ -4452,23 +4443,23 @@ packages: only@0.0.2: resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} - open@11.0.1: - resolution: {integrity: sha512-NzwMUB6C1D0+Kd+9iMS/H4k+Ck3cTX6Ckyfr/gAGlmvSE1LUQZnEZvWBi4PYmMwH/S5SMeTXnE+9uAz8uF+pWw==} + open@11.0.2: + resolution: {integrity: sha512-RWqF+pBSkqecEvCKOn8QYhaNdRMJDZRIrlS/7rTDdLHaPcfXGCZ/h8zb413NfvdeAV0MR7T1yJcA34/q+CSm1Q==} engines: {node: '>=20'} open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} - openid-client@6.8.7: - resolution: {integrity: sha512-gtKthNu7evSBvTdrrlHb4F3Fi9dcwlb5QaITlCs+9mfpvuOi0Q3qtBf5+iY4sEP8hy1qCoAdxBNPDcmZeVSDzQ==} + openid-client@6.8.8: + resolution: {integrity: sha512-ZsucJA5Ad04Uv7YN4ql+s4GXNmb9uAYQwyJTsJx7CH/MX3JZioLE2pVKi1SC+YrbSLA4Px3Gi30dMjgOZtb6pA==} optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - otpauth@9.5.1: - resolution: {integrity: sha512-fJmDAHc8wImfqqqOXIlBvT1dEKrZK0Cmb2VEgScpNTolCz0PHh6ExUZGv4sLtOsWNaHCQlD+rRqaPgnoxFoZjQ==} + otpauth@9.5.2: + resolution: {integrity: sha512-GQ5emWR/x1tcExT62IBT0UfO95wZzJZyxYOJOGVeQF47SYEN9vmh0vISvDZaNMuFJRG+IaWCKtfm+t9Bfoal6w==} oxc-parser@0.141.0: resolution: {integrity: sha512-uFkGGr1KMWd6aWv9UAqooYrN78trw8MWWmoPvgWokfBEUq1+eiIQ+qfj3wokhy0fxtZWZk+0dHoS7/yRTJtd6w==} @@ -4583,14 +4574,10 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.5: - resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} engines: {node: '>=12'} - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - pinia@4.0.3: resolution: {integrity: sha512-XMQqpvjgG7LMqVhhFUzKLT4KEbsYbfZZ0CZU9PgdFm1O2VKBmIkykL8+SfNhOaT7sR0wT6BEgKT0YNDYWgmVRA==} peerDependencies: @@ -4608,8 +4595,8 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - pkg-types@2.3.1: - resolution: {integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==} + pkg-types@2.3.2: + resolution: {integrity: sha512-v0sVXzj7oPGysr543YYZLYbcJNJsKikSsp/fFzoxQ12ewY3ZZr7oCPC8y7OlmxfYB3QPvriXmuPD8KZggE1vqg==} pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} @@ -4625,38 +4612,38 @@ packages: peerDependencies: postcss: ^8.4.38 - postcss-colormin@8.0.3: - resolution: {integrity: sha512-kypgzYcOcrKsrAZyId3TMumHtIiwZxgK1h5B33S4RjQNV02RHKrXCWP8ndyx5S0R5mk4pkcIfJ95o3BwIN8r2Q==} + postcss-colormin@8.0.5: + resolution: {integrity: sha512-U/N+7tkHgHoD24NB6q9k9uFcRfVJRdzVSit0fM0T2L6fvnpUoTIAYgzkyjD56LHEoCoPNfkMcfTB47SW/lNegQ==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-convert-values@8.0.3: - resolution: {integrity: sha512-14lU1u5MeX8oGQ4zMhiMYhFcav9ebgmjjxTYwk77pmZ5A9Rq8hr5X/XZaTfffvbIGMOoLK82YDsLxA+1hFGbbA==} + postcss-convert-values@8.0.4: + resolution: {integrity: sha512-ifBmAJBfpDymi7r/CqxYRJWlG+BLdVmusUC/kFPOqH/+TitdBeHA68CYqY79wXL+iQnqg6e4LGHA2Mte14X6Ig==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-discard-comments@8.0.3: - resolution: {integrity: sha512-oDe4ITEfp1/113ebPi/ujyfWX2E9+vbHhY0dPnypgHwIgw8LBQ7MczmtAbccw8gUs+Zlmgt80qtTKS0t8eCi+Q==} + postcss-discard-comments@8.0.4: + resolution: {integrity: sha512-SU1uLYRQPKLJJmqEmqzu+Ze+9xDurBm7m/LOzXG/ANBAfAGLjbQF+oIyZnf3jV3F155q5rRMYXsoTNEJsPyHng==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-discard-duplicates@8.0.3: - resolution: {integrity: sha512-6f6ZVBozciZ0nG7nurrHk+K2yNeBgEoOjZvj5JwFThK982tSPyOjtClbkTYgqwDuSFjBvtu5C9Iz/2QEPvUg+Q==} + postcss-discard-duplicates@8.0.4: + resolution: {integrity: sha512-/ugMYYTE+IpHpTmwz6/S8w+blCz9pZNroUgadTdlbPnHoLLWis9QvwmoyWui2mOgFzuRM6Me7AnoGU3i0Ua2ng==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-discard-empty@8.0.3: - resolution: {integrity: sha512-IpqNmuH9djHODVELb5c4tC6274pxjEWqrpGtTu7BR8TtOz3beqTv7JjE9xSuGOacphh9XZbbyEebvfMxYC5PTA==} + postcss-discard-empty@8.0.5: + resolution: {integrity: sha512-im0QtfNFa6V3SGPrfqzrWYuhzSz1ztWORKsuhZHQbWdKMh0DiNj3pmqBnABbhdKjyeW6nZ1oZYGh4dMc3biyaw==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-discard-overridden@8.0.3: - resolution: {integrity: sha512-G2Ksn7kkNsNlsYsgfVn0YFfcGewJTuc1KOENvoVtwu2bSEyR28+GaomozkV4DPUBbKF8Nvco/9rLyKkgf/TY6w==} + postcss-discard-overridden@8.0.4: + resolution: {integrity: sha512-NqupxmnSSfWPJJDYbQk1qXWRwr+lw4Kyp/LSOjqwTpy/vSwo34EVXYKywgemSWpgh39P7Cs/G+tqynbRlXoJhw==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 @@ -4691,38 +4678,38 @@ packages: yaml: optional: true - postcss-merge-longhand@8.0.3: - resolution: {integrity: sha512-/Byag1rLsEffmnidL+8HGwr0AsQWiaY2gpChEKwKP4+YcBtzz44rKVxAJLdhQtRLFrpGiBoLzCdCfH/ZTkozuA==} + postcss-merge-longhand@8.0.4: + resolution: {integrity: sha512-ammolHhMvuTz/L9YN/ge1SWbUDcD3Y9o2gXlo3S6H4MCJHheyVPwcI/LAnSuNT4gcUmSF9pNTXo7+3M/2MFPAQ==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-merge-rules@8.0.3: - resolution: {integrity: sha512-gBnrjp2ebQyrBNDqxORirC6ZM6g4cHKglAwGf1JiuKmDPjUJbNM6WhxYMYkHf+hxysnZfq27+TtxGrYESv3GMQ==} + postcss-merge-rules@8.0.5: + resolution: {integrity: sha512-jz+QaKz4VhjsqTVsJMRuH+EvrX1F9l6kYFuF8g6geVxFoYnPEZN4G+zqCb6zhxOIcc2aeAo38XEl2pOIZi2gBw==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-minify-font-values@8.0.3: - resolution: {integrity: sha512-kAXxTCIVub5LZvyKTr9AObrRxri0WtWpNVsG6R9NdBKHDHYu5WNAnZRntgOforsKeFeZRZvOOXnTqOANQeyzKg==} + postcss-minify-font-values@8.0.4: + resolution: {integrity: sha512-wZZgJ87U5WbQCEM0EOY/oM7M1a+sqW6vrOClGC9lNbsY0HYmbMFvFuukBn8PzF+ikKmaT0QB+uSAHTRLzMkD+A==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-minify-gradients@8.0.3: - resolution: {integrity: sha512-0O9UDPjIB4OikREx/aOwPY3pco23txEpXpdTlzfoSrVQllNh5j9GaCkThA5ylsKcDWz5sunV3tFW9+zlHFWUww==} + postcss-minify-gradients@8.0.6: + resolution: {integrity: sha512-NsqlG34WSO44NOHVT6m6ZWpN80fK2l5Zt73PMDXBJKT6fO6GPnI0NBi6xIVFr/naej3ukVUlIFQGxb7JGaa9Zg==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-minify-params@8.0.3: - resolution: {integrity: sha512-DuSZEJbWxUX7wvIkz6K4qN8zs5unI/MSg7gcH4AXXA3524OcI4BOBUhR8B8OIBIi9FfcBbfgHYlATVhMeDBXNg==} + postcss-minify-params@8.0.4: + resolution: {integrity: sha512-TDx9O/ni7KazRK32pVvoo3MjExyVxWE0949vB2XZ0oHnxdAtQFHa9oG21wWkvsOL3osjiOVejwDLe6a0d0EuSw==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-minify-selectors@8.0.4: - resolution: {integrity: sha512-+rqBW9gYNLq2RNBwfVx2QdElj2cTiqbNwah+bw1XvyhCnRe4uFLNW2kny0VspFyYR7OGuVyWZaz2K4DbX5J9sw==} + postcss-minify-selectors@8.0.5: + resolution: {integrity: sha512-i+PlhVCaPa7xevjhpActH2PrP27kDNSuuFf/ZGk8YrIcd1pd3Mfcfiv8H7dbY1/vz7U+QparioAtJaFV+IEwQg==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 @@ -4739,74 +4726,74 @@ packages: peerDependencies: postcss: ^8.4 - postcss-normalize-charset@8.0.3: - resolution: {integrity: sha512-losd0Uu4XVpiKN5tcGh32QxpB9t3S09PMQaW6I2GszKl9wOR0I34DY0a8ApO50jzfBC52lv8jPpkvh5ltbgajg==} + postcss-normalize-charset@8.0.5: + resolution: {integrity: sha512-l0L1rIe9YHbLaf4xfL2pkkQV3gq/QIy8D0bjsaHYdGVgR+eQk7IBp3dUdIKe6XuG7DzFiCwJn248nvAFAi5CjA==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-normalize-display-values@8.0.3: - resolution: {integrity: sha512-IaCp/Rp7bg0e8Hv0Wc4G+niuuA61iGOSzhGBUeo6P6qyoumyFbOzYbYWZSkzMNsC4o2gfHAj3q2VbQfds8Huzw==} + postcss-normalize-display-values@8.0.4: + resolution: {integrity: sha512-F8DGtzelJDV6S5mhcugc+EJ8sXI+kFv2PBedkfMWqd8mvTE4qyy3kva6AQwjy2+L2lZ9TGTkSumdq+n3EhGeAw==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-normalize-positions@8.0.3: - resolution: {integrity: sha512-OA/n9pI6W66Sv1vki0MLv/0QpDECV8i3UHwlXPVnv3XewsBjx310NQDV+ybMx2ZZQc/RHS7Uf8ES+oxLVhd0iA==} + postcss-normalize-positions@8.0.4: + resolution: {integrity: sha512-anOMhqe6Z0OP4jvchK1v1hIG08kO7rsp8uHrxT2+XaKp8wbvVcUO3QHUzRmQDazWUPtRzy1h2UlixyJenF42sg==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-normalize-repeat-style@8.0.3: - resolution: {integrity: sha512-lMCbxiLBd7awGEoRM1WD02R08XpEGDHg3x7z9VSWnZibgSGHNJ+k7aheucuLBcxPAHWPudwc8O65sYD2FDx0Hg==} + postcss-normalize-repeat-style@8.0.4: + resolution: {integrity: sha512-vY8+k+/bFT7B8gzlHVye8FxBTMEpUAQxAgb4UYFAGGsKmXfwEvc7VPs+kpFNrTeqVKAvVh8+VVhZ+f3S4TWJPg==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-normalize-string@8.0.3: - resolution: {integrity: sha512-F8jkemEEIGDjerUzTa5w18CQc4GfhpJdEk78LdtwOjLjG1DlaDZyCdec+PyxCHjSY7vsbULXhlk24vSA+eUtIg==} + postcss-normalize-string@8.0.4: + resolution: {integrity: sha512-dWnV1frIV1XUlSYzJudceAbQ7PGyho9EgVHQXMcAoog6Nwnet3G9rz8IXcCb0EF2eefmpYG9hDT9+yWJOxc5zw==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-normalize-timing-functions@8.0.3: - resolution: {integrity: sha512-6MO4j7ySljCmhPKx6GLkIpDdV6nOhb5UaB8j/0i0EbfooH1NeVQG60Zt7qAQ9h21HUwV6kQDIbWGqU78DhPHtw==} + postcss-normalize-timing-functions@8.0.4: + resolution: {integrity: sha512-VANJsokAWdQ03ZJwmcdEKXJjVHRtMgalB/BgbCgN3CRTdbwB5TXlSDRmdShSCxpnZs8WLAm0mPa//p5o5D/ZTg==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-normalize-unicode@8.0.3: - resolution: {integrity: sha512-gfMC9A0z8d1HrS792ZFIUMZeTysN/GrtQEiyV/aSJPBwqOOak9BTGTSUp1VHozNuEeQs4MUoO+fBQzDXpRX28A==} + postcss-normalize-unicode@8.0.4: + resolution: {integrity: sha512-SxVEoFdYed0bxxwZwAXnaAZ2lzNb5jtiQvYWyMIEqnGOzCuztWpVO8LvsqpOfUIacOb6oYaWi7WOAZR36OhYqw==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-normalize-url@8.0.3: - resolution: {integrity: sha512-ksA0HgWATlnIzDaB9gFPslXxJkTa7aHZK3jWSbbyJdFJuRIY0BOL0eNMRrZNpe6//g4Af/iB00ETbT0cNmCzKQ==} + postcss-normalize-url@8.0.4: + resolution: {integrity: sha512-JKZW8KRHkLEYkUb/55n3knDUMZeyvxlTv7ZA82bcHiCjL81b0Yyf9fIUBAYKZ6ucDgKfCDM78xhXuteVlk/o9Q==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-normalize-whitespace@8.0.3: - resolution: {integrity: sha512-Hz/IeeZXk1686EZtnCKKIkU8Mu+PGTxPhkuXnKxJZCD8lkVgD9blIhymu3I/itL4FoOyFTWzh7hQvIri8SbrXg==} + postcss-normalize-whitespace@8.0.5: + resolution: {integrity: sha512-xuFovful3vVIA9fWWmAL2pG1Qr95Udj2MrLgjU50C6r+Xnh3s6t2BN1xXQ8lnCOCAtzMvMpPWYlnAh4nSv5VEQ==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-ordered-values@8.0.3: - resolution: {integrity: sha512-Sp62UbMrsCNcPvtnme1Kz+nNJK3tqCqRvGiKdL7ugYgu3/m8buMlFy3QO/BJ0dJQHHJP2u6CESrw4xhKFJTvvA==} + postcss-ordered-values@8.0.5: + resolution: {integrity: sha512-aDL7nPR7w1foUqo4rN6QY1Kr45+SYELnmUg5taZehh7FfFdxQmUjbuOOBuffIXjiHV45zqgFHCb4azsWW19jyw==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-reduce-initial@8.0.3: - resolution: {integrity: sha512-z2cMLQtjr+gXd4QIg2O6c21xGsk1QV2HNKaiYVvxZYRrvyuAqPAHFfRSo+7zbGc/n7rilzEFkljJN5WihG99AQ==} + postcss-reduce-initial@8.0.5: + resolution: {integrity: sha512-Bh5d7zjH1Ai9LzJ1qULUZIaC18cniD+wA6gFlOPglMxJRC7meXbuPvpJ/zHQGg5QKwQgit++XQhDTiEIhCk8Ow==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-reduce-transforms@8.0.3: - resolution: {integrity: sha512-MKebqhCviCaOlz9ZnlQxviw0R94q3POvxv3m2Xk1IEyBrk2lsNiKBJsuwXLWHWkQB3y+pQDE0FA26J4+NYhzLg==} + postcss-reduce-transforms@8.0.4: + resolution: {integrity: sha512-ZGU7/R0GmjE3x2mOGB0g9Ohx74X+JjYX62RB5IBYLOe6R0fuHGZ76HtTY2CdM5NE8Yey/ew5clEf8iZQnjDjWA==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 @@ -4815,18 +4802,18 @@ packages: resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==} engines: {node: '>=4'} - postcss-selector-parser@7.1.5: - resolution: {integrity: sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw==} + postcss-selector-parser@7.1.6: + resolution: {integrity: sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==} engines: {node: '>=4'} - postcss-svgo@8.0.4: - resolution: {integrity: sha512-cmxRK3zz5BLFO/r/crOHy4QosyNCHpyAG9fOjtOSAEKkajcAK5xyURRWcotPOXcz88VbzIrYJCWVAGjrX4GeJw==} + postcss-svgo@8.0.6: + resolution: {integrity: sha512-auQHNmduFFHzz1sWYM3sroW7IDMzxshlLjnwAALfkrAgPegHFats+jMK6BRCcdIulxPmqXFSQvgoAX4vw8I59g==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 - postcss-unique-selectors@8.0.3: - resolution: {integrity: sha512-uKwlnCNyKmny7yFPOnQJAN82Er0WzGQbSlpZHTKTqlTQsvZF+skA4ANMHqKh+68jQYet6IotH3dtxs1VdyBdxw==} + postcss-unique-selectors@8.0.4: + resolution: {integrity: sha512-Sby0EtmD1mlvcZSWP5eXjxhxVgvXE5QVRzd+8NH0IbF+lYQIM57ybwAvJYYtI/fexMgCWcRnDETovjKOcLJb8w==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 @@ -4834,16 +4821,16 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.26: - resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==} + postcss@8.5.28: + resolution: {integrity: sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==} engines: {node: ^10 || ^12 || >=14} powershell-utils@0.1.0: resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} engines: {node: '>=20'} - powershell-utils@0.2.0: - resolution: {integrity: sha512-ZlsFlG7MtSFCoc5xreOvBAozCJ6Pf06opgJjh9ONEv418xpZSAzNjstD36C6+JwOnfSqOW/9uDkqKjezTdxZhw==} + powershell-utils@0.2.1: + resolution: {integrity: sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A==} engines: {node: '>=20'} prelude-ls@1.2.1: @@ -4910,8 +4897,8 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-bytes@7.1.1: - resolution: {integrity: sha512-X+vn9z8nOFZQlxOLmfJ0iKDdMD7jYTsTW12OAlCpdoE3Igik6L37pugIZi+N3usuyp5McfgKPWi12q3zvHLeGQ==} + pretty-bytes@7.1.3: + resolution: {integrity: sha512-U2KZ675nqba6XSBppSjU2pRgc9Ffx9+uUtd/RTWYmOawVkZuUbBYuwdtFZQmLv+yMgQ2TQxWWuOpyNje67J9tg==} engines: {node: '>=20'} process-nextick-args@2.0.1: @@ -4931,6 +4918,10 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qified@0.10.1: + resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} + engines: {node: '>=20'} + qr@0.6.0: resolution: {integrity: sha512-P23VoX7SipHALdiIYG+D+LT/6n22dNKwV92FAb3d+Nlki/5WisSsfLt0UDFz2XEBtuwrECTznvu+chKKFCSYhA==} engines: {node: '>= 20.19.0'} @@ -4952,11 +4943,11 @@ packages: resolution: {integrity: sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==} engines: {node: '>= 0.6'} - rc9@3.0.1: - resolution: {integrity: sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==} + rc9@3.1.0: + resolution: {integrity: sha512-ufjkNVzbRHKcCOmTahZkmVsyc3W+MSk3jY03m+a7tGHkIsdVMG9l10/3HvFbWkkKzY5VFp3pkRsIo/UYgmFL7Q==} - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-cache@1.0.2: + resolution: {integrity: sha512-/peqiBB/n07gQGLsWaHho3WfvUyRscw0gYTsEFMhrIe/nWLkYaf5SbKYjGYqtRV3aPwykJgF2VEMo1ac4bnsGA==} readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -5051,8 +5042,8 @@ packages: rolldown: optional: true - rolldown@1.2.4: - resolution: {integrity: sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==} + rolldown@1.2.7: + resolution: {integrity: sha512-g0EtLvBjTUB7jhyV0S/TCup3v/XSVl45vUIGbOGU4QPiyjTenCe4mKuFvW9fEgYmS2Fo42AUssRmNuMziXdrig==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -5069,8 +5060,8 @@ packages: rollup: optional: true - rollup@4.62.4: - resolution: {integrity: sha512-RXOqwaPsBGjMNMa4sQjDjHieHEZDFoj/Rdr46l2MU5DfEs16wHJPC2RPTPHWhNl+M3aI472LLqFkFKut4SblOg==} + rollup@4.63.1: + resolution: {integrity: sha512-3Df9jsstwhccuEfmAMi9l8XUh/GOkVObmFTU7CCVBysEbcOZLl84jCtaAZMcPiMz2EGKsATzQcU+Xr3n/wU6cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -5118,12 +5109,12 @@ packages: resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} engines: {node: '>= 18'} - serialize-javascript@7.1.0: - resolution: {integrity: sha512-RNEqWOyhhUQYN9V1GfHwu9AR/g+NTciH6Z5u3/no6X3/w+04J2lVDL+svFQVXgXrEGBMG2puMVN3gq2SNGuTGw==} + serialize-javascript@7.1.1: + resolution: {integrity: sha512-k3CMsaIvvdSwm8oLB4MXSl0wH2/cwlH7xGcnRd2DaeRmBkbzYmyT8j0tsX60DwD1eRwHTpNpH8ljKu9oUT1MeQ==} engines: {node: '>=20.0.0'} - seroval@1.6.2: - resolution: {integrity: sha512-mPT+SD2TrlB6wvte1KkYOYUkubaTbd6pZ/6Kk3C9nxzrHmCZyhxOO7XGAeL7f+yLKZglzGtM9odUVvg/EhO+vQ==} + seroval@1.6.4: + resolution: {integrity: sha512-LErWMNS2RRFdu2RMA5u/PA59/IWs0XsikyEXGQ2/36iEWFrdG0ABmg17E17cikrv76891kOAMq3TkTFXpwAHXw==} engines: {node: '>=10'} serve-placeholder@2.0.2: @@ -5212,8 +5203,8 @@ packages: engines: {node: '>=20.16.0'} hasBin: true - srvx@0.12.5: - resolution: {integrity: sha512-IuvtDNQg5EIwv3c6dleyau7u8hCyGQ7D6+V/QM799Aud07z0wCUcurKLTRfyG33C8oUY+UWcVBFkfHMcbtmRLA==} + srvx@1.0.3: + resolution: {integrity: sha512-aOuk+yNJA61yA6eJJvQJxpJLIxz090hKMqDGzd35tGsvwaodi1RPuYSFUp5EINaJp7snjVwLkO2RXVMPZBYnnA==} engines: {node: '>=20.16.0'} hasBin: true @@ -5238,8 +5229,8 @@ packages: std-env@4.2.0: resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} - streamx@2.28.0: - resolution: {integrity: sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw==} + streamx@2.28.1: + resolution: {integrity: sha512-zEzXb0s5Cds7tqMH6rhZ05lcJydCWiQPEwiNngVqzsxCc962vLY4Uw+mW7od8kDH258k2Uz/JrOkdIAAhSh9VA==} string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -5285,8 +5276,8 @@ packages: structured-clone-es@2.0.1: resolution: {integrity: sha512-10ZL5r77LhknxlP1FBiCW+VdnuWOEFLdSS2SKtjyEV+L4qP1hUEIMIZW94LC3jKxRmT/Dj7KkD1mqh/IY6lhKQ==} - stylehacks@8.0.3: - resolution: {integrity: sha512-cHciVnyMEuLOYt6AGCTyzRjEvBTvA+0H/QThOFgKTI9uuFK4RA34gLVEt/Uuz11rtSPvZHjMWLjTazF9pLMPog==} + stylehacks@8.0.4: + resolution: {integrity: sha512-irgZeyYBFVkb8k7yTRQ9No/bTniTGqzptGVMG1/Mj3N2YnI8nIozzY1pcok4i01NfrCSqvc0PdQB6O6kr6dJHw==} engines: {node: ^22.11.0 || ^24.11.0 || >=26.0} peerDependencies: postcss: ^8.5.26 @@ -5316,8 +5307,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svgo@4.0.2: - resolution: {integrity: sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng==} + svgo@4.1.0: + resolution: {integrity: sha512-bkxnTg1kSU0guhIBmibA6UUhrQmPVA1XsQLN+ylCd+UWzbnLkySOcXpyk1mrl05f+pcaCx2eHb+sp6BgMZWX+Q==} engines: {node: '>=16'} hasBin: true @@ -5337,8 +5328,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - tar-stream@3.2.0: - resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} + tar-stream@3.2.1: + resolution: {integrity: sha512-nqsEO8zLZJvrOMdEwkA0QdCLFbetHMn95Zqu4fKwX+hkaTWJPZZOrxx/PwtxoK0MMGQmBQNRW3CPs8IFYQz4cQ==} tar@7.5.22: resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} @@ -5347,8 +5338,8 @@ packages: teex@1.0.1: resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} - terser@5.50.0: - resolution: {integrity: sha512-CN9BVxWhgS/hRxtUMjtC2uRWSTcSfQFHMDWma6sKKfIivCD91sM+FOPfvwoaRMqCSrUpe1nv3jDamd9eEQ4y+w==} + terser@5.51.2: + resolution: {integrity: sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==} engines: {node: '>=10'} hasBin: true @@ -5376,8 +5367,8 @@ packages: resolution: {integrity: sha512-uo33abH+Ays0xYaDysoBt494Hb3hsEczMpcC0MwFl773pazORx4fmvKhclhR1wonUbB6vvpRsvVMwnhfqeMc+A==} engines: {node: ^16.14.0 || >= 17.3.0} - tinyexec@1.3.0: - resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==} + tinyexec@1.3.1: + resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==} engines: {node: '>=18'} tinyglobby@0.2.17: @@ -5427,8 +5418,8 @@ packages: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} - tsx@4.23.12: - resolution: {integrity: sha512-FDf4L4sYzKtzWYhU/Xm0AQFdTjdIxNo9ElTf2mxXM6k8YMHXzYUe4yODVaXP4V9uMFbVg8c0qyBccK2OOxb45Q==} + tsx@4.23.13: + resolution: {integrity: sha512-BL5MGkRln6aDYhb0xbQlEAGw743BaZYWdbWtdJOBriYJboKgUUYCadFp2/FpBBZquBC/ezNBn7wMMPx7FDZUDw==} engines: {node: '>=18.0.0'} hasBin: true @@ -5440,8 +5431,8 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - type-fest@5.8.0: - resolution: {integrity: sha512-YGYEVz3Fm5iy/AybuA0oyNFq7H4CgQNfRp/qfe8nurE1kuCeNm3/vfm9X4Mtl+qLyaKJUh5xrFZwogr41SMjYA==} + type-fest@5.9.0: + resolution: {integrity: sha512-yANm3Jr3GiJ1qgJlxGAVxTOIcEOk1rhQHamlXtnrCK7EHP4HeM9OGxtMg/W7HFdrVzw/ZWJKGVIJusVH85sLtw==} engines: {node: '>=20'} type-is@1.6.18: @@ -5468,8 +5459,8 @@ packages: unctx@2.5.0: resolution: {integrity: sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==} - unctx@3.0.0: - resolution: {integrity: sha512-DoXdZVeyi2jyEsn86i8MO5RTItm1kffUkH9/+DQORn3Q688AMOy2551CIl6AdGL2UpwD675wtbNOl75wIQN/uA==} + unctx@3.0.1: + resolution: {integrity: sha512-5RAt2etv7g362RXyd33R82gm9u/kbtQlpoaOs9Bgm4E32GRMJ0xjbZyvdxUTmiuHk3V1IQb1aUNrp5IWY+JaWw==} peerDependencies: magic-string: '>=0.30.21' oxc-parser: '>=0.140.0' @@ -5488,15 +5479,15 @@ packages: undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - undici@8.10.0: - resolution: {integrity: sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==} + undici@8.10.2: + resolution: {integrity: sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==} engines: {node: '>=22.19.0'} unenv@2.0.0-rc.24: resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} - unhead@3.3.2: - resolution: {integrity: sha512-nys63ms9LcERQX4Z6UV5jrGDiHMhccKb8Jsm9Q7uCWGqYKSKNygiIGi0AsEBTDz5mmaS8J4yXva6U3qZg4FdBQ==} + unhead@3.4.0: + resolution: {integrity: sha512-OlgpyYjY+NkFyQCaMihg2uTFbbvyr5lZr6TokS68VdFTXJ5jo4JwFtGR8PwKy/wRpjbQYgKF7ZYO+pbRgxtSmw==} peerDependencies: vite: '>=6.4.2' peerDependenciesMeta: @@ -5647,8 +5638,8 @@ packages: unwasm@0.5.3: resolution: {integrity: sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw==} - update-browserslist-db@1.3.1: - resolution: {integrity: sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==} + update-browserslist-db@1.3.2: + resolution: {integrity: sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -5732,13 +5723,13 @@ packages: vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 vue: ^3.5.0 - vite@8.2.1: - resolution: {integrity: sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==} + vite@8.2.2: + resolution: {integrity: sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.4.0 + '@vitejs/devtools': ^0.4.0 || ^0.5.0 esbuild: ^0.27.0 || ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 @@ -5819,14 +5810,14 @@ packages: jsdom: optional: true - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + vscode-uri@3.2.0: + resolution: {integrity: sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==} vue-bundle-renderer@2.3.2: resolution: {integrity: sha512-BtazFw0lm3N/ZE4+tre2g8G+c5wolfizu+e5jxZAcao0gcy5KJei9Yopl1svDato2poeFldVLfmLMk57Sg8rLg==} - vue-component-type-helpers@3.3.10: - resolution: {integrity: sha512-t7IQivQ3oD4D01b7s7a9AWzHAcr3DGBIa/1jZREsFQJcFgSL92gqUkqNiHTYgzTt7QDuJa0I9wCeDwEtZICoBQ==} + vue-component-type-helpers@3.3.11: + resolution: {integrity: sha512-LwcxzeliO9fkQcpJG0PoX8X5kmAhKmH9wkpDLxNabwzkQ9Zeib2YVHwFV4pcWmMLfXVfjr/dSV+DaJ3cIPgSNA==} vue-demi@0.14.10: resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} @@ -5848,14 +5839,14 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - vue-i18n@11.4.8: - resolution: {integrity: sha512-0ULeHP6Z9CGvAm67S77ZEp41cfGXIREGL8qfhos2BMgcQQewtQcDKuojt6jjasAD/S8GwfTp2ySPmDSpwvrCMQ==} + vue-i18n@11.4.10: + resolution: {integrity: sha512-Lp+BjOxqzOY87DS6Z8KrQrpiTr9IN/Lt4kZEilwyXG2Wrx+AcU6IVsAW92HNXtVcn1HFFPV6ty41p9e/qDpyvg==} engines: {node: '>= 22'} peerDependencies: vue: ^3.0.0 - vue-router@5.2.0: - resolution: {integrity: sha512-QAC5i0LEb1GLG0LXDQmHu8L7FX12j0KwU/JTKmLQUJMrn04gQdKP6Du+p0QwpHb3iy71vBlqnHQ8WAfOSAWhqw==} + vue-router@5.3.1: + resolution: {integrity: sha512-GDBZzgmILxA/kFnkFbJjQZdZ2QQbngnIMMuoUcjhZIfH1RGMaPjPwX5ASnV38qamuA9uhO0RDjSBHTDNG2uXyQ==} peerDependencies: '@pinia/colada': '>=0.21.2' '@vue/compiler-sfc': ^3.5.34 || ^4.0.0 @@ -5872,8 +5863,8 @@ packages: vite: optional: true - vue-tsc@3.3.10: - resolution: {integrity: sha512-YaDVxcW+CGtaOt3pZahMG5jYPx0hsUTxyEoPOTSMebcGUXP9lIBabQ14vfKMORb2CqqK5CxsNo/d1d+4IQwiKg==} + vue-tsc@3.3.11: + resolution: {integrity: sha512-gOb0B9rtU2+f1dszwPqSH5kAieIF9ReeLhD3kSRNHv5WZZUQz/JdVXW0RTdqhNTMlQkqKzrTTviqKr/4FYZraQ==} hasBin: true peerDependencies: typescript: '>=5.0.0' @@ -6016,22 +6007,22 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zod@4.4.3: - resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + zod@4.5.4: + resolution: {integrity: sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==} snapshots: - '@alloc/quick-lru@5.2.0': {} + '@alloc/quick-lru@5.3.0': {} '@antfu/install-pkg@2.0.1': dependencies: package-manager-detector: 1.8.0 - tinyexec: 1.3.0 + tinyexec: 1.3.1 '@apidevtools/json-schema-ref-parser@14.2.1(@types/json-schema@7.0.15)': dependencies: '@types/json-schema': 7.0.15 - js-yaml: 4.3.1 + js-yaml: 4.3.2 '@babel/code-frame@7.29.7': dependencies: @@ -6069,15 +6060,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/generator@8.0.0': - dependencies: - '@babel/parser': 8.0.4 - '@babel/types': 8.0.4 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - '@types/jsesc': 2.5.1 - jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@7.29.7': dependencies: '@babel/types': 7.29.8 @@ -6086,7 +6068,7 @@ snapshots: dependencies: '@babel/compat-data': 7.29.7 '@babel/helper-validator-option': 7.29.7 - browserslist: 4.28.8 + browserslist: 4.28.9 lru-cache: 5.1.1 semver: 6.3.1 @@ -6152,12 +6134,8 @@ snapshots: '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-string-parser@8.0.0': {} - '@babel/helper-validator-identifier@7.29.7': {} - '@babel/helper-validator-identifier@8.0.4': {} - '@babel/helper-validator-option@7.29.7': {} '@babel/helpers@7.29.7': @@ -6169,10 +6147,6 @@ snapshots: dependencies: '@babel/types': 7.29.8 - '@babel/parser@8.0.4': - dependencies: - '@babel/types': 8.0.4 - '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))': dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) @@ -6217,11 +6191,6 @@ snapshots: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/types@8.0.4': - dependencies: - '@babel/helper-string-parser': 8.0.0 - '@babel/helper-validator-identifier': 8.0.4 - '@bcoe/v8-coverage@1.0.2': {} '@bomb.sh/tab@0.0.19(cac@7.0.0)(citty@0.2.2)': @@ -6229,6 +6198,18 @@ snapshots: cac: 7.0.0 citty: 0.2.2 + '@cacheable/memory@2.2.0': + dependencies: + '@cacheable/utils': 2.5.0 + '@keyv/bigmap': 1.3.1(keyv@5.6.0) + hookified: 1.15.1 + keyv: 5.6.0 + + '@cacheable/utils@2.5.0': + dependencies: + hashery: 1.5.1 + keyv: 5.6.0 + '@clack/core@1.4.3': dependencies: fast-wrap-ansi: 0.2.2 @@ -6243,29 +6224,29 @@ snapshots: '@cloudflare/kv-asset-handler@0.4.2': {} - '@colordx/core@5.5.0': {} + '@colordx/core@5.8.0': {} - '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.5)': + '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.6)': dependencies: - postcss-selector-parser: 7.1.5 + postcss-selector-parser: 7.1.6 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.5)': + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.6)': dependencies: - postcss-selector-parser: 7.1.5 + postcss-selector-parser: 7.1.6 '@drizzle-team/brocli@0.10.2': {} - '@dxup/nuxt@0.5.7(esbuild@0.28.2)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))': + '@dxup/nuxt@0.5.10(esbuild@0.28.2)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: '@dxup/unimport': 0.1.2 - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - '@vue/compiler-dom': 3.5.41 + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@vue/compiler-dom': 3.5.42 chokidar: 5.0.0 knitwork: 1.3.0 - magic-string: 1.2.0 + magic-string: 1.2.3 pathe: 2.0.3 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -6318,7 +6299,7 @@ snapshots: '@es-joy/jsdoccomment@0.91.0': dependencies: '@types/estree': 1.0.9 - '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/types': 8.69.0 comment-parser: 1.4.7 esquery: 1.7.0 jsdoc-type-pratt-parser: 8.0.0 @@ -6333,7 +6314,7 @@ snapshots: '@esbuild-kit/esm-loader@2.6.5': dependencies: '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.14.2 + get-tsconfig: 4.14.3 '@esbuild/aix-ppc64@0.25.12': optional: true @@ -6557,18 +6538,18 @@ snapshots: '@esbuild/win32-x64@0.28.2': optional: true - '@eslint-community/eslint-utils@4.10.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))': + '@eslint-community/eslint-utils@4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))': dependencies: - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/compat@2.1.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))': + '@eslint/compat@2.1.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))': dependencies: '@eslint/core': 1.2.1 optionalDependencies: - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) '@eslint/config-array@0.23.5(supports-color@10.2.2)': dependencies: @@ -6586,36 +6567,36 @@ snapshots: dependencies: '@eslint/core': 1.2.1 - '@eslint/config-inspector@3.2.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(srvx@0.11.22)': + '@eslint/config-inspector@3.4.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(srvx@0.11.22)': dependencies: ansis: 4.3.1 cac: 7.0.0 chokidar: 5.0.0 - devframe: 0.8.2(cac@7.0.0)(srvx@0.11.22) - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + devframe: 0.9.12(cac@7.0.0)(srvx@0.11.22) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) jiti: 2.7.0 tinyglobby: 0.2.17 transitivePeerDependencies: - '@modelcontextprotocol/client' - - '@modelcontextprotocol/server' + - ocache - srvx '@eslint/core@1.2.1': dependencies: '@types/json-schema': 7.0.15 - '@eslint/css-tree@4.0.5': + '@eslint/css-tree@4.1.0': dependencies: - mdn-data: 2.29.0 + mdn-data: 2.34.0 source-map-js: 1.2.1 - '@eslint/js@10.0.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))': + '@eslint/js@10.0.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))': optionalDependencies: - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) '@eslint/object-schema@3.0.5': {} - '@eslint/plugin-kit@0.7.2': + '@eslint/plugin-kit@0.7.3': dependencies: '@eslint/core': 1.2.1 levn: 0.4.1 @@ -6668,10 +6649,10 @@ snapshots: dependencies: '@swc/helpers': 0.5.23 - '@intlify/bundle-utils@11.2.5(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)))': + '@intlify/bundle-utils@11.2.5(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))': dependencies: - '@intlify/message-compiler': 11.4.8 - '@intlify/shared': 11.4.8 + '@intlify/message-compiler': 11.4.10 + '@intlify/shared': 11.4.10 acorn: 8.18.0 esbuild: 0.25.12 escodegen: 2.1.0 @@ -6680,45 +6661,45 @@ snapshots: source-map-js: 1.2.1 yaml-eslint-parser: 1.3.2 optionalDependencies: - vue-i18n: 11.4.8(vue@3.5.42(typescript@6.0.3)) + vue-i18n: 11.4.10(vue@3.5.42(typescript@6.0.3)) - '@intlify/core-base@11.4.8': + '@intlify/core-base@11.4.10': dependencies: - '@intlify/devtools-types': 11.4.8 - '@intlify/message-compiler': 11.4.8 - '@intlify/shared': 11.4.8 + '@intlify/devtools-types': 11.4.10 + '@intlify/message-compiler': 11.4.10 + '@intlify/shared': 11.4.10 - '@intlify/core@11.4.8': + '@intlify/core@11.4.10': dependencies: - '@intlify/core-base': 11.4.8 - '@intlify/shared': 11.4.8 + '@intlify/core-base': 11.4.10 + '@intlify/shared': 11.4.10 - '@intlify/devtools-types@11.4.8': + '@intlify/devtools-types@11.4.10': dependencies: - '@intlify/core-base': 11.4.8 - '@intlify/shared': 11.4.8 + '@intlify/core-base': 11.4.10 + '@intlify/shared': 11.4.10 '@intlify/h3@0.7.4': dependencies: - '@intlify/core': 11.4.8 + '@intlify/core': 11.4.10 '@intlify/utils': 0.13.0 - '@intlify/message-compiler@11.4.8': + '@intlify/message-compiler@11.4.10': dependencies: - '@intlify/shared': 11.4.8 + '@intlify/shared': 11.4.10 source-map-js: 1.2.1 - '@intlify/shared@11.4.8': {} + '@intlify/shared@11.4.10': {} - '@intlify/unplugin-vue-i18n@11.2.5(@vue/compiler-dom@3.5.41)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3))': + '@intlify/unplugin-vue-i18n@11.2.5(@vue/compiler-dom@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3))': dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - '@intlify/bundle-utils': 11.2.5(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3))) - '@intlify/shared': 11.4.8 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.4.8)(@vue/compiler-dom@3.5.41)(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) - '@rollup/pluginutils': 5.4.0(rollup@4.62.4) - '@typescript-eslint/scope-manager': 8.67.0 - '@typescript-eslint/typescript-estree': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@intlify/bundle-utils': 11.2.5(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3))) + '@intlify/shared': 11.4.10 + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.4.10)(@vue/compiler-dom@3.5.42)(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) + '@typescript-eslint/scope-manager': 8.69.0 + '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3) debug: 4.4.3(supports-color@10.2.2) fast-glob: 3.3.3 pathe: 2.0.3 @@ -6726,8 +6707,8 @@ snapshots: unplugin: 2.3.11 vue: 3.5.42(typescript@6.0.3) optionalDependencies: - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vue-i18n: 11.4.8(vue@3.5.42(typescript@6.0.3)) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vue-i18n: 11.4.10(vue@3.5.42(typescript@6.0.3)) transitivePeerDependencies: - '@vue/compiler-dom' - eslint @@ -6739,14 +6720,14 @@ snapshots: '@intlify/utils@0.14.1': {} - '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.4.8)(@vue/compiler-dom@3.5.41)(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.4.10)(@vue/compiler-dom@3.5.42)(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3))': dependencies: '@babel/parser': 7.29.8 optionalDependencies: - '@intlify/shared': 11.4.8 - '@vue/compiler-dom': 3.5.41 + '@intlify/shared': 11.4.10 + '@vue/compiler-dom': 3.5.42 vue: 3.5.42(typescript@6.0.3) - vue-i18n: 11.4.8(vue@3.5.42(typescript@6.0.3)) + vue-i18n: 11.4.10(vue@3.5.42(typescript@6.0.3)) '@ioredis/commands@1.10.0': {} @@ -6765,7 +6746,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/remapping@2.3.5': @@ -6780,12 +6761,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/sourcemap-codec@1.6.0': {} '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 + + '@keyv/bigmap@1.3.1(keyv@5.6.0)': + dependencies: + hashery: 1.5.1 + hookified: 1.15.1 + keyv: 5.6.0 + + '@keyv/serialize@1.1.1': {} '@koa/router@12.0.2(supports-color@10.2.2)': dependencies: @@ -6809,7 +6798,7 @@ snapshots: dependencies: '@libsql/core': 0.17.4 '@libsql/hrana-client': 0.10.0 - js-base64: 3.9.2 + js-base64: 3.9.3 libsql: 0.5.29 promise-limit: 2.7.0 transitivePeerDependencies: @@ -6818,7 +6807,7 @@ snapshots: '@libsql/core@0.17.4': dependencies: - js-base64: 3.9.2 + js-base64: 3.9.3 '@libsql/darwin-arm64@0.5.29': optional: true @@ -6829,7 +6818,7 @@ snapshots: '@libsql/hrana-client@0.10.0': dependencies: '@libsql/isomorphic-ws': 0.1.5 - js-base64: 3.9.2 + js-base64: 3.9.3 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -6876,11 +6865,20 @@ snapshots: - encoding - supports-color - '@miyaneee/rollup-plugin-json5@1.2.0(rollup@4.62.4)': + '@miyaneee/rollup-plugin-json5@1.2.0(rollup@4.63.1)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.4) + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) json5: 2.2.3 - rollup: 4.62.4 + rollup: 4.63.1 + + '@modelcontextprotocol/core@2.0.0': + dependencies: + zod: 4.5.4 + + '@modelcontextprotocol/server@2.0.0': + dependencies: + '@modelcontextprotocol/core': 2.0.0 + zod: 4.5.4 '@napi-rs/lzma-linux-x64-gnu@1.5.1': optional: true @@ -6901,7 +6899,7 @@ snapshots: '@neon-rs/load@0.0.4': {} - '@noble/hashes@2.2.0': {} + '@noble/hashes@2.4.0': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -6913,7 +6911,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 + fastq: 1.20.3 '@nuxt/cli@3.37.0(@nuxt/schema@4.5.2)(cac@7.0.0)(magicast@0.5.4)(supports-color@10.2.2)': dependencies: @@ -6936,13 +6934,13 @@ snapshots: ohash: 2.0.12 pathe: 2.0.3 perfect-debounce: 2.1.0 - pkg-types: 2.3.1 + pkg-types: 2.3.2 scule: 1.3.0 semver: 7.8.5 srvx: 0.11.22 std-env: 4.2.0 tinyclip: 0.1.15 - tinyexec: 1.3.0 + tinyexec: 1.3.1 ufo: 1.6.4 youch: 4.1.1 optionalDependencies: @@ -6956,19 +6954,19 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@2.7.0(magicast@0.5.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))': + '@nuxt/devtools-kit@2.7.0(magicast@0.5.4)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: '@nuxt/kit': 3.21.11(magicast@0.5.4) execa: 8.0.1 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - magicast - '@nuxt/devtools-kit@3.4.1(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))': + '@nuxt/devtools-kit@3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) execa: 8.0.1 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - magic-string - magicast @@ -6976,7 +6974,7 @@ snapshots: - rolldown - unplugin - '@nuxt/devtools-wizard@3.4.1': + '@nuxt/devtools-wizard@3.4.2': dependencies: '@clack/prompts': 1.7.0 consola: 3.4.2 @@ -6984,17 +6982,17 @@ snapshots: execa: 8.0.1 magicast: 0.5.4 pathe: 2.0.3 - pkg-types: 2.3.1 + pkg-types: 2.3.2 semver: 7.8.5 - '@nuxt/devtools@3.4.1(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@nuxt/devtools@3.4.2(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: - '@nuxt/devtools-kit': 3.4.1(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - '@nuxt/devtools-wizard': 3.4.1 - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + '@nuxt/devtools-kit': 3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + '@nuxt/devtools-wizard': 3.4.2 + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@vue/devtools-core': 8.2.1(vue@3.5.42(typescript@6.0.3)) '@vue/devtools-kit': 8.2.1 - birpc: 4.1.0 + birpc: 4.2.0 consola: 3.4.2 destr: 2.0.5 error-stack-parser-es: 2.0.1 @@ -7011,16 +7009,16 @@ snapshots: ohash: 2.0.12 pathe: 2.0.3 perfect-debounce: 2.1.0 - pkg-types: 2.3.1 + pkg-types: 2.3.2 semver: 7.8.5 simple-git: 3.36.0(supports-color@10.2.2) sirv: 3.0.2 structured-clone-es: 2.0.1 tinyglobby: 0.2.17 unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vite-plugin-inspect: 11.4.1(@nuxt/kit@4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - vite-plugin-vue-tracer: 1.5.0(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite-plugin-inspect: 11.4.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vite-plugin-vue-tracer: 1.5.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) which: 6.0.1 ws: 8.21.3 transitivePeerDependencies: @@ -7052,30 +7050,30 @@ snapshots: - utf-8-validate - vue - '@nuxt/eslint-config@1.17.0(@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.41)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@nuxt/eslint-config@1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@antfu/install-pkg': 2.0.1 '@clack/prompts': 1.7.0 - '@eslint/js': 10.0.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - '@nuxt/eslint-plugin': 1.17.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@stylistic/eslint-plugin': 5.10.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - '@typescript-eslint/eslint-plugin': 8.67.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) - eslint-config-flat-gitignore: 2.3.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint/js': 10.0.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@nuxt/eslint-plugin': 1.17.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@stylistic/eslint-plugin': 5.10.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@typescript-eslint/eslint-plugin': 8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint-config-flat-gitignore: 2.4.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) eslint-flat-config-utils: 3.2.0 - eslint-merge-processors: 2.0.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - eslint-plugin-import-lite: 0.6.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) - eslint-plugin-jsdoc: 63.3.3(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) - eslint-plugin-regexp: 3.2.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - eslint-plugin-unicorn: 73.0.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)))(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(vue-eslint-parser@10.4.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.41)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - globals: 17.11.0 + eslint-merge-processors: 2.0.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + eslint-plugin-import-lite: 0.6.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) + eslint-plugin-jsdoc: 63.3.3(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) + eslint-plugin-regexp: 3.3.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + eslint-plugin-unicorn: 73.0.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)))(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(vue-eslint-parser@10.4.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + globals: 17.12.0 local-pkg: 1.2.1 pathe: 2.0.3 - vue-eslint-parser: 10.4.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) + vue-eslint-parser: 10.4.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) transitivePeerDependencies: - '@typescript-eslint/utils' - '@vue/compiler-sfc' @@ -7083,35 +7081,34 @@ snapshots: - supports-color - typescript - '@nuxt/eslint-plugin@1.17.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@nuxt/eslint-plugin@1.17.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + '@typescript-eslint/types': 8.69.0 + '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) transitivePeerDependencies: - supports-color - typescript - '@nuxt/eslint@1.17.0(@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))': + '@nuxt/eslint@1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: - '@eslint/config-inspector': 3.2.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(srvx@0.11.22) - '@nuxt/devtools-kit': 3.4.1(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - '@nuxt/eslint-config': 1.17.0(@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.41)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@nuxt/eslint-plugin': 1.17.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + '@eslint/config-inspector': 3.4.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(srvx@0.11.22) + '@nuxt/devtools-kit': 3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + '@nuxt/eslint-config': 1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@nuxt/eslint-plugin': 1.17.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) chokidar: 5.0.0 - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) eslint-flat-config-utils: 3.2.0 - eslint-typegen: 2.3.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) + eslint-typegen: 2.3.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) find-up: 8.0.0 get-port-please: 3.2.0 mlly: 1.8.2 pathe: 2.0.3 - unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) transitivePeerDependencies: - '@farmfe/core' - '@modelcontextprotocol/client' - - '@modelcontextprotocol/server' - '@rspack/core' - '@typescript-eslint/utils' - '@vue/compiler-sfc' @@ -7121,6 +7118,7 @@ snapshots: - eslint-plugin-format - magic-string - magicast + - ocache - oxc-parser - rolldown - rollup @@ -7140,15 +7138,15 @@ snapshots: destr: 2.0.5 errx: 0.1.2 exsolve: 1.1.1 - ignore: 7.0.6 + ignore: 7.0.8 jiti: 2.7.0 klona: 2.0.6 knitwork: 1.3.0 mlly: 1.8.2 ohash: 2.0.12 pathe: 2.0.3 - pkg-types: 2.3.1 - rc9: 3.0.1 + pkg-types: 2.3.2 + rc9: 3.1.0 scule: 1.3.0 semver: 7.8.5 tinyglobby: 0.2.17 @@ -7158,7 +7156,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/kit@4.5.2(magic-string@0.30.21)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))': + '@nuxt/kit@4.5.2(magic-string@0.30.21)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': dependencies: c12: 3.3.4(magicast@0.5.4) consola: 3.4.2 @@ -7166,19 +7164,19 @@ snapshots: destr: 2.0.5 errx: 0.1.2 exsolve: 1.1.1 - ignore: 7.0.6 + ignore: 7.0.8 jiti: 2.7.0 klona: 2.0.6 mlly: 1.8.2 nostics: 1.2.0 ohash: 2.0.12 pathe: 2.0.3 - pkg-types: 2.3.1 - rc9: 3.0.1 + pkg-types: 2.3.2 + rc9: 3.1.0 scule: 1.3.0 tinyglobby: 0.2.17 ufo: 1.6.4 - unctx: 3.0.0(magic-string@0.30.21)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + unctx: 3.0.1(magic-string@0.30.21)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) untyped: 2.0.0 verkit: 0.3.2 transitivePeerDependencies: @@ -7188,7 +7186,7 @@ snapshots: - rolldown - unplugin - '@nuxt/kit@4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))': + '@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': dependencies: c12: 3.3.4(magicast@0.5.4) consola: 3.4.2 @@ -7196,19 +7194,19 @@ snapshots: destr: 2.0.5 errx: 0.1.2 exsolve: 1.1.1 - ignore: 7.0.6 + ignore: 7.0.8 jiti: 2.7.0 klona: 2.0.6 mlly: 1.8.2 nostics: 1.2.0 ohash: 2.0.12 pathe: 2.0.3 - pkg-types: 2.3.1 - rc9: 3.0.1 + pkg-types: 2.3.2 + rc9: 3.1.0 scule: 1.3.0 tinyglobby: 0.2.17 ufo: 1.6.4 - unctx: 3.0.0(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + unctx: 3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) untyped: 2.0.0 verkit: 0.3.2 transitivePeerDependencies: @@ -7218,33 +7216,33 @@ snapshots: - rolldown - unplugin - '@nuxt/nitro-server@4.5.2(07a0427701d7eaae84fe356bc8b16442)': + '@nuxt/nitro-server@4.5.2(61e2c4bc2a6f11e79c527691f89dc743)': dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - '@unhead/vue': 3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) - '@vue/shared': 3.5.41 + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@unhead/vue': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@vue/shared': 3.5.42 consola: 3.4.2 defu: 6.1.7 destr: 2.0.5 - devalue: 5.9.0 + devalue: 5.9.2 errx: 0.1.2 escape-string-regexp: 5.0.0 exsolve: 1.1.1 h3: 1.15.11 - impound: 1.1.7(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + impound: 1.2.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4))(oxc-parser@0.141.0)(rolldown@1.2.4)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + nitropack: 2.13.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4))(oxc-parser@0.141.0)(rolldown@1.2.7)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) nostics: 1.2.0 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) nypm: 0.6.9 ohash: 2.0.12 pathe: 2.0.3 rou3: 0.9.2 std-env: 4.2.0 ufo: 1.6.4 - unctx: 3.0.0(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + unctx: 3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) vue: 3.5.42(typescript@6.0.3) vue-bundle-renderer: 2.3.2 @@ -7306,26 +7304,25 @@ snapshots: '@nuxt/schema@4.5.2': dependencies: - '@vue/shared': 3.5.41 + '@vue/shared': 3.5.42 defu: 6.1.7 nostics: 1.2.0 pathe: 2.0.3 - pkg-types: 2.3.1 + pkg-types: 2.3.2 std-env: 4.2.0 - '@nuxt/telemetry@2.8.0(@nuxt/kit@4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))))': + '@nuxt/telemetry@2.9.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))))': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) citty: 0.2.2 consola: 3.4.2 - ofetch: 2.0.0-alpha.3 - rc9: 3.0.1 + rc9: 3.1.0 std-env: 4.2.0 - '@nuxt/test-utils@4.1.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.4)(rollup@4.62.4)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vitest@4.1.11)': + '@nuxt/test-utils@4.2.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11)': dependencies: '@clack/prompts': 1.7.0 - '@nuxt/devtools-kit': 2.7.0(magicast@0.5.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + '@nuxt/devtools-kit': 2.7.0(magicast@0.5.4)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@nuxt/kit': 3.21.11(magicast@0.5.4) c12: 3.3.4(magicast@0.5.4) consola: 3.4.2 @@ -7337,7 +7334,7 @@ snapshots: get-port-please: 3.2.0 h3: 1.15.11 local-pkg: 1.2.1 - magic-string: 1.2.0 + magic-string: 1.2.3 node-fetch-native: 1.6.7 node-mock-http: 1.0.5 nypm: 0.6.9 @@ -7347,14 +7344,14 @@ snapshots: radix3: 1.1.2 scule: 1.3.0 std-env: 4.2.0 - tinyexec: 1.3.0 + tinyexec: 1.3.1 ufo: 1.6.4 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - vitest-environment-nuxt: 2.0.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.4)(rollup@4.62.4)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vitest@4.1.11) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vitest-environment-nuxt: 2.0.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) vue: 3.5.42(typescript@6.0.3) optionalDependencies: '@vitest/ui': 4.1.11(vitest@4.1.11) - vitest: 4.1.11(@types/node@26.2.0)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -7368,14 +7365,14 @@ snapshots: - vite - webpack - '@nuxt/vite-builder@4.5.2(d09f14978b5ccf9d57b622d00c5afb40)': + '@nuxt/vite-builder@4.5.2(b3ea10f4f5f9f4f3a182740a96a3b113)': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - '@vitejs/plugin-vue': 6.0.8(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': 5.1.6(supports-color@10.2.2)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) - autoprefixer: 10.5.4(postcss@8.5.26) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@vitejs/plugin-vue': 6.0.8(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@vitejs/plugin-vue-jsx': 5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + autoprefixer: 10.5.5(postcss@8.5.28) consola: 3.4.2 - cssnano: 8.0.5(postcss@8.5.26) + cssnano: 8.0.10(postcss@8.5.28) defu: 6.1.7 escape-string-regexp: 5.0.0 exsolve: 1.1.1 @@ -7386,26 +7383,26 @@ snapshots: knitwork: 1.3.0 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) nypm: 0.6.9 pathe: 2.0.3 - pkg-types: 2.3.1 - postcss: 8.5.26 - rolldown-string: 0.3.1(rolldown@1.2.4) - seroval: 1.6.2 + pkg-types: 2.3.2 + postcss: 8.5.28 + rolldown-string: 0.3.1(rolldown@1.2.7) + seroval: 1.6.4 std-env: 4.2.0 ufo: 1.6.4 unenv: 2.0.0-rc.24 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vite-node: 6.0.0(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vite-plugin-checker: 0.14.5(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(optionator@0.9.4)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite-node: 6.0.0(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite-plugin-checker: 0.14.5(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(optionator@0.9.4)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3)) vue: 3.5.42(typescript@6.0.3) vue-bundle-renderer: 2.3.2 optionalDependencies: '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) - rolldown: 1.2.4 - rollup-plugin-visualizer: 7.1.1(rolldown@1.2.4)(rollup@4.62.4) + rolldown: 1.2.7 + rollup-plugin-visualizer: 7.1.1(rolldown@1.2.7)(rollup@4.63.1) transitivePeerDependencies: - '@biomejs/biome' - '@farmfe/core' @@ -7437,12 +7434,12 @@ snapshots: - webpack - yaml - '@nuxtjs/color-mode@4.0.1(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))': + '@nuxtjs/color-mode@4.0.1(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) exsolve: 1.1.1 pathe: 2.0.3 - pkg-types: 2.3.1 + pkg-types: 2.3.2 semver: 7.8.5 transitivePeerDependencies: - magic-string @@ -7451,21 +7448,21 @@ snapshots: - rolldown - unplugin - '@nuxtjs/i18n@10.6.0(@vue/compiler-dom@3.5.41)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@nuxtjs/i18n@10.6.0(@vue/compiler-dom@3.5.42)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: - '@intlify/core': 11.4.8 + '@intlify/core': 11.4.10 '@intlify/h3': 0.7.4 - '@intlify/message-compiler': 11.4.8 - '@intlify/shared': 11.4.8 - '@intlify/unplugin-vue-i18n': 11.2.5(@vue/compiler-dom@3.5.41)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(rollup@4.62.4)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) + '@intlify/message-compiler': 11.4.10 + '@intlify/shared': 11.4.10 + '@intlify/unplugin-vue-i18n': 11.2.5(@vue/compiler-dom@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) '@intlify/utils': 0.14.1 - '@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.62.4) - '@nuxt/kit': 4.5.2(magic-string@0.30.21)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - '@rollup/plugin-yaml': 4.1.2(rollup@4.62.4) - '@vue/compiler-sfc': 3.5.41 + '@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.63.1) + '@nuxt/kit': 4.5.2(magic-string@0.30.21)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@rollup/plugin-yaml': 4.1.2(rollup@4.63.1) + '@vue/compiler-sfc': 3.5.42 confbox: 0.2.4 defu: 6.1.7 - devalue: 5.9.0 + devalue: 5.9.2 h3: 1.15.11 knitwork: 1.3.0 magic-string: 0.30.21 @@ -7476,12 +7473,12 @@ snapshots: oxc-walker: 0.7.0(oxc-parser@0.141.0) pathe: 2.0.3 ufo: 1.6.4 - unhead: 3.3.2(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unrouting: 0.2.3 unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) - vue-i18n: 11.4.8(vue@3.5.42(typescript@6.0.3)) - vue-router: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + vue-i18n: 11.4.10(vue@3.5.42(typescript@6.0.3)) + vue-router: 5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7521,10 +7518,10 @@ snapshots: - vue - webpack - '@nuxtjs/tailwindcss@6.14.0(magicast@0.5.4)(supports-color@10.2.2)(tsx@4.23.12)(yaml@2.9.0)': + '@nuxtjs/tailwindcss@6.14.0(magicast@0.5.4)(supports-color@10.2.2)(tsx@4.23.13)(yaml@2.9.0)': dependencies: '@nuxt/kit': 3.21.11(magicast@0.5.4) - autoprefixer: 10.5.4(postcss@8.5.26) + autoprefixer: 10.5.5(postcss@8.5.28) c12: 3.3.4(magicast@0.5.4) consola: 3.4.2 defu: 6.1.7 @@ -7532,11 +7529,11 @@ snapshots: klona: 2.0.6 ohash: 2.0.12 pathe: 2.0.3 - pkg-types: 2.3.1 - postcss: 8.5.26 - postcss-nesting: 13.0.2(postcss@8.5.26) - tailwind-config-viewer: 2.0.4(supports-color@10.2.2)(tailwindcss@3.4.19(tsx@4.23.12)(yaml@2.9.0)) - tailwindcss: 3.4.19(tsx@4.23.12)(yaml@2.9.0) + pkg-types: 2.3.2 + postcss: 8.5.28 + postcss-nesting: 13.0.2(postcss@8.5.28) + tailwind-config-viewer: 2.0.4(supports-color@10.2.2)(tailwindcss@3.4.19(tsx@4.23.13)(yaml@2.9.0)) + tailwindcss: 3.4.19(tsx@4.23.13)(yaml@2.9.0) ufo: 1.6.4 unctx: 2.5.0 transitivePeerDependencies: @@ -7611,7 +7608,7 @@ snapshots: '@oxc-project/types@0.141.0': {} - '@oxc-project/types@0.144.0': {} + '@oxc-project/types@0.148.0': {} '@oxc-transform/binding-android-arm-eabi@0.141.0': optional: true @@ -7680,13 +7677,13 @@ snapshots: '@parcel/watcher-wasm@2.6.0': dependencies: is-glob: 4.0.3 - picomatch: 4.0.5 + picomatch: 4.0.7 '@phc/format@1.0.0': {} - '@pinia/nuxt@1.0.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))': + '@pinia/nuxt@1.0.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) transitivePeerDependencies: - magic-string @@ -7712,194 +7709,197 @@ snapshots: '@poppinss/exception@1.2.3': {} - '@rolldown/binding-android-arm64@1.2.4': + '@rolldown/binding-android-arm-eabi@1.2.7': optional: true - '@rolldown/binding-darwin-arm64@1.2.4': + '@rolldown/binding-android-arm64@1.2.7': optional: true - '@rolldown/binding-darwin-x64@1.2.4': + '@rolldown/binding-darwin-arm64@1.2.7': optional: true - '@rolldown/binding-freebsd-x64@1.2.4': + '@rolldown/binding-darwin-x64@1.2.7': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.4': + '@rolldown/binding-freebsd-x64@1.2.7': optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.4': + '@rolldown/binding-linux-arm-gnueabihf@1.2.7': optional: true - '@rolldown/binding-linux-arm64-musl@1.2.4': + '@rolldown/binding-linux-arm64-gnu@1.2.7': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.4': + '@rolldown/binding-linux-arm64-musl@1.2.7': optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.4': + '@rolldown/binding-linux-ppc64-gnu@1.2.7': optional: true - '@rolldown/binding-linux-x64-gnu@1.2.4': + '@rolldown/binding-linux-s390x-gnu@1.2.7': optional: true - '@rolldown/binding-linux-x64-musl@1.2.4': + '@rolldown/binding-linux-x64-gnu@1.2.7': optional: true - '@rolldown/binding-openharmony-arm64@1.2.4': + '@rolldown/binding-linux-x64-musl@1.2.7': optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.4': + '@rolldown/binding-openharmony-arm64@1.2.7': optional: true - '@rolldown/binding-win32-x64-msvc@1.2.4': + '@rolldown/binding-win32-arm64-msvc@1.2.7': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.2.7': optional: true '@rolldown/pluginutils@1.0.1': {} - '@rollup/plugin-alias@6.0.0(rollup@4.62.4)': + '@rollup/plugin-alias@6.0.0(rollup@4.63.1)': optionalDependencies: - rollup: 4.62.4 + rollup: 4.63.1 - '@rollup/plugin-commonjs@29.0.3(rollup@4.62.4)': + '@rollup/plugin-commonjs@29.0.3(rollup@4.63.1)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.4) + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.5.0(picomatch@4.0.5) + fdir: 6.5.0(picomatch@4.0.7) is-reference: 1.2.1 magic-string: 0.30.21 - picomatch: 4.0.5 + picomatch: 4.0.7 optionalDependencies: - rollup: 4.62.4 + rollup: 4.63.1 - '@rollup/plugin-inject@5.0.5(rollup@4.62.4)': + '@rollup/plugin-inject@5.0.5(rollup@4.63.1)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.4) + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) estree-walker: 2.0.2 magic-string: 0.30.21 optionalDependencies: - rollup: 4.62.4 + rollup: 4.63.1 - '@rollup/plugin-json@6.1.0(rollup@4.62.4)': + '@rollup/plugin-json@6.1.0(rollup@4.63.1)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.4) + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) optionalDependencies: - rollup: 4.62.4 + rollup: 4.63.1 - '@rollup/plugin-node-resolve@16.0.3(rollup@4.62.4)': + '@rollup/plugin-node-resolve@16.0.3(rollup@4.63.1)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.4) + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.12 optionalDependencies: - rollup: 4.62.4 + rollup: 4.63.1 - '@rollup/plugin-replace@6.0.3(rollup@4.62.4)': + '@rollup/plugin-replace@6.0.3(rollup@4.63.1)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.4) + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) magic-string: 0.30.21 optionalDependencies: - rollup: 4.62.4 + rollup: 4.63.1 - '@rollup/plugin-terser@1.0.0(rollup@4.62.4)': + '@rollup/plugin-terser@1.0.0(rollup@4.63.1)': dependencies: - serialize-javascript: 7.1.0 + serialize-javascript: 7.1.1 smob: 1.6.2 - terser: 5.50.0 + terser: 5.51.2 optionalDependencies: - rollup: 4.62.4 + rollup: 4.63.1 - '@rollup/plugin-yaml@4.1.2(rollup@4.62.4)': + '@rollup/plugin-yaml@4.1.2(rollup@4.63.1)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.4) - js-yaml: 4.3.1 + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) + js-yaml: 4.3.2 tosource: 2.0.0-alpha.3 optionalDependencies: - rollup: 4.62.4 + rollup: 4.63.1 - '@rollup/pluginutils@5.4.0(rollup@4.62.4)': + '@rollup/pluginutils@5.4.0(rollup@4.63.1)': dependencies: '@types/estree': 1.0.9 estree-walker: 2.0.2 - picomatch: 4.0.5 + picomatch: 4.0.7 optionalDependencies: - rollup: 4.62.4 + rollup: 4.63.1 - '@rollup/rollup-android-arm-eabi@4.62.4': + '@rollup/rollup-android-arm-eabi@4.63.1': optional: true - '@rollup/rollup-android-arm64@4.62.4': + '@rollup/rollup-android-arm64@4.63.1': optional: true - '@rollup/rollup-darwin-arm64@4.62.4': + '@rollup/rollup-darwin-arm64@4.63.1': optional: true - '@rollup/rollup-darwin-x64@4.62.4': + '@rollup/rollup-darwin-x64@4.63.1': optional: true - '@rollup/rollup-freebsd-arm64@4.62.4': + '@rollup/rollup-freebsd-arm64@4.63.1': optional: true - '@rollup/rollup-freebsd-x64@4.62.4': + '@rollup/rollup-freebsd-x64@4.63.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.62.4': + '@rollup/rollup-linux-arm-gnueabihf@4.63.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.62.4': + '@rollup/rollup-linux-arm-musleabihf@4.63.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.62.4': + '@rollup/rollup-linux-arm64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.62.4': + '@rollup/rollup-linux-arm64-musl@4.63.1': optional: true - '@rollup/rollup-linux-loong64-gnu@4.62.4': + '@rollup/rollup-linux-loong64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-loong64-musl@4.62.4': + '@rollup/rollup-linux-loong64-musl@4.63.1': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.62.4': + '@rollup/rollup-linux-ppc64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-ppc64-musl@4.62.4': + '@rollup/rollup-linux-ppc64-musl@4.63.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.62.4': + '@rollup/rollup-linux-riscv64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.62.4': + '@rollup/rollup-linux-riscv64-musl@4.63.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.62.4': + '@rollup/rollup-linux-s390x-gnu@4.63.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.62.4': + '@rollup/rollup-linux-x64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-x64-musl@4.62.4': + '@rollup/rollup-linux-x64-musl@4.63.1': optional: true - '@rollup/rollup-openbsd-x64@4.62.4': + '@rollup/rollup-openbsd-x64@4.63.1': optional: true - '@rollup/rollup-openharmony-arm64@4.62.4': + '@rollup/rollup-openharmony-arm64@4.63.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.62.4': + '@rollup/rollup-win32-arm64-msvc@4.63.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.62.4': + '@rollup/rollup-win32-ia32-msvc@4.63.1': optional: true - '@rollup/rollup-win32-x64-gnu@4.62.4': + '@rollup/rollup-win32-x64-gnu@4.63.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.62.4': + '@rollup/rollup-win32-x64-msvc@4.63.1': optional: true '@simple-git/args-pathspec@1.0.3': {} @@ -7918,24 +7918,24 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@stylistic/eslint-plugin@5.10.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))': + '@stylistic/eslint-plugin@5.10.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))': dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - '@typescript-eslint/types': 8.67.0 - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@typescript-eslint/types': 8.69.0 + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 - picomatch: 4.0.5 + picomatch: 4.0.7 '@swc/helpers@0.5.23': dependencies: tslib: 2.8.1 - '@tailwindcss/forms@0.5.11(tailwindcss@3.4.19(tsx@4.23.12)(yaml@2.9.0))': + '@tailwindcss/forms@0.5.11(tailwindcss@3.4.19(tsx@4.23.13)(yaml@2.9.0))': dependencies: mini-svg-data-uri: 1.4.4 - tailwindcss: 3.4.19(tsx@4.23.12)(yaml@2.9.0) + tailwindcss: 3.4.19(tsx@4.23.13)(yaml@2.9.0) '@tanstack/virtual-core@3.17.8': {} @@ -7960,17 +7960,15 @@ snapshots: '@types/estree@1.0.9': {} - '@types/jsesc@2.5.1': {} - '@types/json-schema@7.0.15': {} - '@types/node@26.2.0': + '@types/node@26.4.1': dependencies: undici-types: 8.3.0 '@types/phc__format@1.0.1': dependencies: - '@types/node': 26.2.0 + '@types/node': 26.4.1 '@types/resolve@1.20.2': {} @@ -7980,74 +7978,74 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 26.2.0 + '@types/node': 26.4.1 - '@typescript-eslint/eslint-plugin@8.67.0(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.67.0 - '@typescript-eslint/type-utils': 8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.67.0 - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) - ignore: 7.0.6 + '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.69.0 + '@typescript-eslint/type-utils': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.69.0 + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + ignore: 7.0.8 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.67.0 - '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/typescript-estree': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.67.0 + '@typescript-eslint/scope-manager': 8.69.0 + '@typescript-eslint/types': 8.69.0 + '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.69.0 debug: 4.4.3(supports-color@10.2.2) - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.67.0(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/project-service@8.69.0(supports-color@10.2.2)(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@6.0.3) - '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/tsconfig-utils': 8.69.0(typescript@6.0.3) + '@typescript-eslint/types': 8.69.0 debug: 4.4.3(supports-color@10.2.2) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.67.0': + '@typescript-eslint/scope-manager@8.69.0': dependencies: - '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/visitor-keys': 8.67.0 + '@typescript-eslint/types': 8.69.0 + '@typescript-eslint/visitor-keys': 8.69.0 - '@typescript-eslint/tsconfig-utils@8.67.0(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.69.0(typescript@6.0.3)': dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/typescript-estree': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/types': 8.69.0 + '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) debug: 4.4.3(supports-color@10.2.2) - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.67.0': {} + '@typescript-eslint/types@8.69.0': {} - '@typescript-eslint/typescript-estree@8.67.0(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.69.0(supports-color@10.2.2)(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@6.0.3) - '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/visitor-keys': 8.67.0 + '@typescript-eslint/project-service': 8.69.0(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.69.0(typescript@6.0.3) + '@typescript-eslint/types': 8.69.0 + '@typescript-eslint/visitor-keys': 8.69.0 debug: 4.4.3(supports-color@10.2.2) minimatch: 10.2.6 semver: 7.8.5 @@ -8057,34 +8055,34 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - '@typescript-eslint/scope-manager': 8.67.0 - '@typescript-eslint/types': 8.67.0 - '@typescript-eslint/typescript-estree': 8.67.0(supports-color@10.2.2)(typescript@6.0.3) - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@typescript-eslint/scope-manager': 8.69.0 + '@typescript-eslint/types': 8.69.0 + '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.67.0': + '@typescript-eslint/visitor-keys@8.69.0': dependencies: - '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/types': 8.69.0 eslint-visitor-keys: 5.0.1 - '@unhead/bundler@3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(unhead@3.3.2(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))': + '@unhead/bundler@3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(unhead@3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: - magic-string: 1.2.0 - oxc-walker: 1.1.1(@oxc-project/types@0.144.0)(oxc-parser@0.141.0)(rolldown@1.2.4) - unhead: 3.3.2(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + magic-string: 1.2.3 + oxc-walker: 1.1.1(@oxc-project/types@0.148.0)(oxc-parser@0.141.0)(rolldown@1.2.7) + unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) optionalDependencies: esbuild: 0.28.2 lightningcss: 1.33.0 oxc-parser: 0.141.0 - rolldown: 1.2.4 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + rolldown: 1.2.7 + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@oxc-project/types' @@ -8093,15 +8091,15 @@ snapshots: - rollup - unloader - '@unhead/vue@3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@unhead/vue@3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: - '@unhead/bundler': 3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(unhead@3.3.2(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + '@unhead/bundler': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(unhead@3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) hookable: 6.1.1 - unhead: 3.3.2(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) vue: 3.5.42(typescript@6.0.3) optionalDependencies: - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@oxc-project/types' @@ -8186,10 +8184,10 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.12.2': optional: true - '@vercel/nft@1.10.2(rollup@4.62.4)(supports-color@10.2.2)': + '@vercel/nft@1.11.0(rollup@4.63.1)(supports-color@10.2.2)': dependencies: '@mapbox/node-pre-gyp': 2.0.3(supports-color@10.2.2) - '@rollup/pluginutils': 5.4.0(rollup@4.62.4) + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) acorn: 8.18.0 acorn-import-attributes: 1.9.5(acorn@8.18.0) async-sema: 3.1.1 @@ -8198,29 +8196,29 @@ snapshots: glob: 13.0.6 graceful-fs: 4.2.11 node-gyp-build: 4.8.4 - picomatch: 4.0.5 + picomatch: 4.0.7 resolve-from: 5.0.0 transitivePeerDependencies: - encoding - rollup - supports-color - '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vue: 3.5.42(typescript@6.0.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.8(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.8(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vue: 3.5.42(typescript@6.0.3) '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': @@ -8235,7 +8233,7 @@ snapshots: obug: 2.1.4 std-env: 4.2.0 tinyrainbow: 3.1.1 - vitest: 4.1.11(@types/node@26.2.0)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@vitest/expect@4.1.11': dependencies: @@ -8246,13 +8244,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.11(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))': + '@vitest/mocker@4.1.11(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.11 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) '@vitest/pretty-format@4.1.11': dependencies: @@ -8281,7 +8279,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vitest: 4.1.11(@types/node@26.2.0)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@vitest/utils@4.1.11': dependencies: @@ -8299,13 +8297,13 @@ snapshots: dependencies: '@volar/language-core': 2.4.28 path-browserify: 1.0.1 - vscode-uri: 3.1.0 + vscode-uri: 3.2.0 optionalDependencies: typescript: 6.0.3 '@vue-macros/common@3.1.4(vue@3.5.42(typescript@6.0.3))': dependencies: - '@vue/compiler-sfc': 3.5.41 + '@vue/compiler-sfc': 3.5.42 ast-kit: 2.2.0 local-pkg: 1.2.1 magic-string-ast: 1.0.3 @@ -8325,7 +8323,7 @@ snapshots: '@babel/types': 7.29.8 '@vue/babel-helper-vue-transform-on': 2.0.1 '@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) - '@vue/shared': 3.5.41 + '@vue/shared': 3.5.42 optionalDependencies: '@babel/core': 7.29.7(supports-color@10.2.2) transitivePeerDependencies: @@ -8338,18 +8336,10 @@ snapshots: '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.29.7 '@babel/parser': 7.29.8 - '@vue/compiler-sfc': 3.5.41 + '@vue/compiler-sfc': 3.5.42 transitivePeerDependencies: - supports-color - '@vue/compiler-core@3.5.41': - dependencies: - '@babel/parser': 7.29.8 - '@vue/shared': 3.5.41 - entities: 7.0.1 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - '@vue/compiler-core@3.5.42': dependencies: '@babel/parser': 7.29.8 @@ -8358,28 +8348,11 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.41': - dependencies: - '@vue/compiler-core': 3.5.41 - '@vue/shared': 3.5.41 - '@vue/compiler-dom@3.5.42': dependencies: '@vue/compiler-core': 3.5.42 '@vue/shared': 3.5.42 - '@vue/compiler-sfc@3.5.41': - dependencies: - '@babel/parser': 7.29.8 - '@vue/compiler-core': 3.5.41 - '@vue/compiler-dom': 3.5.41 - '@vue/compiler-ssr': 3.5.41 - '@vue/shared': 3.5.41 - estree-walker: 2.0.2 - magic-string: 0.30.21 - postcss: 8.5.26 - source-map-js: 1.2.1 - '@vue/compiler-sfc@3.5.42': dependencies: '@babel/parser': 7.29.8 @@ -8389,14 +8362,9 @@ snapshots: '@vue/shared': 3.5.42 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.26 + postcss: 8.5.28 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.41': - dependencies: - '@vue/compiler-dom': 3.5.41 - '@vue/shared': 3.5.41 - '@vue/compiler-ssr@3.5.42': dependencies: '@vue/compiler-dom': 3.5.42 @@ -8423,15 +8391,15 @@ snapshots: '@vue/devtools-shared@8.2.1': {} - '@vue/language-core@3.3.10': + '@vue/language-core@3.3.11': dependencies: '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.41 - '@vue/shared': 3.5.41 + '@vue/compiler-dom': 3.5.42 + '@vue/shared': 3.5.42 alien-signals: 3.2.1 muggle-string: 0.4.1 path-browserify: 1.0.1 - picomatch: 4.0.5 + picomatch: 4.0.7 '@vue/reactivity@3.5.42': dependencies: @@ -8455,8 +8423,6 @@ snapshots: '@vue/runtime-dom': 3.5.42 '@vue/shared': 3.5.42 - '@vue/shared@3.5.41': {} - '@vue/shared@3.5.42': {} '@vueuse/core@14.4.0(vue@3.5.42(typescript@6.0.3))': @@ -8468,13 +8434,13 @@ snapshots: '@vueuse/metadata@14.4.0': {} - '@vueuse/nuxt@14.4.0(ec4b4abfb3045127c841979d1f79173d)': + '@vueuse/nuxt@14.4.0(c7a15abfadeb1c2d705bc86835ad7621)': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@vueuse/core': 14.4.0(vue@3.5.42(typescript@6.0.3)) '@vueuse/metadata': 14.4.0 local-pkg: 1.2.1 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) vue: 3.5.42(typescript@6.0.3) transitivePeerDependencies: - magic-string @@ -8561,7 +8527,7 @@ snapshots: buffer-crc32: 1.0.0 readable-stream: 4.7.0 readdir-glob: 1.1.3 - tar-stream: 3.2.0 + tar-stream: 3.2.1 zip-stream: 6.0.1 transitivePeerDependencies: - bare-abort-controller @@ -8610,13 +8576,13 @@ snapshots: at-least-node@1.0.0: {} - autoprefixer@10.5.4(postcss@8.5.26): + autoprefixer@10.5.5(postcss@8.5.28): dependencies: - browserslist: 4.28.8 - caniuse-lite: 1.0.30001809 + browserslist: 4.28.9 + caniuse-lite: 1.0.30001810 fraction.js: 5.3.4 picocolors: 1.1.1 - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 b4a@1.8.1: {} @@ -8625,38 +8591,38 @@ snapshots: balanced-match@4.0.4: {} - bare-events@2.9.1: {} + bare-events@2.9.2: {} - bare-fs@4.8.0: + bare-fs@4.8.1: dependencies: - bare-events: 2.9.1 - bare-path: 3.1.1 - bare-stream: 2.13.3(bare-events@2.9.1) - bare-url: 2.5.2 + bare-events: 2.9.2 + bare-path: 3.1.2 + bare-stream: 2.13.4(bare-events@2.9.2) + bare-url: 2.5.4 fast-fifo: 1.3.2 transitivePeerDependencies: - bare-abort-controller - react-native-b4a - bare-path@3.1.1: {} + bare-path@3.1.2: {} - bare-stream@2.13.3(bare-events@2.9.1): + bare-stream@2.13.4(bare-events@2.9.2): dependencies: b4a: 1.8.1 - streamx: 2.28.0 + streamx: 2.28.1 teex: 1.0.1 optionalDependencies: - bare-events: 2.9.1 + bare-events: 2.9.2 transitivePeerDependencies: - react-native-b4a - bare-url@2.5.2: + bare-url@2.5.4: dependencies: - bare-path: 3.1.1 + bare-path: 3.1.2 base64-js@1.5.1: {} - baseline-browser-mapping@2.11.14: {} + baseline-browser-mapping@2.11.21: {} binary-extensions@2.3.0: {} @@ -8666,7 +8632,7 @@ snapshots: birpc@2.9.0: {} - birpc@4.1.0: {} + birpc@4.2.0: {} boolbase@1.0.0: {} @@ -8687,13 +8653,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.28.8: + browserslist@4.28.9: dependencies: - baseline-browser-mapping: 2.11.14 - caniuse-lite: 1.0.30001809 - electron-to-chromium: 1.5.407 - node-releases: 2.0.53 - update-browserslist-db: 1.3.1(browserslist@4.28.8) + baseline-browser-mapping: 2.11.21 + caniuse-lite: 1.0.30001810 + electron-to-chromium: 1.5.422 + node-releases: 2.0.54 + update-browserslist-db: 1.3.2(browserslist@4.28.9) buffer-crc32@1.0.0: {} @@ -8722,8 +8688,8 @@ snapshots: ohash: 2.0.12 pathe: 2.0.3 perfect-debounce: 2.1.0 - pkg-types: 2.3.1 - rc9: 3.0.1 + pkg-types: 2.3.2 + rc9: 3.1.0 optionalDependencies: magicast: 0.5.4 @@ -8734,6 +8700,14 @@ snapshots: mime-types: 2.1.35 ylru: 1.4.0 + cacheable@2.5.0: + dependencies: + '@cacheable/memory': 2.2.0 + '@cacheable/utils': 2.5.0 + hookified: 1.15.1 + keyv: 5.6.0 + qified: 0.10.1 + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -8748,10 +8722,10 @@ snapshots: caniuse-api@4.0.0: dependencies: - browserslist: 4.28.8 - caniuse-lite: 1.0.30001809 + browserslist: 4.28.9 + caniuse-lite: 1.0.30001810 - caniuse-lite@1.0.30001809: {} + caniuse-lite@1.0.30001810: {} chai@6.2.2: {} @@ -8782,8 +8756,6 @@ snapshots: ci-info@4.4.0: {} - cidr-regex@7.0.1: {} - cidr-regex@7.1.0: {} cidr-tools@13.0.1: @@ -8853,6 +8825,8 @@ snapshots: confbox@0.2.4: {} + confbox@0.3.1: {} + consola@3.4.2: {} content-disposition@0.5.4: @@ -8878,7 +8852,7 @@ snapshots: core-js-compat@3.50.0: dependencies: - browserslist: 4.28.8 + browserslist: 4.28.9 core-util-is@1.0.3: {} @@ -8906,14 +8880,14 @@ snapshots: dependencies: uncrypto: 0.1.3 - crossws@0.4.10(srvx@0.11.22): + crossws@0.4.12(srvx@0.11.22): optionalDependencies: srvx: 0.11.22 - css-select@5.2.2: + css-select@6.0.0: dependencies: boolbase: 1.0.0 - css-what: 6.2.2 + css-what: 7.0.0 domhandler: 5.0.3 domutils: 3.2.2 nth-check: 2.1.1 @@ -8928,52 +8902,52 @@ snapshots: mdn-data: 2.27.1 source-map-js: 1.2.1 - css-what@6.2.2: {} + css-what@7.0.0: {} cssesc@3.0.0: {} - cssnano-preset-default@8.0.5(postcss@8.5.26): + cssnano-preset-default@8.0.10(postcss@8.5.28): dependencies: - browserslist: 4.28.8 - cssnano-utils: 6.0.3(postcss@8.5.26) - postcss: 8.5.26 - postcss-calc: 10.1.1(postcss@8.5.26) - postcss-colormin: 8.0.3(postcss@8.5.26) - postcss-convert-values: 8.0.3(postcss@8.5.26) - postcss-discard-comments: 8.0.3(postcss@8.5.26) - postcss-discard-duplicates: 8.0.3(postcss@8.5.26) - postcss-discard-empty: 8.0.3(postcss@8.5.26) - postcss-discard-overridden: 8.0.3(postcss@8.5.26) - postcss-merge-longhand: 8.0.3(postcss@8.5.26) - postcss-merge-rules: 8.0.3(postcss@8.5.26) - postcss-minify-font-values: 8.0.3(postcss@8.5.26) - postcss-minify-gradients: 8.0.3(postcss@8.5.26) - postcss-minify-params: 8.0.3(postcss@8.5.26) - postcss-minify-selectors: 8.0.4(postcss@8.5.26) - postcss-normalize-charset: 8.0.3(postcss@8.5.26) - postcss-normalize-display-values: 8.0.3(postcss@8.5.26) - postcss-normalize-positions: 8.0.3(postcss@8.5.26) - postcss-normalize-repeat-style: 8.0.3(postcss@8.5.26) - postcss-normalize-string: 8.0.3(postcss@8.5.26) - postcss-normalize-timing-functions: 8.0.3(postcss@8.5.26) - postcss-normalize-unicode: 8.0.3(postcss@8.5.26) - postcss-normalize-url: 8.0.3(postcss@8.5.26) - postcss-normalize-whitespace: 8.0.3(postcss@8.5.26) - postcss-ordered-values: 8.0.3(postcss@8.5.26) - postcss-reduce-initial: 8.0.3(postcss@8.5.26) - postcss-reduce-transforms: 8.0.3(postcss@8.5.26) - postcss-svgo: 8.0.4(postcss@8.5.26) - postcss-unique-selectors: 8.0.3(postcss@8.5.26) + browserslist: 4.28.9 + cssnano-utils: 6.0.4(postcss@8.5.28) + postcss: 8.5.28 + postcss-calc: 10.1.1(postcss@8.5.28) + postcss-colormin: 8.0.5(postcss@8.5.28) + postcss-convert-values: 8.0.4(postcss@8.5.28) + postcss-discard-comments: 8.0.4(postcss@8.5.28) + postcss-discard-duplicates: 8.0.4(postcss@8.5.28) + postcss-discard-empty: 8.0.5(postcss@8.5.28) + postcss-discard-overridden: 8.0.4(postcss@8.5.28) + postcss-merge-longhand: 8.0.4(postcss@8.5.28) + postcss-merge-rules: 8.0.5(postcss@8.5.28) + postcss-minify-font-values: 8.0.4(postcss@8.5.28) + postcss-minify-gradients: 8.0.6(postcss@8.5.28) + postcss-minify-params: 8.0.4(postcss@8.5.28) + postcss-minify-selectors: 8.0.5(postcss@8.5.28) + postcss-normalize-charset: 8.0.5(postcss@8.5.28) + postcss-normalize-display-values: 8.0.4(postcss@8.5.28) + postcss-normalize-positions: 8.0.4(postcss@8.5.28) + postcss-normalize-repeat-style: 8.0.4(postcss@8.5.28) + postcss-normalize-string: 8.0.4(postcss@8.5.28) + postcss-normalize-timing-functions: 8.0.4(postcss@8.5.28) + postcss-normalize-unicode: 8.0.4(postcss@8.5.28) + postcss-normalize-url: 8.0.4(postcss@8.5.28) + postcss-normalize-whitespace: 8.0.5(postcss@8.5.28) + postcss-ordered-values: 8.0.5(postcss@8.5.28) + postcss-reduce-initial: 8.0.5(postcss@8.5.28) + postcss-reduce-transforms: 8.0.4(postcss@8.5.28) + postcss-svgo: 8.0.6(postcss@8.5.28) + postcss-unique-selectors: 8.0.4(postcss@8.5.28) - cssnano-utils@6.0.3(postcss@8.5.26): + cssnano-utils@6.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 - cssnano@8.0.5(postcss@8.5.26): + cssnano@8.0.10(postcss@8.5.28): dependencies: - cssnano-preset-default: 8.0.5(postcss@8.5.26) + cssnano-preset-default: 8.0.10(postcss@8.5.28) lilconfig: 3.1.3 - postcss: 8.5.26 + postcss: 8.5.28 csso@5.0.5: dependencies: @@ -9006,7 +8980,7 @@ snapshots: default-browser-id@5.0.1: {} - default-browser@5.5.0: + default-browser@5.5.1: dependencies: bundle-name: 4.1.0 default-browser-id: 5.0.1 @@ -9033,15 +9007,15 @@ snapshots: detect-libc@2.1.2: {} - devalue@5.9.0: {} + devalue@5.9.2: {} - devframe@0.8.2(cac@7.0.0)(srvx@0.11.22): + devframe@0.9.12(cac@7.0.0)(srvx@0.11.22): dependencies: + '@modelcontextprotocol/server': 2.0.0 '@standard-schema/spec': 1.1.0 - birpc: 4.1.0 - crossws: 0.4.10(srvx@0.11.22) - destr: 2.0.5 - h3: 2.0.1-rc.26(crossws@0.4.10(srvx@0.11.22)) + birpc: 4.2.0 + crossws: 0.4.12(srvx@0.11.22) + h3: 2.0.1-rc.31(crossws@0.4.12(srvx@0.11.22)) mrmime: 2.0.1 nostics: 1.2.0 pathe: 2.0.3 @@ -9049,6 +9023,7 @@ snapshots: optionalDependencies: cac: 7.0.0 transitivePeerDependencies: + - ocache - srvx didyoumean@1.2.2: {} @@ -9077,7 +9052,7 @@ snapshots: dot-prop@10.2.0: dependencies: - type-fest: 5.8.0 + type-fest: 5.9.0 dotenv@17.4.2: {} @@ -9086,7 +9061,7 @@ snapshots: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 esbuild: 0.25.12 - tsx: 4.23.12 + tsx: 4.23.13 drizzle-orm@0.45.2(@libsql/client@0.17.4): optionalDependencies: @@ -9104,7 +9079,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.407: {} + electron-to-chromium@1.5.422: {} emoji-regex@10.6.0: {} @@ -9130,8 +9105,6 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@2.3.1: {} - es-module-lexer@2.3.2: {} es-object-atoms@1.1.2: @@ -9237,14 +9210,14 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-flat-gitignore@2.3.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)): + eslint-config-flat-gitignore@2.4.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): dependencies: - '@eslint/compat': 2.1.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + '@eslint/compat': 2.1.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) - eslint-config-prettier@10.1.8(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)): + eslint-config-prettier@10.1.8(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): dependencies: - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) eslint-flat-config-utils@3.2.0: dependencies: @@ -9253,25 +9226,25 @@ snapshots: eslint-import-context@0.1.9(unrs-resolver@1.12.2): dependencies: - get-tsconfig: 4.14.2 + get-tsconfig: 4.14.3 stable-hash-x: 0.2.0 optionalDependencies: unrs-resolver: 1.12.2 - eslint-merge-processors@2.0.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)): + eslint-merge-processors@2.0.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): dependencies: - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) - eslint-plugin-import-lite@0.6.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)): + eslint-plugin-import-lite@0.6.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): dependencies: - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) - eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): + eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): dependencies: - '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/types': 8.69.0 comment-parser: 1.4.8 debug: 4.4.3(supports-color@10.2.2) - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) eslint-import-context: 0.1.9(unrs-resolver@1.12.2) is-glob: 4.0.3 minimatch: 10.2.6 @@ -9279,11 +9252,11 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.12.2 optionalDependencies: - '@typescript-eslint/utils': 8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@63.3.3(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): + eslint-plugin-jsdoc@63.3.3(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): dependencies: '@es-joy/jsdoccomment': 0.91.0 '@es-joy/resolve.exports': 1.2.0 @@ -9291,7 +9264,7 @@ snapshots: comment-parser: 1.4.7 debug: 4.4.3(supports-color@10.2.2) escape-string-regexp: 4.0.0 - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) espree: 11.2.0 esquery: 1.7.0 html-entities: 2.6.0 @@ -9303,30 +9276,30 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-regexp@3.2.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)): + eslint-plugin-regexp@3.3.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) '@eslint-community/regexpp': 4.12.2 comment-parser: 1.4.8 - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) - jsdoc-type-pratt-parser: 9.1.1 + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + jsdoc-type-pratt-parser: 9.2.1 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-unicorn@73.0.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)): + eslint-plugin-unicorn@73.0.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - '@eslint/css-tree': 4.0.5 - browserslist: 4.28.8 + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint/css-tree': 4.1.0 + browserslist: 4.28.9 change-case: 5.4.4 ci-info: 4.4.0 core-js-compat: 3.50.0 detect-indent: 7.0.2 entities: 4.5.0 - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) find-up-simple: 1.0.1 - globals: 17.11.0 + globals: 17.12.0 indent-string: 5.0.0 is-builtin-module: 5.0.0 is-identifier: 1.1.0 @@ -9338,24 +9311,24 @@ snapshots: strip-indent: 4.1.1 yaml: 2.9.0 - eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)))(@typescript-eslint/parser@8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(vue-eslint-parser@10.4.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)): + eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)))(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(vue-eslint-parser@10.4.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 7.1.5 + postcss-selector-parser: 7.1.6 semver: 7.8.5 - vue-eslint-parser: 10.4.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) + vue-eslint-parser: 10.4.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) xml-name-validator: 5.0.0 optionalDependencies: - '@stylistic/eslint-plugin': 5.10.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) - '@typescript-eslint/parser': 8.67.0(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@stylistic/eslint-plugin': 5.10.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.41)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)): + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): dependencies: - '@vue/compiler-sfc': 3.5.41 - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + '@vue/compiler-sfc': 3.5.42 + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) eslint-scope@9.1.2: dependencies: @@ -9364,9 +9337,9 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-typegen@2.3.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)): + eslint-typegen@2.3.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): dependencies: - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) json-schema-to-typescript-lite: 15.0.0 ohash: 2.0.12 @@ -9376,14 +9349,14 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2): + eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5(supports-color@10.2.2) '@eslint/config-helpers': 0.7.0 '@eslint/core': 1.2.1 - '@eslint/plugin-kit': 0.7.2 + '@eslint/plugin-kit': 0.7.3 '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -9398,7 +9371,7 @@ snapshots: esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 + file-entry-cache: 11.1.5 find-up: 5.0.0 glob-parent: 6.0.2 ignore: 5.3.2 @@ -9457,7 +9430,7 @@ snapshots: events-universal@1.0.1: dependencies: - bare-events: 2.9.1 + bare-events: 2.9.2 transitivePeerDependencies: - bare-abort-controller @@ -9511,19 +9484,19 @@ snapshots: dependencies: fast-string-width: 3.0.2 - fastq@1.20.1: + fastq@1.20.3: dependencies: reusify: 1.1.0 - fdir@6.5.0(picomatch@4.0.5): + fdir@6.5.0(picomatch@4.0.7): optionalDependencies: - picomatch: 4.0.5 + picomatch: 4.0.7 fflate@0.8.3: {} - file-entry-cache@8.0.0: + file-entry-cache@11.1.5: dependencies: - flat-cache: 4.0.1 + flat-cache: 6.1.23 file-uri-to-path@1.0.0: {} @@ -9543,10 +9516,11 @@ snapshots: locate-path: 8.0.0 unicorn-magic: 0.3.0 - flat-cache@4.0.1: + flat-cache@6.1.23: dependencies: + cacheable: 2.5.0 flatted: 3.4.4 - keyv: 4.5.4 + hookified: 1.15.1 flatted@3.4.4: {} @@ -9619,7 +9593,7 @@ snapshots: get-stream@8.0.1: {} - get-tsconfig@4.14.2: + get-tsconfig@4.14.3: dependencies: resolve-pkg-maps: 1.0.0 @@ -9661,14 +9635,15 @@ snapshots: dependencies: ini: 4.1.1 - globals@17.11.0: {} + globals@17.12.0: {} - globby@16.2.3: + globby@16.2.4: dependencies: '@sindresorhus/merge-streams': 4.0.0 fast-glob: 3.3.3 - ignore: 7.0.6 + ignore: 7.0.8 is-path-inside: 4.0.0 + micromatch: 4.0.8 slash: 5.1.0 unicorn-magic: 0.4.0 @@ -9692,12 +9667,12 @@ snapshots: ufo: 1.6.4 uncrypto: 0.1.3 - h3@2.0.1-rc.26(crossws@0.4.10(srvx@0.11.22)): + h3@2.0.1-rc.31(crossws@0.4.12(srvx@0.11.22)): dependencies: rou3: 0.9.2 - srvx: 0.12.5 + srvx: 1.0.3 optionalDependencies: - crossws: 0.4.10(srvx@0.11.22) + crossws: 0.4.12(srvx@0.11.22) has-flag@4.0.0: {} @@ -9707,6 +9682,10 @@ snapshots: dependencies: has-symbols: 1.1.0 + hashery@1.5.1: + dependencies: + hookified: 1.15.1 + hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -9715,6 +9694,10 @@ snapshots: hookable@6.1.1: {} + hookified@1.15.1: {} + + hookified@2.2.0: {} + html-entities@2.6.0: {} html-escaper@2.0.2: {} @@ -9768,16 +9751,16 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.6: {} + ignore@7.0.8: {} image-meta@0.2.2: {} - impound@1.1.7(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): + impound@1.2.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: '@jridgewell/trace-mapping': 0.3.31 - es-module-lexer: 2.3.1 + es-module-lexer: 2.3.2 pathe: 2.0.3 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unplugin-utils: 0.3.2 transitivePeerDependencies: - '@farmfe/core' @@ -9837,7 +9820,7 @@ snapshots: is-cidr@7.0.1: dependencies: - cidr-regex: 7.0.1 + cidr-regex: 7.1.0 is-core-module@2.16.2: dependencies: @@ -9944,9 +9927,9 @@ snapshots: jiti@2.7.0: {} - jose@6.2.10: {} + jose@6.2.12: {} - js-base64@3.9.2: {} + js-base64@3.9.3: {} js-sha256@1.0.0: {} @@ -9954,20 +9937,19 @@ snapshots: js-tokens@4.0.0: {} - js-yaml@4.3.1: + js-yaml@4.3.2: dependencies: argparse: 2.0.1 jsdoc-type-pratt-parser@8.0.0: {} - jsdoc-type-pratt-parser@9.1.1: + jsdoc-type-pratt-parser@9.2.1: dependencies: '@types/estree': 1.0.9 + '@types/node': 26.4.1 jsesc@3.1.0: {} - json-buffer@3.0.1: {} - json-schema-to-typescript-lite@15.0.0: dependencies: '@apidevtools/json-schema-ref-parser': 14.2.1(@types/json-schema@7.0.15) @@ -9996,9 +9978,9 @@ snapshots: dependencies: tsscmp: 1.0.6 - keyv@4.5.4: + keyv@5.6.0: dependencies: - json-buffer: 3.0.1 + '@keyv/serialize': 1.1.1 kleur@4.1.5: {} @@ -10143,7 +10125,7 @@ snapshots: '@parcel/watcher-wasm': 2.6.0 citty: 0.2.2 consola: 3.4.2 - crossws: 0.4.10(srvx@0.11.22) + crossws: 0.4.12(srvx@0.11.22) defu: 6.1.7 get-port-please: 3.2.0 h3: 1.15.11 @@ -10164,7 +10146,7 @@ snapshots: local-pkg@1.2.1: dependencies: mlly: 1.8.2 - pkg-types: 2.3.1 + pkg-types: 2.3.2 quansync: 0.2.11 locate-path@6.0.0: @@ -10201,11 +10183,11 @@ snapshots: magic-string@0.30.21: dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 - magic-string@1.2.0: + magic-string@1.2.3: dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 magicast@0.5.4: dependencies: @@ -10229,7 +10211,7 @@ snapshots: mdn-data@2.27.1: {} - mdn-data@2.29.0: {} + mdn-data@2.34.0: {} media-typer@0.3.0: {} @@ -10315,17 +10297,17 @@ snapshots: negotiator@0.6.3: {} - nitropack@2.13.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4))(oxc-parser@0.141.0)(rolldown@1.2.4)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): + nitropack@2.13.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4))(oxc-parser@0.141.0)(rolldown@1.2.7)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 - '@rollup/plugin-alias': 6.0.0(rollup@4.62.4) - '@rollup/plugin-commonjs': 29.0.3(rollup@4.62.4) - '@rollup/plugin-inject': 5.0.5(rollup@4.62.4) - '@rollup/plugin-json': 6.1.0(rollup@4.62.4) - '@rollup/plugin-node-resolve': 16.0.3(rollup@4.62.4) - '@rollup/plugin-replace': 6.0.3(rollup@4.62.4) - '@rollup/plugin-terser': 1.0.0(rollup@4.62.4) - '@vercel/nft': 1.10.2(rollup@4.62.4)(supports-color@10.2.2) + '@rollup/plugin-alias': 6.0.0(rollup@4.63.1) + '@rollup/plugin-commonjs': 29.0.3(rollup@4.63.1) + '@rollup/plugin-inject': 5.0.5(rollup@4.63.1) + '@rollup/plugin-json': 6.1.0(rollup@4.63.1) + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.63.1) + '@rollup/plugin-replace': 6.0.3(rollup@4.63.1) + '@rollup/plugin-terser': 1.0.0(rollup@4.63.1) + '@vercel/nft': 1.11.0(rollup@4.63.1)(supports-color@10.2.2) archiver: 7.0.1 c12: 3.3.4(magicast@0.5.4) chokidar: 5.0.0 @@ -10344,7 +10326,7 @@ snapshots: escape-string-regexp: 5.0.0 etag: 1.8.1 exsolve: 1.1.1 - globby: 16.2.3 + globby: 16.2.4 gzip-size: 7.0.0 h3: 1.15.11 hookable: 5.5.3 @@ -10364,11 +10346,11 @@ snapshots: ohash: 2.0.12 pathe: 2.0.3 perfect-debounce: 2.1.0 - pkg-types: 2.3.1 - pretty-bytes: 7.1.1 + pkg-types: 2.3.2 + pretty-bytes: 7.1.3 radix3: 1.1.2 - rollup: 4.62.4 - rollup-plugin-visualizer: 7.1.1(rolldown@1.2.4)(rollup@4.62.4) + rollup: 4.63.1 + rollup-plugin-visualizer: 7.1.1(rolldown@1.2.7)(rollup@4.63.1) scule: 1.3.0 semver: 7.8.5 serve-placeholder: 2.0.2 @@ -10380,7 +10362,7 @@ snapshots: uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unplugin-utils: 0.3.2 unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) untyped: 2.0.0 @@ -10441,7 +10423,7 @@ snapshots: node-mock-http@1.0.5: {} - node-releases@2.0.53: {} + node-releases@2.0.54: {} nopt@8.1.0: dependencies: @@ -10466,35 +10448,35 @@ snapshots: nuxt-define@1.0.0: {} - nuxt@4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.144.0)(@types/node@26.2.0)(@vue/compiler-sfc@3.5.41)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4))(rollup@4.62.4)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.50.0)(tsx@4.23.12)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3))(yaml@2.9.0): + nuxt@4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0): dependencies: - '@dxup/nuxt': 0.5.7(esbuild@0.28.2)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + '@dxup/nuxt': 0.5.10(esbuild@0.28.2)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.2)(cac@7.0.0)(magicast@0.5.4)(supports-color@10.2.2) - '@nuxt/devtools': 3.4.1(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - '@nuxt/nitro-server': 4.5.2(07a0427701d7eaae84fe356bc8b16442) + '@nuxt/devtools': 3.4.2(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/nitro-server': 4.5.2(61e2c4bc2a6f11e79c527691f89dc743) '@nuxt/schema': 4.5.2 - '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)))) - '@nuxt/vite-builder': 4.5.2(d09f14978b5ccf9d57b622d00c5afb40) - '@unhead/vue': 3.3.2(@oxc-project/types@0.144.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) - '@vue/shared': 3.5.41 + '@nuxt/telemetry': 2.9.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))) + '@nuxt/vite-builder': 4.5.2(b3ea10f4f5f9f4f3a182740a96a3b113) + '@unhead/vue': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@vue/shared': 3.5.42 chokidar: 5.0.0 compatx: 0.2.0 consola: 3.4.2 cookie-es: 3.1.1 defu: 6.1.7 - devalue: 5.9.0 + devalue: 5.9.2 errx: 0.1.2 escape-string-regexp: 5.0.0 exsolve: 1.1.1 fnv1a-64: 0.1.2 hookable: 6.1.1 - ignore: 7.0.6 - impound: 1.1.7(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + ignore: 7.0.8 + impound: 1.2.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) jiti: 2.7.0 klona: 2.0.6 knitwork: 1.3.0 - magic-string: 1.2.0 + magic-string: 1.2.3 mlly: 1.8.2 nanotar: 0.3.0 nostics: 1.2.0 @@ -10503,13 +10485,13 @@ snapshots: ofetch: 1.5.1 ohash: 2.0.12 on-change: 6.0.2 - oxc-walker: 1.1.1(@oxc-project/types@0.144.0)(oxc-parser@0.141.0)(rolldown@1.2.4) + oxc-walker: 1.1.1(@oxc-project/types@0.148.0)(oxc-parser@0.141.0)(rolldown@1.2.7) pathe: 2.0.3 perfect-debounce: 2.1.0 - picomatch: 4.0.5 - pkg-types: 2.3.1 - rolldown: 1.2.4 - rolldown-string: 0.3.1(rolldown@1.2.4) + picomatch: 4.0.7 + pkg-types: 2.3.2 + rolldown: 1.2.7 + rolldown-string: 0.3.1(rolldown@1.2.7) rou3: 0.9.2 scule: 1.3.0 std-env: 4.2.0 @@ -10517,19 +10499,19 @@ snapshots: ufo: 1.6.4 ultrahtml: 1.7.0 uncrypto: 0.1.3 - unctx: 3.0.0(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) - undici: 8.10.0 - unhead: 3.3.2(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + unctx: 3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + undici: 8.10.2 + unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unrouting: 0.2.3 untyped: 2.0.0 verkit: 0.3.2 vue: 3.5.42(typescript@6.0.3) - vue-component-type-helpers: 3.3.10 - vue-router: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + vue-component-type-helpers: 3.3.11 + vue-router: 5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) optionalDependencies: - '@types/node': 26.2.0 + '@types/node': 26.4.1 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -10611,9 +10593,9 @@ snapshots: dependencies: citty: 0.2.2 pathe: 2.0.3 - tinyexec: 1.3.0 + tinyexec: 1.3.1 - oauth4webapi@3.8.7: {} + oauth4webapi@3.8.8: {} object-assign@4.1.1: {} @@ -10631,8 +10613,6 @@ snapshots: node-fetch-native: 1.6.7 ufo: 1.6.4 - ofetch@2.0.0-alpha.3: {} - ohash@2.0.12: {} on-change@6.0.2: {} @@ -10651,13 +10631,13 @@ snapshots: only@0.0.2: {} - open@11.0.1: + open@11.0.2: dependencies: - default-browser: 5.5.0 + default-browser: 5.5.1 define-lazy-prop: 3.0.0 is-in-ssh: 1.0.0 is-inside-container: 1.0.0 - powershell-utils: 0.2.0 + powershell-utils: 0.2.1 wsl-utils: 1.0.0 open@7.4.2: @@ -10665,10 +10645,10 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openid-client@6.8.7: + openid-client@6.8.8: dependencies: - jose: 6.2.10 - oauth4webapi: 3.8.7 + jose: 6.2.12 + oauth4webapi: 3.8.8 optionator@0.9.4: dependencies: @@ -10679,9 +10659,9 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - otpauth@9.5.1: + otpauth@9.5.2: dependencies: - '@noble/hashes': 2.2.0 + '@noble/hashes': 2.4.0 oxc-parser@0.141.0: dependencies: @@ -10736,11 +10716,11 @@ snapshots: magic-regexp: 0.10.0 oxc-parser: 0.141.0 - oxc-walker@1.1.1(@oxc-project/types@0.144.0)(oxc-parser@0.141.0)(rolldown@1.2.4): + oxc-walker@1.1.1(@oxc-project/types@0.148.0)(oxc-parser@0.141.0)(rolldown@1.2.7): optionalDependencies: - '@oxc-project/types': 0.144.0 + '@oxc-project/types': 0.148.0 oxc-parser: 0.141.0 - rolldown: 1.2.4 + rolldown: 1.2.7 p-event@6.0.1: dependencies: @@ -10808,9 +10788,7 @@ snapshots: picomatch@2.3.2: {} - picomatch@4.0.5: {} - - pify@2.3.0: {} + picomatch@4.0.7: {} pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)): dependencies: @@ -10828,9 +10806,9 @@ snapshots: mlly: 1.8.2 pathe: 2.0.3 - pkg-types@2.3.1: + pkg-types@2.3.2: dependencies: - confbox: 0.2.4 + confbox: 0.3.1 exsolve: 1.1.1 pathe: 2.0.3 @@ -10843,177 +10821,177 @@ snapshots: transitivePeerDependencies: - supports-color - postcss-calc@10.1.1(postcss@8.5.26): + postcss-calc@10.1.1(postcss@8.5.28): dependencies: - postcss: 8.5.26 - postcss-selector-parser: 7.1.5 + postcss: 8.5.28 + postcss-selector-parser: 7.1.6 postcss-value-parser: 4.2.0 - postcss-colormin@8.0.3(postcss@8.5.26): + postcss-colormin@8.0.5(postcss@8.5.28): dependencies: - '@colordx/core': 5.5.0 - browserslist: 4.28.8 + '@colordx/core': 5.8.0 + browserslist: 4.28.9 caniuse-api: 4.0.0 - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-convert-values@8.0.3(postcss@8.5.26): + postcss-convert-values@8.0.4(postcss@8.5.28): dependencies: - browserslist: 4.28.8 - postcss: 8.5.26 + browserslist: 4.28.9 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-discard-comments@8.0.3(postcss@8.5.26): + postcss-discard-comments@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 - postcss-selector-parser: 7.1.5 + postcss: 8.5.28 + postcss-selector-parser: 7.1.6 - postcss-discard-duplicates@8.0.3(postcss@8.5.26): + postcss-discard-duplicates@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 - postcss-discard-empty@8.0.3(postcss@8.5.26): + postcss-discard-empty@8.0.5(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 - postcss-discard-overridden@8.0.3(postcss@8.5.26): + postcss-discard-overridden@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 - postcss-import@15.1.0(postcss@8.5.26): + postcss-import@15.1.0(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - read-cache: 1.0.0 + read-cache: 1.0.2 resolve: 1.22.12 - postcss-js@4.1.0(postcss@8.5.26): + postcss-js@4.1.0(postcss@8.5.28): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.26 + postcss: 8.5.28 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.26)(tsx@4.23.12)(yaml@2.9.0): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.28)(tsx@4.23.13)(yaml@2.9.0): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 - postcss: 8.5.26 - tsx: 4.23.12 + postcss: 8.5.28 + tsx: 4.23.13 yaml: 2.9.0 - postcss-merge-longhand@8.0.3(postcss@8.5.26): + postcss-merge-longhand@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - stylehacks: 8.0.3(postcss@8.5.26) + stylehacks: 8.0.4(postcss@8.5.28) - postcss-merge-rules@8.0.3(postcss@8.5.26): + postcss-merge-rules@8.0.5(postcss@8.5.28): dependencies: - browserslist: 4.28.8 + browserslist: 4.28.9 caniuse-api: 4.0.0 - cssnano-utils: 6.0.3(postcss@8.5.26) - postcss: 8.5.26 - postcss-selector-parser: 7.1.5 + cssnano-utils: 6.0.4(postcss@8.5.28) + postcss: 8.5.28 + postcss-selector-parser: 7.1.6 - postcss-minify-font-values@8.0.3(postcss@8.5.26): + postcss-minify-font-values@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-minify-gradients@8.0.3(postcss@8.5.26): + postcss-minify-gradients@8.0.6(postcss@8.5.28): dependencies: - '@colordx/core': 5.5.0 - cssnano-utils: 6.0.3(postcss@8.5.26) - postcss: 8.5.26 + '@colordx/core': 5.8.0 + cssnano-utils: 6.0.4(postcss@8.5.28) + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-minify-params@8.0.3(postcss@8.5.26): + postcss-minify-params@8.0.4(postcss@8.5.28): dependencies: - browserslist: 4.28.8 - cssnano-utils: 6.0.3(postcss@8.5.26) - postcss: 8.5.26 + browserslist: 4.28.9 + cssnano-utils: 6.0.4(postcss@8.5.28) + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-minify-selectors@8.0.4(postcss@8.5.26): + postcss-minify-selectors@8.0.5(postcss@8.5.28): dependencies: - browserslist: 4.28.8 + browserslist: 4.28.9 caniuse-api: 4.0.0 cssesc: 3.0.0 - postcss: 8.5.26 - postcss-selector-parser: 7.1.5 + postcss: 8.5.28 + postcss-selector-parser: 7.1.6 - postcss-nested@6.2.0(postcss@8.5.26): + postcss-nested@6.2.0(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-selector-parser: 6.1.4 - postcss-nesting@13.0.2(postcss@8.5.26): + postcss-nesting@13.0.2(postcss@8.5.28): dependencies: - '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.5) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.5) - postcss: 8.5.26 - postcss-selector-parser: 7.1.5 + '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.6) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.6) + postcss: 8.5.28 + postcss-selector-parser: 7.1.6 - postcss-normalize-charset@8.0.3(postcss@8.5.26): + postcss-normalize-charset@8.0.5(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 - postcss-normalize-display-values@8.0.3(postcss@8.5.26): + postcss-normalize-display-values@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-normalize-positions@8.0.3(postcss@8.5.26): + postcss-normalize-positions@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@8.0.3(postcss@8.5.26): + postcss-normalize-repeat-style@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-normalize-string@8.0.3(postcss@8.5.26): + postcss-normalize-string@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@8.0.3(postcss@8.5.26): + postcss-normalize-timing-functions@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@8.0.3(postcss@8.5.26): + postcss-normalize-unicode@8.0.4(postcss@8.5.28): dependencies: - browserslist: 4.28.8 - postcss: 8.5.26 + browserslist: 4.28.9 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-normalize-url@8.0.3(postcss@8.5.26): + postcss-normalize-url@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@8.0.3(postcss@8.5.26): + postcss-normalize-whitespace@8.0.5(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-ordered-values@8.0.3(postcss@8.5.26): + postcss-ordered-values@8.0.5(postcss@8.5.28): dependencies: - cssnano-utils: 6.0.3(postcss@8.5.26) - postcss: 8.5.26 + cssnano-utils: 6.0.4(postcss@8.5.28) + postcss: 8.5.28 postcss-value-parser: 4.2.0 - postcss-reduce-initial@8.0.3(postcss@8.5.26): + postcss-reduce-initial@8.0.5(postcss@8.5.28): dependencies: - browserslist: 4.28.8 + browserslist: 4.28.9 caniuse-api: 4.0.0 - postcss: 8.5.26 + postcss: 8.5.28 - postcss-reduce-transforms@8.0.3(postcss@8.5.26): + postcss-reduce-transforms@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 postcss-selector-parser@6.1.4: @@ -11021,25 +10999,25 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.5: + postcss-selector-parser@7.1.6: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@8.0.4(postcss@8.5.26): + postcss-svgo@8.0.6(postcss@8.5.28): dependencies: - postcss: 8.5.26 + postcss: 8.5.28 postcss-value-parser: 4.2.0 - svgo: 4.0.2 + svgo: 4.1.0 - postcss-unique-selectors@8.0.3(postcss@8.5.26): + postcss-unique-selectors@8.0.4(postcss@8.5.28): dependencies: - postcss: 8.5.26 - postcss-selector-parser: 7.1.5 + postcss: 8.5.28 + postcss-selector-parser: 7.1.6 postcss-value-parser@4.2.0: {} - postcss@8.5.26: + postcss@8.5.28: dependencies: nanoid: 3.3.18 picocolors: 1.1.1 @@ -11047,7 +11025,7 @@ snapshots: powershell-utils@0.1.0: {} - powershell-utils@0.2.0: {} + powershell-utils@0.2.1: {} prelude-ls@1.2.1: {} @@ -11057,7 +11035,7 @@ snapshots: prettier@3.9.6: {} - pretty-bytes@7.1.1: {} + pretty-bytes@7.1.3: {} process-nextick-args@2.0.1: {} @@ -11073,6 +11051,10 @@ snapshots: punycode@2.3.1: {} + qified@0.10.1: + dependencies: + hookified: 2.2.0 + qr@0.6.0: {} quansync@0.2.11: {} @@ -11085,14 +11067,12 @@ snapshots: range-parser@1.3.0: {} - rc9@3.0.1: + rc9@3.1.0: dependencies: defu: 6.1.7 destr: 2.0.5 - read-cache@1.0.0: - dependencies: - pify: 2.3.0 + read-cache@1.0.2: {} readable-stream@2.3.8: dependencies: @@ -11189,72 +11169,73 @@ snapshots: reusify@1.1.0: {} - rolldown-string@0.3.1(rolldown@1.2.4): + rolldown-string@0.3.1(rolldown@1.2.7): dependencies: - magic-string: 1.2.0 + magic-string: 1.2.3 optionalDependencies: - rolldown: 1.2.4 + rolldown: 1.2.7 - rolldown@1.2.4: + rolldown@1.2.7: dependencies: - '@oxc-project/types': 0.144.0 + '@oxc-project/types': 0.148.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.2.4 - '@rolldown/binding-darwin-arm64': 1.2.4 - '@rolldown/binding-darwin-x64': 1.2.4 - '@rolldown/binding-freebsd-x64': 1.2.4 - '@rolldown/binding-linux-arm-gnueabihf': 1.2.4 - '@rolldown/binding-linux-arm64-gnu': 1.2.4 - '@rolldown/binding-linux-arm64-musl': 1.2.4 - '@rolldown/binding-linux-ppc64-gnu': 1.2.4 - '@rolldown/binding-linux-s390x-gnu': 1.2.4 - '@rolldown/binding-linux-x64-gnu': 1.2.4 - '@rolldown/binding-linux-x64-musl': 1.2.4 - '@rolldown/binding-openharmony-arm64': 1.2.4 - '@rolldown/binding-win32-arm64-msvc': 1.2.4 - '@rolldown/binding-win32-x64-msvc': 1.2.4 + '@rolldown/binding-android-arm-eabi': 1.2.7 + '@rolldown/binding-android-arm64': 1.2.7 + '@rolldown/binding-darwin-arm64': 1.2.7 + '@rolldown/binding-darwin-x64': 1.2.7 + '@rolldown/binding-freebsd-x64': 1.2.7 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.7 + '@rolldown/binding-linux-arm64-gnu': 1.2.7 + '@rolldown/binding-linux-arm64-musl': 1.2.7 + '@rolldown/binding-linux-ppc64-gnu': 1.2.7 + '@rolldown/binding-linux-s390x-gnu': 1.2.7 + '@rolldown/binding-linux-x64-gnu': 1.2.7 + '@rolldown/binding-linux-x64-musl': 1.2.7 + '@rolldown/binding-openharmony-arm64': 1.2.7 + '@rolldown/binding-win32-arm64-msvc': 1.2.7 + '@rolldown/binding-win32-x64-msvc': 1.2.7 - rollup-plugin-visualizer@7.1.1(rolldown@1.2.4)(rollup@4.62.4): + rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1): dependencies: - open: 11.0.1 - picomatch: 4.0.5 + open: 11.0.2 + picomatch: 4.0.7 source-map: 0.8.0 yargs: 18.1.0 optionalDependencies: - rolldown: 1.2.4 - rollup: 4.62.4 + rolldown: 1.2.7 + rollup: 4.63.1 - rollup@4.62.4: + rollup@4.63.1: dependencies: '@types/estree': 1.0.9 optionalDependencies: '@napi-rs/lzma-linux-x64-gnu': 1.5.1 - '@rollup/rollup-android-arm-eabi': 4.62.4 - '@rollup/rollup-android-arm64': 4.62.4 - '@rollup/rollup-darwin-arm64': 4.62.4 - '@rollup/rollup-darwin-x64': 4.62.4 - '@rollup/rollup-freebsd-arm64': 4.62.4 - '@rollup/rollup-freebsd-x64': 4.62.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.62.4 - '@rollup/rollup-linux-arm-musleabihf': 4.62.4 - '@rollup/rollup-linux-arm64-gnu': 4.62.4 - '@rollup/rollup-linux-arm64-musl': 4.62.4 - '@rollup/rollup-linux-loong64-gnu': 4.62.4 - '@rollup/rollup-linux-loong64-musl': 4.62.4 - '@rollup/rollup-linux-ppc64-gnu': 4.62.4 - '@rollup/rollup-linux-ppc64-musl': 4.62.4 - '@rollup/rollup-linux-riscv64-gnu': 4.62.4 - '@rollup/rollup-linux-riscv64-musl': 4.62.4 - '@rollup/rollup-linux-s390x-gnu': 4.62.4 - '@rollup/rollup-linux-x64-gnu': 4.62.4 - '@rollup/rollup-linux-x64-musl': 4.62.4 - '@rollup/rollup-openbsd-x64': 4.62.4 - '@rollup/rollup-openharmony-arm64': 4.62.4 - '@rollup/rollup-win32-arm64-msvc': 4.62.4 - '@rollup/rollup-win32-ia32-msvc': 4.62.4 - '@rollup/rollup-win32-x64-gnu': 4.62.4 - '@rollup/rollup-win32-x64-msvc': 4.62.4 + '@rollup/rollup-android-arm-eabi': 4.63.1 + '@rollup/rollup-android-arm64': 4.63.1 + '@rollup/rollup-darwin-arm64': 4.63.1 + '@rollup/rollup-darwin-x64': 4.63.1 + '@rollup/rollup-freebsd-arm64': 4.63.1 + '@rollup/rollup-freebsd-x64': 4.63.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.63.1 + '@rollup/rollup-linux-arm-musleabihf': 4.63.1 + '@rollup/rollup-linux-arm64-gnu': 4.63.1 + '@rollup/rollup-linux-arm64-musl': 4.63.1 + '@rollup/rollup-linux-loong64-gnu': 4.63.1 + '@rollup/rollup-linux-loong64-musl': 4.63.1 + '@rollup/rollup-linux-ppc64-gnu': 4.63.1 + '@rollup/rollup-linux-ppc64-musl': 4.63.1 + '@rollup/rollup-linux-riscv64-gnu': 4.63.1 + '@rollup/rollup-linux-riscv64-musl': 4.63.1 + '@rollup/rollup-linux-s390x-gnu': 4.63.1 + '@rollup/rollup-linux-x64-gnu': 4.63.1 + '@rollup/rollup-linux-x64-musl': 4.63.1 + '@rollup/rollup-openbsd-x64': 4.63.1 + '@rollup/rollup-openharmony-arm64': 4.63.1 + '@rollup/rollup-win32-arm64-msvc': 4.63.1 + '@rollup/rollup-win32-ia32-msvc': 4.63.1 + '@rollup/rollup-win32-x64-gnu': 4.63.1 + '@rollup/rollup-win32-x64-msvc': 4.63.1 fsevents: 2.3.3 rou3@0.9.2: {} @@ -11305,9 +11286,9 @@ snapshots: transitivePeerDependencies: - supports-color - serialize-javascript@7.1.0: {} + serialize-javascript@7.1.1: {} - seroval@1.6.2: {} + seroval@1.6.4: {} serve-placeholder@2.0.2: dependencies: @@ -11386,7 +11367,7 @@ snapshots: srvx@0.11.22: {} - srvx@0.12.5: {} + srvx@1.0.3: {} stable-hash-x@0.2.0: {} @@ -11400,7 +11381,7 @@ snapshots: std-env@4.2.0: {} - streamx@2.28.0: + streamx@2.28.1: dependencies: events-universal: 1.0.1 fast-fifo: 1.3.2 @@ -11458,11 +11439,11 @@ snapshots: structured-clone-es@2.0.1: {} - stylehacks@8.0.3(postcss@8.5.26): + stylehacks@8.0.4(postcss@8.5.28): dependencies: - browserslist: 4.28.8 - postcss: 8.5.26 - postcss-selector-parser: 7.1.5 + browserslist: 4.28.9 + postcss: 8.5.28 + postcss-selector-parser: 7.1.6 sucrase@3.35.1: dependencies: @@ -11494,19 +11475,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svgo@4.0.2: + svgo@4.1.0: dependencies: commander: 11.1.0 - css-select: 5.2.2 + css-select: 6.0.0 css-tree: 3.2.1 - css-what: 6.2.2 + css-what: 7.0.0 csso: 5.0.5 picocolors: 1.1.1 sax: 1.6.1 tagged-tag@1.0.0: {} - tailwind-config-viewer@2.0.4(supports-color@10.2.2)(tailwindcss@3.4.19(tsx@4.23.12)(yaml@2.9.0)): + tailwind-config-viewer@2.0.4(supports-color@10.2.2)(tailwindcss@3.4.19(tsx@4.23.13)(yaml@2.9.0)): dependencies: '@koa/router': 12.0.2(supports-color@10.2.2) commander: 6.2.1 @@ -11516,13 +11497,13 @@ snapshots: open: 7.4.2 portfinder: 1.0.38(supports-color@10.2.2) replace-in-file: 6.3.5 - tailwindcss: 3.4.19(tsx@4.23.12)(yaml@2.9.0) + tailwindcss: 3.4.19(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - supports-color - tailwindcss@3.4.19(tsx@4.23.12)(yaml@2.9.0): + tailwindcss@3.4.19(tsx@4.23.13)(yaml@2.9.0): dependencies: - '@alloc/quick-lru': 5.2.0 + '@alloc/quick-lru': 5.3.0 arg: 5.0.2 chokidar: 3.6.0 didyoumean: 1.2.2 @@ -11536,11 +11517,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.26 - postcss-import: 15.1.0(postcss@8.5.26) - postcss-js: 4.1.0(postcss@8.5.26) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.26)(tsx@4.23.12)(yaml@2.9.0) - postcss-nested: 6.2.0(postcss@8.5.26) + postcss: 8.5.28 + postcss-import: 15.1.0(postcss@8.5.28) + postcss-js: 4.1.0(postcss@8.5.28) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.28)(tsx@4.23.13)(yaml@2.9.0) + postcss-nested: 6.2.0(postcss@8.5.28) postcss-selector-parser: 6.1.4 resolve: 1.22.12 sucrase: 3.35.1 @@ -11548,12 +11529,12 @@ snapshots: - tsx - yaml - tar-stream@3.2.0: + tar-stream@3.2.1: dependencies: b4a: 1.8.1 - bare-fs: 4.8.0 + bare-fs: 4.8.1 fast-fifo: 1.3.2 - streamx: 2.28.0 + streamx: 2.28.1 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -11569,12 +11550,12 @@ snapshots: teex@1.0.1: dependencies: - streamx: 2.28.0 + streamx: 2.28.1 transitivePeerDependencies: - bare-abort-controller - react-native-b4a - terser@5.50.0: + terser@5.51.2: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.18.0 @@ -11605,12 +11586,12 @@ snapshots: tinyclip@0.1.15: {} - tinyexec@1.3.0: {} + tinyexec@1.3.1: {} tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.5) - picomatch: 4.0.5 + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 tinyrainbow@3.1.1: {} @@ -11641,7 +11622,7 @@ snapshots: tsscmp@1.0.6: {} - tsx@4.23.12: + tsx@4.23.13: dependencies: esbuild: 0.28.2 optionalDependencies: @@ -11653,7 +11634,7 @@ snapshots: type-fest@4.41.0: {} - type-fest@5.8.0: + type-fest@5.9.0: dependencies: tagged-tag: 1.0.0 @@ -11679,34 +11660,34 @@ snapshots: magic-string: 0.30.21 unplugin: 2.3.11 - unctx@3.0.0(magic-string@0.30.21)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))): + unctx@3.0.1(magic-string@0.30.21)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))): optionalDependencies: magic-string: 0.30.21 oxc-parser: 0.141.0 - rolldown: 1.2.4 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + rolldown: 1.2.7 + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - unctx@3.0.0(magic-string@1.2.0)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))): + unctx@3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))): optionalDependencies: - magic-string: 1.2.0 + magic-string: 1.2.3 oxc-parser: 0.141.0 - rolldown: 1.2.4 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + rolldown: 1.2.7 + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) undici-types@8.3.0: {} - undici@8.10.0: {} + undici@8.10.2: {} unenv@2.0.0-rc.24: dependencies: pathe: 2.0.3 - unhead@3.3.2(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): + unhead@3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: hookable: 6.1.1 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) optionalDependencies: - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -11721,25 +11702,25 @@ snapshots: unicorn-magic@0.4.0: {} - unimport@6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): + unimport@6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: acorn: 8.18.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 local-pkg: 1.2.1 - magic-string: 1.2.0 + magic-string: 1.2.3 mlly: 1.8.2 pathe: 2.0.3 - picomatch: 4.0.5 - pkg-types: 2.3.1 + picomatch: 4.0.7 + pkg-types: 2.3.2 scule: 1.3.0 strip-literal: 4.0.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unplugin-utils: 0.3.2 optionalDependencies: oxc-parser: 0.141.0 - rolldown: 1.2.4 + rolldown: 1.2.7 transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -11755,25 +11736,25 @@ snapshots: unplugin-utils@0.3.2: dependencies: pathe: 2.0.3 - picomatch: 4.0.5 + picomatch: 4.0.7 unplugin@2.3.11: dependencies: '@jridgewell/remapping': 2.3.5 acorn: 8.18.0 - picomatch: 4.0.5 + picomatch: 4.0.7 webpack-virtual-modules: 0.6.2 - unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): + unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: '@jridgewell/remapping': 2.3.5 - picomatch: 4.0.5 + picomatch: 4.0.7 webpack-virtual-modules: 0.6.2 optionalDependencies: esbuild: 0.28.2 - rolldown: 1.2.4 - rollup: 4.62.4 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + rolldown: 1.2.7 + rollup: 4.63.1 + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) unrouting@0.2.3: dependencies: @@ -11838,11 +11819,11 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 pathe: 2.0.3 - pkg-types: 2.3.1 + pkg-types: 2.3.2 - update-browserslist-db@1.3.1(browserslist@4.28.8): + update-browserslist-db@1.3.2(browserslist@4.28.9): dependencies: - browserslist: 4.28.8 + browserslist: 4.28.9 escalade: 3.2.0 picocolors: 1.1.1 @@ -11858,23 +11839,23 @@ snapshots: verkit@0.3.2: {} - vite-dev-rpc@2.0.0(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): + vite-dev-rpc@2.0.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: - birpc: 4.1.0 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vite-hot-client: 2.2.0(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + birpc: 4.2.0 + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite-hot-client: 2.2.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - vite-hot-client@2.2.0(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): + vite-hot-client@2.2.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) - vite-node@6.0.0(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0): + vite-node@6.0.0(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0): dependencies: cac: 7.0.0 - es-module-lexer: 2.3.1 + es-module-lexer: 2.3.2 obug: 2.1.4 pathe: 2.0.3 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - '@types/node' - '@vitejs/devtools' @@ -11889,82 +11870,82 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.14.5(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(optionator@0.9.4)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue-tsc@3.3.10(typescript@6.0.3)): + vite-plugin-checker@0.14.5(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(optionator@0.9.4)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3)): dependencies: '@babel/code-frame': 7.29.7 chokidar: 5.0.0 npm-run-path: 6.0.0 picocolors: 1.1.1 - picomatch: 4.0.5 + picomatch: 4.0.7 proper-lockfile: 4.1.2 tiny-invariant: 1.3.3 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) optionalDependencies: - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) optionator: 0.9.4 typescript: 6.0.3 - vue-tsc: 3.3.10(typescript@6.0.3) + vue-tsc: 3.3.11(typescript@6.0.3) - vite-plugin-inspect@11.4.1(@nuxt/kit@4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))))(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): + vite-plugin-inspect@11.4.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: ansis: 4.3.1 error-stack-parser-es: 1.0.5 obug: 2.1.4 ohash: 2.0.12 - open: 11.0.1 + open: 11.0.2 perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.2 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) - vite-dev-rpc: 2.0.0(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite-dev-rpc: 2.0.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) optionalDependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.0)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.4)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - vite-plugin-vue-tracer@1.5.0(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): + vite-plugin-vue-tracer@1.5.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.1.1 - magic-string: 1.2.0 + magic-string: 1.2.3 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vue: 3.5.42(typescript@6.0.3) - vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0): + vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 - picomatch: 4.0.5 - postcss: 8.5.26 - rolldown: 1.2.4 + picomatch: 4.0.7 + postcss: 8.5.28 + rolldown: 1.2.7 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.2.0 + '@types/node': 26.4.1 esbuild: 0.28.2 fsevents: 2.3.3 jiti: 1.21.7 - terser: 5.50.0 - tsx: 4.23.12 + terser: 5.51.2 + tsx: 4.23.13 yaml: 2.9.0 - vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0): + vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 - picomatch: 4.0.5 - postcss: 8.5.26 - rolldown: 1.2.4 + picomatch: 4.0.7 + postcss: 8.5.28 + rolldown: 1.2.7 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.2.0 + '@types/node': 26.4.1 esbuild: 0.28.2 fsevents: 2.3.3 jiti: 2.7.0 - terser: 5.50.0 - tsx: 4.23.12 + terser: 5.51.2 + tsx: 4.23.13 yaml: 2.9.0 - vitest-environment-nuxt@2.0.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.4)(rollup@4.62.4)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vitest@4.1.11): + vitest-environment-nuxt@2.0.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11): dependencies: - '@nuxt/test-utils': 4.1.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.4)(rollup@4.62.4)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vitest@4.1.11) + '@nuxt/test-utils': 4.2.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) transitivePeerDependencies: - '@cucumber/cucumber' - '@farmfe/core' @@ -11989,10 +11970,10 @@ snapshots: - vitest - webpack - vitest@4.1.11(@types/node@26.2.0)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)): + vitest@4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.11 - '@vitest/mocker': 4.1.11(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + '@vitest/mocker': 4.1.11(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.11 '@vitest/runner': 4.1.11 '@vitest/snapshot': 4.1.11 @@ -12003,28 +11984,28 @@ snapshots: magic-string: 0.30.21 obug: 2.1.4 pathe: 2.0.3 - picomatch: 4.0.5 + picomatch: 4.0.7 std-env: 4.2.0 tinybench: 2.9.0 - tinyexec: 1.3.0 + tinyexec: 1.3.1 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 26.2.0 + '@types/node': 26.4.1 '@vitest/coverage-v8': 4.1.11(vitest@4.1.11) '@vitest/ui': 4.1.11(vitest@4.1.11) transitivePeerDependencies: - msw - vscode-uri@3.1.0: {} + vscode-uri@3.2.0: {} vue-bundle-renderer@2.3.2: dependencies: ufo: 1.6.4 - vue-component-type-helpers@3.3.10: {} + vue-component-type-helpers@3.3.11: {} vue-demi@0.14.10(vue@3.5.42(typescript@6.0.3)): dependencies: @@ -12032,10 +12013,10 @@ snapshots: vue-devtools-stub@0.1.0: {} - vue-eslint-parser@10.4.1(eslint@10.8.1(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): + vue-eslint-parser@10.4.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): dependencies: debug: 4.4.3(supports-color@10.2.2) - eslint: 10.8.1(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 espree: 11.2.0 @@ -12044,39 +12025,37 @@ snapshots: transitivePeerDependencies: - supports-color - vue-i18n@11.4.8(vue@3.5.42(typescript@6.0.3)): + vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)): dependencies: - '@intlify/core-base': 11.4.8 - '@intlify/devtools-types': 11.4.8 - '@intlify/shared': 11.4.8 + '@intlify/core-base': 11.4.10 + '@intlify/devtools-types': 11.4.10 + '@intlify/shared': 11.4.10 '@vue/devtools-api': 6.6.4 vue: 3.5.42(typescript@6.0.3) - vue-router@5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): + vue-router@5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): dependencies: - '@babel/generator': 8.0.0 '@vue-macros/common': 3.1.4(vue@3.5.42(typescript@6.0.3)) '@vue/devtools-api': 8.2.1 ast-walker-scope: 0.9.0 chokidar: 5.0.0 - json5: 2.2.3 + confbox: 0.2.4 local-pkg: 1.2.1 magic-string: 0.30.21 mlly: 1.8.2 muggle-string: 0.4.1 nostics: 1.2.0 pathe: 2.0.3 - picomatch: 4.0.5 + picomatch: 4.0.7 scule: 1.3.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.4)(rollup@4.62.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unplugin-utils: 0.3.2 vue: 3.5.42(typescript@6.0.3) - yaml: 2.9.0 optionalDependencies: - '@vue/compiler-sfc': 3.5.41 + '@vue/compiler-sfc': 3.5.42 pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) - vite: 8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.50.0)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -12087,10 +12066,10 @@ snapshots: - unloader - webpack - vue-tsc@3.3.10(typescript@6.0.3): + vue-tsc@3.3.11(typescript@6.0.3): dependencies: '@volar/typescript': 2.4.28(typescript@6.0.3) - '@vue/language-core': 3.3.10 + '@vue/language-core': 3.3.11 typescript: 6.0.3 vue3-apexcharts@1.11.1(apexcharts@6.10.0)(vue@3.5.42(typescript@6.0.3)): @@ -12224,4 +12203,4 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zod@4.4.3: {} + zod@4.5.4: {} From 2cf1ab78e900e7231cb31e729012aa43da101eac Mon Sep 17 00:00:00 2001 From: Alexander Chepurnoy Date: Wed, 9 Sep 2026 16:05:15 +0700 Subject: [PATCH 11/31] feat: update AmneziaWG to 3.1 (#2804) * feat: update AmneziaWG to 3.1 * fix: correct AmneziaWG 3.1 parameter handling Verified against the config parser of amneziawg-tools v3.1.20260812. - validate HeaderProtectionKey as a 32 byte base64 key instead of an arbitrary string. Control characters were allowed, so a newline could inject additional lines into the generated configuration - parse the range parameters as uint16 ranges (0-65535) instead of reusing the H1-H4 bounds (5 - 2^31-1), which rejected valid values such as MaxHandshakeAttempts = 1 and truncated large ones - write RandomTrailers and DisableCookies as on/off. parse_bool only accepts on, off or a number, so true/false aborted awg setconf - take HeaderProtectionKey and RandomTrailers from the interface, both have to be identical on either end of the tunnel, like S1-S4 and H1-H4 - require S1-S4 to be at least 12 while header protection is enabled, its cipher uses the first 12 bytes of every junk prefix as its nonce - render the null state of a nullable switch explicitly and add the missing translations, the reset button rendered its own i18n key - extract the config line building into server/utils/awg.ts and cover it with unit tests - document the new parameters and their compatibility --------- Co-authored-by: cany748 <30237734+cany748@users.noreply.github.com> --- docs/content/advanced/config/amnezia.md | 35 +- src/app/components/Form/NullSwitchField.vue | 48 + src/app/pages/admin/interface.vue | 57 + src/app/pages/clients/[id].vue | 47 + src/i18n/locales/en.json | 26 +- .../database/migrations/0008_thin_patch.sql | 16 + .../migrations/meta/0008_snapshot.json | 1144 +++++++++++++++++ .../database/migrations/meta/_journal.json | 7 + .../database/repositories/client/schema.ts | 9 + .../database/repositories/client/types.ts | 8 + .../database/repositories/interface/schema.ts | 9 + .../database/repositories/interface/types.ts | 85 +- src/server/utils/awg.ts | 154 +++ src/server/utils/types.ts | 95 +- src/server/utils/wgHelper.ts | 67 +- src/test/unit/awg.spec.ts | 222 ++++ src/vitest.config.ts | 3 + 17 files changed, 1920 insertions(+), 112 deletions(-) create mode 100644 src/app/components/Form/NullSwitchField.vue create mode 100644 src/server/database/migrations/0008_thin_patch.sql create mode 100644 src/server/database/migrations/meta/0008_snapshot.json create mode 100644 src/server/utils/awg.ts create mode 100644 src/test/unit/awg.spec.ts diff --git a/docs/content/advanced/config/amnezia.md b/docs/content/advanced/config/amnezia.md index 3e8d4d0a..46fbeb48 100644 --- a/docs/content/advanced/config/amnezia.md +++ b/docs/content/advanced/config/amnezia.md @@ -39,14 +39,33 @@ If a parameter is not set, it will not be added to the configuration. If all Amn ### Parameter Compatibility Table -| Parameter | Can differ between server and client | Configurable on server | Configurable on client | -| --------- | ------------------------------------ | ---------------------- | ------------------------ | -| Jc | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | -| Jmin | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | -| Jmax | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | -| S1-S4 | :x: No, must match | :white_check_mark: | :x: (copied from server) | -| H1-H4 | :x: No, must match | :white_check_mark: | :x: (copied from server) | -| I1-I5 | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| Parameter | Can differ between server and client | Configurable on server | Configurable on client | +| ---------------------- | ------------------------------------ | ---------------------- | ------------------------ | +| Jc | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| Jmin | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| Jmax | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| S1-S4 | :x: No, must match | :white_check_mark: | :x: (copied from server) | +| H1-H4 | :x: No, must match | :white_check_mark: | :x: (copied from server) | +| I1-I5 | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| HeaderProtectionKey | :x: No, must match | :white_check_mark: | :x: (copied from server) | +| RandomTrailers | :x: No, must match | :white_check_mark: | :x: (copied from server) | +| ContentPaddingAddition | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| RekeyAfterTime | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| RekeyTimeout | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| RejectAfterTime | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| KeepaliveTimeout | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| MaxHandshakeAttempts | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | +| DisableCookies | :white_check_mark: Yes | :white_check_mark: | :white_check_mark: | + +### AmneziaWG 3.0 and 3.1 Parameters + +These parameters require AmneziaWG 3.0 or newer on both ends of the tunnel. Older clients reject configurations that contain them, so leave them unset if you still support AmneziaWG 2.x clients. + +`HeaderProtectionKey` is a 32 byte key in base64, in the same format as a WireGuard key. It encrypts the packet headers, so it has to be identical on both sides and is copied into every client configuration. Header protection uses the first 12 bytes of each junk prefix as its nonce, which means **S1, S2, S3 and S4 all have to be set to at least 12** while a key is configured. + +`ContentPaddingAddition`, `RekeyAfterTime`, `RekeyTimeout`, `RejectAfterTime`, `KeepaliveTimeout` and `MaxHandshakeAttempts` accept either a single number or an inclusive range written as `lower-upper` (for example `30-90`, both bounds between 0 and 65535). When a range is given, AmneziaWG picks a random value from it, which removes the fixed timings a DPI system could otherwise fingerprint. + +`RandomTrailers` appends a random amount of bytes to handshake packets and has to be enabled on both sides. `DisableCookies` stops this side from answering handshakes with cookie messages when it is under load and only affects the peer it is set on. ## Client Applications diff --git a/src/app/components/Form/NullSwitchField.vue b/src/app/components/Form/NullSwitchField.vue new file mode 100644 index 00000000..6291105e --- /dev/null +++ b/src/app/components/Form/NullSwitchField.vue @@ -0,0 +1,48 @@ + + + diff --git a/src/app/pages/admin/interface.vue b/src/app/pages/admin/interface.vue index 12d839b0..df3af779 100644 --- a/src/app/pages/admin/interface.vue +++ b/src/app/pages/admin/interface.vue @@ -129,6 +129,63 @@ :label="$t('awg.i5Label')" :description="$t('awg.i5Description')" /> + + +
{{ $t('awg.rangeNote') }}
+ + + + + + + + + {{ $t('admin.interface.firewall') }} diff --git a/src/app/pages/clients/[id].vue b/src/app/pages/clients/[id].vue index 6694c284..380cca16 100644 --- a/src/app/pages/clients/[id].vue +++ b/src/app/pages/clients/[id].vue @@ -144,6 +144,53 @@ :label="$t('awg.i5Label')" :description="$t('awg.i5Description')" /> + +
+ {{ $t('awg.rangeNote') }} +
+ + + + + + + +
diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index ffc60cff..44d82bf1 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -153,6 +153,9 @@ "sectionAdvanced": "Advanced", "noItems": "No items", "nullNoItems": "No items. Using global config", + "nullNotSet": "Not set", + "set": "Set", + "unset": "Unset", "add": "Add" }, "admin": { @@ -244,10 +247,12 @@ "cidr": "CIDR", "device": "Device", "cidrValid": "CIDR must be valid", - "routingTable": "Routing table must be auto, off, or a table number" + "routingTable": "Routing table must be auto, off, or a table number", + "headerProtectionJunkSize": "Junk sizes S1-S4 must be at least 12 when a Header Protection Key is set" }, "otl": "One Time link", "stringMalformed": "String is malformed", + "keyMalformed": "Key must be a 32 byte base64 encoded key", "body": "Body must be a valid object", "hook": "Hook", "enabled": "Enabled", @@ -304,6 +309,25 @@ "i4Description": "Protocol mimic packet in hex format: ", "i5Label": "Special junk packet 5 (I5)", "i5Description": "Protocol mimic packet in hex format: ", + "rangeNote": "The following parameters accept a single number or an inclusive range (0-65535), for example 30 or 30-90", + "headerProtectionKeyLabel": "Header protection key", + "headerProtectionKeyDescription": "32 byte base64 key used to encrypt packet headers. Must match on both sides, so it is copied to every client. Requires S1-S4 to be at least 12", + "contentPaddingAdditionLabel": "Content padding addition", + "contentPaddingAdditionDescription": "Random amount of bytes appended to transport packets before encryption", + "rekeyAfterTimeLabel": "Rekey after time", + "rekeyAfterTimeDescription": "Seconds before a session is renegotiated (WireGuard default: 120)", + "rekeyTimeoutLabel": "Rekey timeout", + "rekeyTimeoutDescription": "Seconds between handshake retries (WireGuard default: 5)", + "rejectAfterTimeLabel": "Reject after time", + "rejectAfterTimeDescription": "Session lifetime in seconds (WireGuard default: 180)", + "keepaliveTimeoutLabel": "Keepalive timeout", + "keepaliveTimeoutDescription": "Idle seconds before a keepalive is sent (WireGuard default: 10)", + "maxHandshakeAttemptsLabel": "Max handshake attempts", + "maxHandshakeAttemptsDescription": "Handshake attempts before giving up (WireGuard default: 18)", + "randomTrailersLabel": "Random trailers", + "randomTrailersDescription": "Append a random amount of bytes to handshake packets. Must match on both sides, so it is copied to every client", + "disableCookiesLabel": "Disable cookies", + "disableCookiesDescription": "Do not answer handshakes with cookie messages when under load. Only affects this side of the tunnel", "mtuNote": "Values depend on the MTU", "obfuscationParameters": "AmneziaWG Obfuscation Parameters" } diff --git a/src/server/database/migrations/0008_thin_patch.sql b/src/server/database/migrations/0008_thin_patch.sql new file mode 100644 index 00000000..f16a0f04 --- /dev/null +++ b/src/server/database/migrations/0008_thin_patch.sql @@ -0,0 +1,16 @@ +ALTER TABLE `clients_table` ADD `content_padding_addition` text;--> statement-breakpoint +ALTER TABLE `clients_table` ADD `rekey_after_time` text;--> statement-breakpoint +ALTER TABLE `clients_table` ADD `rekey_timeout` text;--> statement-breakpoint +ALTER TABLE `clients_table` ADD `reject_after_time` text;--> statement-breakpoint +ALTER TABLE `clients_table` ADD `keepalive_timeout` text;--> statement-breakpoint +ALTER TABLE `clients_table` ADD `max_handshake_attempts` text;--> statement-breakpoint +ALTER TABLE `clients_table` ADD `disable_cookies` integer;--> statement-breakpoint +ALTER TABLE `interfaces_table` ADD `header_protection_key` text;--> statement-breakpoint +ALTER TABLE `interfaces_table` ADD `content_padding_addition` text;--> statement-breakpoint +ALTER TABLE `interfaces_table` ADD `rekey_after_time` text;--> statement-breakpoint +ALTER TABLE `interfaces_table` ADD `rekey_timeout` text;--> statement-breakpoint +ALTER TABLE `interfaces_table` ADD `reject_after_time` text;--> statement-breakpoint +ALTER TABLE `interfaces_table` ADD `keepalive_timeout` text;--> statement-breakpoint +ALTER TABLE `interfaces_table` ADD `max_handshake_attempts` text;--> statement-breakpoint +ALTER TABLE `interfaces_table` ADD `random_trailers` integer;--> statement-breakpoint +ALTER TABLE `interfaces_table` ADD `disable_cookies` integer; \ No newline at end of file diff --git a/src/server/database/migrations/meta/0008_snapshot.json b/src/server/database/migrations/meta/0008_snapshot.json new file mode 100644 index 00000000..4bd4a7f6 --- /dev/null +++ b/src/server/database/migrations/meta/0008_snapshot.json @@ -0,0 +1,1144 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "885a870f-9dc1-4d97-941e-d3d718b02d74", + "prevId": "6d5a5bde-368b-45cb-b73a-9f4324210d73", + "tables": { + "clients_table": { + "name": "clients_table", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "interface_id": { + "name": "interface_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ipv4_address": { + "name": "ipv4_address", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ipv6_address": { + "name": "ipv6_address", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "pre_up": { + "name": "pre_up", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "''" + }, + "post_up": { + "name": "post_up", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "''" + }, + "pre_down": { + "name": "pre_down", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "''" + }, + "post_down": { + "name": "post_down", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "''" + }, + "private_key": { + "name": "private_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "public_key": { + "name": "public_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "pre_shared_key": { + "name": "pre_shared_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "allowed_ips": { + "name": "allowed_ips", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "server_allowed_ips": { + "name": "server_allowed_ips", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "firewall_ips": { + "name": "firewall_ips", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "persistent_keepalive": { + "name": "persistent_keepalive", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "mtu": { + "name": "mtu", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "j_c": { + "name": "j_c", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "j_min": { + "name": "j_min", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "j_max": { + "name": "j_max", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i1": { + "name": "i1", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i2": { + "name": "i2", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i3": { + "name": "i3", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i4": { + "name": "i4", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i5": { + "name": "i5", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "content_padding_addition": { + "name": "content_padding_addition", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rekey_after_time": { + "name": "rekey_after_time", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rekey_timeout": { + "name": "rekey_timeout", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reject_after_time": { + "name": "reject_after_time", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "keepalive_timeout": { + "name": "keepalive_timeout", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "max_handshake_attempts": { + "name": "max_handshake_attempts", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "disable_cookies": { + "name": "disable_cookies", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "dns": { + "name": "dns", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "server_endpoint": { + "name": "server_endpoint", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": { + "clients_table_ipv4_address_unique": { + "name": "clients_table_ipv4_address_unique", + "columns": [ + "ipv4_address" + ], + "isUnique": true + }, + "clients_table_ipv6_address_unique": { + "name": "clients_table_ipv6_address_unique", + "columns": [ + "ipv6_address" + ], + "isUnique": true + }, + "public_key_interface_unique": { + "name": "public_key_interface_unique", + "columns": [ + "public_key", + "interface_id" + ], + "isUnique": true + } + }, + "foreignKeys": { + "clients_table_user_id_users_table_id_fk": { + "name": "clients_table_user_id_users_table_id_fk", + "tableFrom": "clients_table", + "tableTo": "users_table", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "clients_table_interface_id_interfaces_table_name_fk": { + "name": "clients_table_interface_id_interfaces_table_name_fk", + "tableFrom": "clients_table", + "tableTo": "interfaces_table", + "columnsFrom": [ + "interface_id" + ], + "columnsTo": [ + "name" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "general_table": { + "name": "general_table", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "setup_step": { + "name": "setup_step", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_password": { + "name": "session_password", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_timeout": { + "name": "session_timeout", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metrics_prometheus": { + "name": "metrics_prometheus", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metrics_json": { + "name": "metrics_json", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metrics_password": { + "name": "metrics_password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "hooks_table": { + "name": "hooks_table", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "pre_up": { + "name": "pre_up", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_up": { + "name": "post_up", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "pre_down": { + "name": "pre_down", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_down": { + "name": "post_down", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "hooks_table_id_interfaces_table_name_fk": { + "name": "hooks_table_id_interfaces_table_name_fk", + "tableFrom": "hooks_table", + "tableTo": "interfaces_table", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "name" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "interfaces_table": { + "name": "interfaces_table", + "columns": { + "name": { + "name": "name", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "device": { + "name": "device", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "port": { + "name": "port", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "private_key": { + "name": "private_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "public_key": { + "name": "public_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ipv4_cidr": { + "name": "ipv4_cidr", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ipv6_cidr": { + "name": "ipv6_cidr", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "mtu": { + "name": "mtu", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "routing_table": { + "name": "routing_table", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'auto'" + }, + "j_c": { + "name": "j_c", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 7 + }, + "j_min": { + "name": "j_min", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 10 + }, + "j_max": { + "name": "j_max", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 1000 + }, + "s1": { + "name": "s1", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 128 + }, + "s2": { + "name": "s2", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 56 + }, + "s3": { + "name": "s3", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "s4": { + "name": "s4", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "h1": { + "name": "h1", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "h2": { + "name": "h2", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "h3": { + "name": "h3", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "h4": { + "name": "h4", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i1": { + "name": "i1", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i2": { + "name": "i2", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i3": { + "name": "i3", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i4": { + "name": "i4", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i5": { + "name": "i5", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "header_protection_key": { + "name": "header_protection_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "content_padding_addition": { + "name": "content_padding_addition", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rekey_after_time": { + "name": "rekey_after_time", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rekey_timeout": { + "name": "rekey_timeout", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reject_after_time": { + "name": "reject_after_time", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "keepalive_timeout": { + "name": "keepalive_timeout", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "max_handshake_attempts": { + "name": "max_handshake_attempts", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "random_trailers": { + "name": "random_trailers", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "disable_cookies": { + "name": "disable_cookies", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "firewall_enabled": { + "name": "firewall_enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": { + "interfaces_table_port_unique": { + "name": "interfaces_table_port_unique", + "columns": [ + "port" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "one_time_links_table": { + "name": "one_time_links_table", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "one_time_link": { + "name": "one_time_link", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": { + "one_time_links_table_one_time_link_unique": { + "name": "one_time_links_table_one_time_link_unique", + "columns": [ + "one_time_link" + ], + "isUnique": true + } + }, + "foreignKeys": { + "one_time_links_table_id_clients_table_id_fk": { + "name": "one_time_links_table_id_clients_table_id_fk", + "tableFrom": "one_time_links_table", + "tableTo": "clients_table", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users_table": { + "name": "users_table", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "totp_key": { + "name": "totp_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "totp_verified": { + "name": "totp_verified", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "oauth_provider": { + "name": "oauth_provider", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "oauth_id": { + "name": "oauth_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": { + "users_table_username_unique": { + "name": "users_table_username_unique", + "columns": [ + "username" + ], + "isUnique": true + }, + "users_table_email_unique": { + "name": "users_table_email_unique", + "columns": [ + "email" + ], + "isUnique": true + }, + "oauth_provider_id_unique": { + "name": "oauth_provider_id_unique", + "columns": [ + "oauth_provider", + "oauth_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user_configs_table": { + "name": "user_configs_table", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "default_mtu": { + "name": "default_mtu", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "default_persistent_keepalive": { + "name": "default_persistent_keepalive", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "default_dns": { + "name": "default_dns", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "default_allowed_ips": { + "name": "default_allowed_ips", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "default_j_c": { + "name": "default_j_c", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 7 + }, + "default_j_min": { + "name": "default_j_min", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 10 + }, + "default_j_max": { + "name": "default_j_max", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 1000 + }, + "default_i1": { + "name": "default_i1", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_i2": { + "name": "default_i2", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_i3": { + "name": "default_i3", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_i4": { + "name": "default_i4", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_i5": { + "name": "default_i5", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "host": { + "name": "host", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "port": { + "name": "port", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "user_configs_table_id_interfaces_table_name_fk": { + "name": "user_configs_table_id_interfaces_table_name_fk", + "tableFrom": "user_configs_table", + "tableTo": "interfaces_table", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "name" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/src/server/database/migrations/meta/_journal.json b/src/server/database/migrations/meta/_journal.json index 9bdc1db0..6d23e252 100644 --- a/src/server/database/migrations/meta/_journal.json +++ b/src/server/database/migrations/meta/_journal.json @@ -57,6 +57,13 @@ "when": 1785630544322, "tag": "0007_blushing_electro", "breakpoints": true + }, + { + "idx": 8, + "version": "6", + "when": 1788760134302, + "tag": "0008_thin_patch", + "breakpoints": true } ] } \ No newline at end of file diff --git a/src/server/database/repositories/client/schema.ts b/src/server/database/repositories/client/schema.ts index eb3a707e..ff82525b 100644 --- a/src/server/database/repositories/client/schema.ts +++ b/src/server/database/repositories/client/schema.ts @@ -52,6 +52,15 @@ export const client = sqliteTable( i3: text(), i4: text(), i5: text(), + // HeaderProtectionKey and RandomTrailers have to match the interface and + // are therefore only configurable on the server + contentPaddingAddition: text('content_padding_addition'), + rekeyAfterTime: text('rekey_after_time'), + rekeyTimeout: text('rekey_timeout'), + rejectAfterTime: text('reject_after_time'), + keepaliveTimeout: text('keepalive_timeout'), + maxHandshakeAttempts: text('max_handshake_attempts'), + disableCookies: int('disable_cookies', { mode: 'boolean' }), dns: text({ mode: 'json' }).$type(), serverEndpoint: text('server_endpoint'), enabled: int({ mode: 'boolean' }).notNull(), diff --git a/src/server/database/repositories/client/types.ts b/src/server/database/repositories/client/types.ts index f7497e31..3570403f 100644 --- a/src/server/database/repositories/client/types.ts +++ b/src/server/database/repositories/client/types.ts @@ -7,6 +7,7 @@ import type { client } from './schema'; import { AddressSchema, AllowedIpsSchema, + AwgRangeSchema, DnsSchema, EnabledSchema, FirewallIpsSchema, @@ -109,6 +110,13 @@ export const ClientUpdateSchema = schemaForType()( i3: ISchema, i4: ISchema, i5: ISchema, + contentPaddingAddition: AwgRangeSchema, + rekeyAfterTime: AwgRangeSchema, + rekeyTimeout: AwgRangeSchema, + rejectAfterTime: AwgRangeSchema, + keepaliveTimeout: AwgRangeSchema, + maxHandshakeAttempts: AwgRangeSchema, + disableCookies: z.boolean().nullable(), persistentKeepalive: PersistentKeepaliveSchema, serverEndpoint: AddressSchema.nullable(), dns: DnsSchema.nullable(), diff --git a/src/server/database/repositories/interface/schema.ts b/src/server/database/repositories/interface/schema.ts index 0ce4e9b1..7ffa6141 100644 --- a/src/server/database/repositories/interface/schema.ts +++ b/src/server/database/repositories/interface/schema.ts @@ -31,6 +31,15 @@ export const wgInterface = sqliteTable('interfaces_table', { i3: text(), i4: text(), i5: text(), + headerProtectionKey: text('header_protection_key'), + contentPaddingAddition: text('content_padding_addition'), + rekeyAfterTime: text('rekey_after_time'), + rekeyTimeout: text('rekey_timeout'), + rejectAfterTime: text('reject_after_time'), + keepaliveTimeout: text('keepalive_timeout'), + maxHandshakeAttempts: text('max_handshake_attempts'), + randomTrailers: int('random_trailers', { mode: 'boolean' }), + disableCookies: int('disable_cookies', { mode: 'boolean' }), // does nothing yet enabled: int({ mode: 'boolean' }).notNull(), // Enable per-client firewall filtering via iptables diff --git a/src/server/database/repositories/interface/types.ts b/src/server/database/repositories/interface/types.ts index f63e9b08..e104fff4 100644 --- a/src/server/database/repositories/interface/types.ts +++ b/src/server/database/repositories/interface/types.ts @@ -5,12 +5,14 @@ import isCidr from 'is-cidr'; import type { wgInterface } from './schema'; import { + AwgRangeSchema, EnabledSchema, HSchema, ISchema, JcSchema, JmaxSchema, JminSchema, + KeySchema, MtuSchema, PortSchema, RoutingTableSchema, @@ -43,33 +45,64 @@ const cidr = z .refine((value) => isCidr(value), { message: t('zod.interface.cidrValid') }) .pipe(safeStringRefine); +/** + * Header protection uses the first 12 bytes of every junk prefix as the nonce + * for its cipher, so all four junk sizes have to be at least that large. + */ +const HEADER_PROTECTION_MIN_JUNK_SIZE = 12; + export const InterfaceUpdateSchema = schemaForType()( - z.object({ - ipv4Cidr: cidr, - ipv6Cidr: cidr, - mtu: MtuSchema, - routingTable: RoutingTableSchema, - jC: JcSchema, - jMin: JminSchema, - jMax: JmaxSchema, - s1: SSchema, - s2: SSchema, - s3: SSchema, - s4: SSchema, - h1: HSchema, - h2: HSchema, - h3: HSchema, - h4: HSchema, - i1: ISchema, - i2: ISchema, - i3: ISchema, - i4: ISchema, - i5: ISchema, - port: PortSchema, - device: device, - enabled: EnabledSchema, - firewallEnabled: EnabledSchema, - }) + z + .object({ + ipv4Cidr: cidr, + ipv6Cidr: cidr, + mtu: MtuSchema, + routingTable: RoutingTableSchema, + jC: JcSchema, + jMin: JminSchema, + jMax: JmaxSchema, + s1: SSchema, + s2: SSchema, + s3: SSchema, + s4: SSchema, + h1: HSchema, + h2: HSchema, + h3: HSchema, + h4: HSchema, + i1: ISchema, + i2: ISchema, + i3: ISchema, + i4: ISchema, + i5: ISchema, + headerProtectionKey: KeySchema, + contentPaddingAddition: AwgRangeSchema, + rekeyAfterTime: AwgRangeSchema, + rekeyTimeout: AwgRangeSchema, + rejectAfterTime: AwgRangeSchema, + keepaliveTimeout: AwgRangeSchema, + maxHandshakeAttempts: AwgRangeSchema, + randomTrailers: z.boolean().nullable(), + disableCookies: z.boolean().nullable(), + port: PortSchema, + device: device, + enabled: EnabledSchema, + firewallEnabled: EnabledSchema, + }) + .superRefine((data, ctx) => { + if (data.headerProtectionKey === null) return; + + for (const junk of ['s1', 's2', 's3', 's4'] as const) { + const size = data[junk]; + + if (size === null || size < HEADER_PROTECTION_MIN_JUNK_SIZE) { + ctx.addIssue({ + code: 'custom', + path: [junk], + message: t('zod.interface.headerProtectionJunkSize'), + }); + } + } + }) ); export type InterfaceCidrUpdateType = { diff --git a/src/server/utils/awg.ts b/src/server/utils/awg.ts new file mode 100644 index 00000000..8335f0f8 --- /dev/null +++ b/src/server/utils/awg.ts @@ -0,0 +1,154 @@ +import type { ClientType } from '#db/repositories/client/types'; +import type { InterfaceType } from '#db/repositories/interface/types'; + +/** + * A parameter written as `Key = value` into the `[Interface]` section of a + * configuration file. `null` means "not set" and is left out entirely. + */ +type AwgParameters = Record; + +type AwgInterface = Pick< + InterfaceType, + | 'jC' + | 'jMin' + | 'jMax' + | 's1' + | 's2' + | 's3' + | 's4' + | 'h1' + | 'h2' + | 'h3' + | 'h4' + | 'i1' + | 'i2' + | 'i3' + | 'i4' + | 'i5' + | 'headerProtectionKey' + | 'contentPaddingAddition' + | 'rekeyAfterTime' + | 'rekeyTimeout' + | 'rejectAfterTime' + | 'keepaliveTimeout' + | 'maxHandshakeAttempts' + | 'randomTrailers' + | 'disableCookies' +>; + +type AwgClient = Pick< + ClientType, + | 'jC' + | 'jMin' + | 'jMax' + | 'i1' + | 'i2' + | 'i3' + | 'i4' + | 'i5' + | 'contentPaddingAddition' + | 'rekeyAfterTime' + | 'rekeyTimeout' + | 'rejectAfterTime' + | 'keepaliveTimeout' + | 'maxHandshakeAttempts' + | 'disableCookies' +>; + +/** + * amneziawg-tools parses booleans with `parse_bool`, which only accepts + * `on`, `off` or a plain number - not `true` / `false`. + */ +function formatBoolean(value: boolean) { + return value ? 'on' : 'off'; +} + +export function buildAwgLines(parameters: AwgParameters) { + const lines: string[] = []; + + for (const [key, value] of Object.entries(parameters)) { + if (typeof value === 'boolean') { + lines.push(`${key} = ${formatBoolean(value)}`); + continue; + } + + if (!value) continue; + + lines.push(`${key} = ${value}`); + } + + return lines; +} + +/** Obfuscation parameters for the server's own interface */ +export function interfaceAwgParameters( + wgInterface: AwgInterface +): AwgParameters { + return { + Jc: wgInterface.jC, + Jmin: wgInterface.jMin, + Jmax: wgInterface.jMax, + S1: wgInterface.s1, + S2: wgInterface.s2, + S3: wgInterface.s3, + S4: wgInterface.s4, + H1: wgInterface.h1, + H2: wgInterface.h2, + H3: wgInterface.h3, + H4: wgInterface.h4, + I1: wgInterface.i1, + I2: wgInterface.i2, + I3: wgInterface.i3, + I4: wgInterface.i4, + I5: wgInterface.i5, + HeaderProtectionKey: wgInterface.headerProtectionKey, + ContentPaddingAddition: wgInterface.contentPaddingAddition, + RekeyAfterTime: wgInterface.rekeyAfterTime, + RekeyTimeout: wgInterface.rekeyTimeout, + RejectAfterTime: wgInterface.rejectAfterTime, + KeepaliveTimeout: wgInterface.keepaliveTimeout, + MaxHandshakeAttempts: wgInterface.maxHandshakeAttempts, + RandomTrailers: wgInterface.randomTrailers, + DisableCookies: wgInterface.disableCookies, + }; +} + +/** + * Obfuscation parameters for a client's interface. + * + * S1-S4, H1-H4, HeaderProtectionKey and RandomTrailers have to be identical on + * both ends of the tunnel and are therefore copied from the server, everything + * else may differ per client. + */ +export function clientAwgParameters( + wgInterface: AwgInterface, + client: AwgClient +): AwgParameters { + return { + Jc: client.jC, + Jmin: client.jMin, + Jmax: client.jMax, + S1: wgInterface.s1, + S2: wgInterface.s2, + S3: wgInterface.s3, + S4: wgInterface.s4, + H1: wgInterface.h1, + H2: wgInterface.h2, + H3: wgInterface.h3, + H4: wgInterface.h4, + I1: client.i1, + I2: client.i2, + I3: client.i3, + I4: client.i4, + I5: client.i5, + HeaderProtectionKey: wgInterface.headerProtectionKey, + ContentPaddingAddition: client.contentPaddingAddition, + RekeyAfterTime: client.rekeyAfterTime, + RekeyTimeout: client.rekeyTimeout, + RejectAfterTime: client.rejectAfterTime, + KeepaliveTimeout: client.keepaliveTimeout, + MaxHandshakeAttempts: client.maxHandshakeAttempts, + RandomTrailers: wgInterface.randomTrailers, + DisableCookies: client.disableCookies, + }; +} diff --git a/src/server/utils/types.ts b/src/server/utils/types.ts index 5c6bf55b..979c6b08 100644 --- a/src/server/utils/types.ts +++ b/src/server/utils/types.ts @@ -46,38 +46,87 @@ export const JmaxSchema = z.number().max(1280).nullable(); export const SSchema = z.number().max(1132).nullable(); +const RANGE_REGEX = /^(\d+)(?:-(\d+))?$/; + +function parseRange(value: string) { + const match = RANGE_REGEX.exec(value); + if (!match) return null; + + const lower = Number(match[1]); + const upper = match[2] === undefined ? lower : Number(match[2]); + + if (!Number.isSafeInteger(lower) || !Number.isSafeInteger(upper)) return null; + + return { lower, upper }; +} + +/** + * AmneziaWG accepts either a single number or an inclusive `lower-upper` range + * for several parameters (see `u32_range_from_string` / `u16_range_from_string` + * in amneziawg-tools). Values outside of `[min, max]` are silently truncated by + * the parser, so they are rejected here instead. + */ +function rangeSchema(min: number, max: number) { + return z + .string() + .transform((v) => v.replace(/\s+/g, '')) + .refine( + (v) => { + const range = parseRange(v); + if (!range) return false; + + return ( + range.lower >= min && range.upper <= max && range.lower <= range.upper + ); + }, + { + message: t('zod.generic.validNumberRange'), + } + ) + .transform((v) => { + const range = parseRange(v); + // cannot happen, the refine above already rejected unparsable values + if (!range) return v; + + return range.lower === range.upper + ? `${range.lower}` + : `${range.lower}-${range.upper}`; + }) + .nullable(); +} + const H_MIN = 5; const H_MAX = 2 ** 31 - 1; -export const HSchema = z +/** H1-H4 packet header types, parsed as a uint32 range */ +export const HSchema = rangeSchema(H_MIN, H_MAX); + +/** + * AmneziaWG 3.0+ parameters that are parsed as a uint16 range: + * ContentPaddingAddition, RekeyAfterTime, RekeyTimeout, RejectAfterTime, + * KeepaliveTimeout and MaxHandshakeAttempts. + */ +export const AwgRangeSchema = rangeSchema(0, 65535); + +/** Length of a WireGuard key in bytes */ +const KEY_LENGTH = 32; + +/** + * A 32 byte key in canonical base64, the same format WireGuard uses for its + * own keys. Used by the AmneziaWG 3.0+ `HeaderProtectionKey` parameter. + */ +export const KeySchema = z .string() - .transform((v) => v.replace(/\s+/g, '')) + .pipe(safeStringRefine) + .pipe(controlStringRefine) .refine( (v) => { - if (!v) return false; + const key = Buffer.from(v, 'base64'); - if (!/^\d+(-\d+)?$/.test(v)) return false; - - if (!v.includes('-')) { - const num = Number(v); - return num >= H_MIN && num <= H_MAX; - } - - const [min, max] = v.split('-').map(Number); - return min && max && min >= H_MIN && max <= H_MAX && min <= max; - - return false; + return key.length === KEY_LENGTH && key.toString('base64') === v; }, - { - message: t('zod.generic.validNumberRange'), - } + { message: t('zod.keyMalformed') } ) - .transform((v) => { - if (!v.includes('-')) return `${Number(v)}`; - - const [min, max] = v.split('-').map(Number); - return min === max ? `${min}` : `${min}-${max}`; - }) .nullable(); export const ISchema = z diff --git a/src/server/utils/wgHelper.ts b/src/server/utils/wgHelper.ts index b67bcb73..cb289a8e 100644 --- a/src/server/utils/wgHelper.ts +++ b/src/server/utils/wgHelper.ts @@ -1,6 +1,11 @@ import { parseCidr } from 'cidr-tools'; import { stringifyIp } from 'ip-bigint'; +import { + buildAwgLines, + clientAwgParameters, + interfaceAwgParameters, +} from '#server/utils/awg'; import { removeNewlines, iptablesTemplate } from '#server/utils/template'; import { exec } from '#server/utils/cmd'; import { WG_ENV } from '#server/utils/config'; @@ -58,34 +63,10 @@ AllowedIPs = ${allowedIps.join(', ')}${extraLines.length ? `\n${extraLines.join( `${ipv4Addr}/${cidr4.prefix}` + (enableIpv6 ? `, ${ipv6Addr}/${cidr6.prefix}` : ''); - let awgLines: string[] = []; - - if (wgExecutable === 'awg') { - const parameters = { - Jc: wgInterface.jC, - Jmin: wgInterface.jMin, - Jmax: wgInterface.jMax, - S1: wgInterface.s1, - S2: wgInterface.s2, - S3: wgInterface.s3, - S4: wgInterface.s4, - H1: wgInterface.h1, - H2: wgInterface.h2, - H3: wgInterface.h3, - H4: wgInterface.h4, - I1: wgInterface.i1, - I2: wgInterface.i2, - I3: wgInterface.i3, - I4: wgInterface.i4, - I5: wgInterface.i5, - } as const; - - awgLines = Object.entries(parameters) - .filter(([_, value]) => !!value) - .map(([key, value]) => `${key} = ${value}`); - } - - const extraLines = [...awgLines].filter((v) => v !== null); + const extraLines = + wgExecutable === 'awg' + ? buildAwgLines(interfaceAwgParameters(wgInterface)) + : []; return `# Note: Do not edit this file directly. # Your changes will be overwritten! @@ -127,32 +108,10 @@ PostDown = ${iptablesTemplate(hooks.postDown, wgInterface)}`; const dnsLine = dnsServers.length > 0 ? `DNS = ${dnsServers.join(', ')}` : null; - let awgLines: string[] = []; - - if (wgExecutable === 'awg') { - const parameters = { - Jc: client.jC, - Jmin: client.jMin, - Jmax: client.jMax, - S1: wgInterface.s1, - S2: wgInterface.s2, - S3: wgInterface.s3, - S4: wgInterface.s4, - H1: wgInterface.h1, - H2: wgInterface.h2, - H3: wgInterface.h3, - H4: wgInterface.h4, - I1: client.i1, - I2: client.i2, - I3: client.i3, - I4: client.i4, - I5: client.i5, - } as const; - - awgLines = Object.entries(parameters) - .filter(([_, value]) => !!value) - .map(([key, value]) => `${key} = ${value}`); - } + const awgLines = + wgExecutable === 'awg' + ? buildAwgLines(clientAwgParameters(wgInterface, client)) + : []; const extraLines = [dnsLine, ...hookLines, ...awgLines].filter( (v) => v !== null diff --git a/src/test/unit/awg.spec.ts b/src/test/unit/awg.spec.ts new file mode 100644 index 00000000..b6ac3828 --- /dev/null +++ b/src/test/unit/awg.spec.ts @@ -0,0 +1,222 @@ +import { describe, expect, test } from 'vitest'; + +import { + buildAwgLines, + clientAwgParameters, + interfaceAwgParameters, +} from '#server/utils/awg'; +import { InterfaceUpdateSchema } from '#db/repositories/interface/types'; +import { AwgRangeSchema, HSchema, KeySchema } from '#server/utils/types'; + +/** Any valid 32 byte base64 key, generated with `wg genkey` */ +const KEY = 'JPJ2DWzJbwrRkY6cPbZaJasL6bHQOM6J2Ollx4D/OHU='; + +const wgInterface = { + jC: 7, + jMin: 10, + jMax: 1000, + s1: 128, + s2: 56, + s3: null, + s4: null, + h1: '5', + h2: null, + h3: null, + h4: null, + i1: null, + i2: null, + i3: null, + i4: null, + i5: null, + headerProtectionKey: null, + contentPaddingAddition: null, + rekeyAfterTime: null, + rekeyTimeout: null, + rejectAfterTime: null, + keepaliveTimeout: null, + maxHandshakeAttempts: null, + randomTrailers: null, + disableCookies: null, +}; + +const client = { + jC: null, + jMin: null, + jMax: null, + i1: null, + i2: null, + i3: null, + i4: null, + i5: null, + contentPaddingAddition: null, + rekeyAfterTime: null, + rekeyTimeout: null, + rejectAfterTime: null, + keepaliveTimeout: null, + maxHandshakeAttempts: null, + disableCookies: null, +}; + +describe('AmneziaWG config lines', () => { + test('leaves out parameters that are not set', () => { + expect(buildAwgLines({ Jc: null, Jmin: null })).toEqual([]); + }); + + test('writes booleans as on/off, not true/false', () => { + expect( + buildAwgLines({ RandomTrailers: true, DisableCookies: false }) + ).toEqual(['RandomTrailers = on', 'DisableCookies = off']); + }); + + test('keeps ranges verbatim', () => { + expect(buildAwgLines({ RekeyAfterTime: '90-150' })).toEqual([ + 'RekeyAfterTime = 90-150', + ]); + }); + + test('builds the interface parameters', () => { + expect( + buildAwgLines( + interfaceAwgParameters({ + ...wgInterface, + headerProtectionKey: KEY, + maxHandshakeAttempts: '5', + randomTrailers: true, + disableCookies: false, + }) + ) + ).toEqual([ + 'Jc = 7', + 'Jmin = 10', + 'Jmax = 1000', + 'S1 = 128', + 'S2 = 56', + 'H1 = 5', + `HeaderProtectionKey = ${KEY}`, + 'MaxHandshakeAttempts = 5', + 'RandomTrailers = on', + 'DisableCookies = off', + ]); + }); + + test('copies parameters that must match from the interface to the client', () => { + const lines = buildAwgLines( + clientAwgParameters( + { ...wgInterface, headerProtectionKey: KEY, randomTrailers: true }, + { ...client, rekeyTimeout: '4-8', disableCookies: true } + ) + ); + + expect(lines).toContain(`HeaderProtectionKey = ${KEY}`); + expect(lines).toContain('RandomTrailers = on'); + expect(lines).toContain('S1 = 128'); + expect(lines).toContain('H1 = 5'); + expect(lines).toContain('RekeyTimeout = 4-8'); + expect(lines).toContain('DisableCookies = on'); + }); + + test('does not inherit per-client parameters from the interface', () => { + const lines = buildAwgLines( + clientAwgParameters( + { ...wgInterface, jC: 7, maxHandshakeAttempts: '9' }, + client + ) + ); + + expect(lines).not.toContain('Jc = 7'); + expect(lines).not.toContain('MaxHandshakeAttempts = 9'); + }); +}); + +describe('AwgRangeSchema', () => { + test('accepts a single number and an inclusive range', () => { + expect(AwgRangeSchema.parse('30')).toBe('30'); + expect(AwgRangeSchema.parse('30-90')).toBe('30-90'); + expect(AwgRangeSchema.parse(' 30 - 90 ')).toBe('30-90'); + expect(AwgRangeSchema.parse('0')).toBe('0'); + expect(AwgRangeSchema.parse(null)).toBeNull(); + }); + + test('collapses a range with identical bounds', () => { + expect(AwgRangeSchema.parse('30-30')).toBe('30'); + }); + + test('rejects values the awg parser would truncate or refuse', () => { + expect(() => AwgRangeSchema.parse('65536')).toThrow(); + expect(() => AwgRangeSchema.parse('90-30')).toThrow(); + expect(() => AwgRangeSchema.parse('-5')).toThrow(); + expect(() => AwgRangeSchema.parse('1-2-3')).toThrow(); + expect(() => AwgRangeSchema.parse('abc')).toThrow(); + expect(() => AwgRangeSchema.parse('')).toThrow(); + }); + + test('does not change the H1-H4 bounds', () => { + expect(HSchema.parse('5')).toBe('5'); + expect(() => HSchema.parse('4')).toThrow(); + expect(HSchema.parse('5-2147483647')).toBe('5-2147483647'); + expect(() => HSchema.parse('5-2147483648')).toThrow(); + }); +}); + +describe('KeySchema', () => { + test('accepts a 32 byte base64 key', () => { + expect(KeySchema.parse(KEY)).toBe(KEY); + expect(KeySchema.parse(null)).toBeNull(); + }); + + test('rejects keys of the wrong length or encoding', () => { + expect(() => KeySchema.parse('too-short')).toThrow(); + expect(() => KeySchema.parse(KEY.slice(0, -1))).toThrow(); + expect(() => KeySchema.parse(`${KEY}${KEY}`)).toThrow(); + // non canonical: the trailing bits of the last character are not zero + expect(() => KeySchema.parse(`${KEY.slice(0, 42)}B=`)).toThrow(); + }); + + test('rejects newlines that would inject extra config lines', () => { + expect(() => + KeySchema.parse(`${KEY}\nPostUp = touch /tmp/pwned`) + ).toThrow(); + }); +}); + +describe('InterfaceUpdateSchema', () => { + const base = { + ipv4Cidr: '10.8.0.0/24', + ipv6Cidr: 'fdcc:ad94:bacf:61a3::/64', + mtu: 1420, + routingTable: 'auto', + ...wgInterface, + port: 51820, + device: 'eth0', + enabled: true, + firewallEnabled: false, + }; + + test('accepts an interface without header protection', () => { + expect(() => InterfaceUpdateSchema.parse(base)).not.toThrow(); + }); + + test('requires S1-S4 to be at least 12 when a key is set', () => { + const result = InterfaceUpdateSchema.safeParse({ + ...base, + headerProtectionKey: KEY, + }); + + expect(result.success).toBe(false); + expect(result.error?.issues.map((issue) => issue.path[0])).toEqual([ + 's3', + 's4', + ]); + }); + + test('accepts header protection with large enough junk sizes', () => { + expect(() => + InterfaceUpdateSchema.parse({ + ...base, + headerProtectionKey: KEY, + s3: 12, + s4: 40, + }) + ).not.toThrow(); + }); +}); diff --git a/src/vitest.config.ts b/src/vitest.config.ts index 3a37baa0..894dcf0f 100644 --- a/src/vitest.config.ts +++ b/src/vitest.config.ts @@ -9,6 +9,9 @@ export default defineConfig({ resolve: { alias: { '#server': fileURLToPath(new URL('./server', import.meta.url)), + '#db': fileURLToPath( + new URL('./server/database/', import.meta.url) + ), }, }, test: { From 960e8e5fd414ce8d53f352bebc4cb349f326c1b7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2026 18:35:15 +0200 Subject: [PATCH 12/31] Update pnpm to v12 (#2818) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 158 +++++++++++++++++++++++++++++++++++++++++++++ src/package.json | 2 +- src/pnpm-lock.yaml | 158 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 318 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0781b6d6..529fd28a 100644 --- a/package.json +++ b/package.json @@ -13,5 +13,5 @@ "devDependencies": { "prettier": "^3.9.6" }, - "packageManager": "pnpm@11.25.0" + "packageManager": "pnpm@12.4.1" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 66fd4317..f7eacc01 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,3 +1,161 @@ +--- +lockfileVersion: '9.0' + +importers: + + .: + configDependencies: {} + packageManagerDependencies: + pnpm: + specifier: 12.4.1 + version: 12.4.1 + +packages: + + '@pnpm/exe.android-arm64@12.4.1': + resolution: {integrity: sha512-/HwsqXMSmlOfgtV9+O0ratzjV6Vd/8n1hh4rGHpCGmDURvt52MwZxdbhyxP4K03ZfvgSDvotFPr8O+RzE5Eu8A==} + cpu: [arm64] + os: [android] + + '@pnpm/exe.android-x64@12.4.1': + resolution: {integrity: sha512-+l74Qb4c2YjOzNKHXJLg+1wr8xHM1ckkUhnU5KRUK9TJqiiczt6yeTZqqzHIlJ8i6pAoj5V0OJevDRwnQKLgrQ==} + cpu: [x64] + os: [android] + + '@pnpm/exe.darwin-arm64@12.4.1': + resolution: {integrity: sha512-6rkZkT3iGfaxknUdGHraqSWFvTa6N0ajAHluv9Ax0GRWs0sIcGNiFhDopv6xSZCsJZmG483aNS/b6UEDy3blfw==} + cpu: [arm64] + os: [darwin] + + '@pnpm/exe.darwin-x64@12.4.1': + resolution: {integrity: sha512-Vb1CHlR88HghC1qUxjxjs82zQSXnXacPD+btG2CmG8Q/hBU7Q0/b2YWJKSQqZXicunV5khFtfTlAwJddV9RkYA==} + cpu: [x64] + os: [darwin] + + '@pnpm/exe.freebsd-x64@12.4.1': + resolution: {integrity: sha512-iT3iHz3Nl0Sxxj7UPOtZ/aQ81AFsQhjoeWMAlPkSRO04gsgDGAXv3UYxOFaesMWsfNxaGn0A+CITbuCHFF66FA==} + cpu: [x64] + os: [freebsd] + + '@pnpm/exe.linux-arm64-musl@12.4.1': + resolution: {integrity: sha512-aBooZfNXM5f+OGUgCAMFWpE/kAhsWfvmqIyMtHy6zl3aNxyInWrcY/Saln/UElzo7lZWMC0Yktroxd/2J26lNQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@pnpm/exe.linux-arm64@12.4.1': + resolution: {integrity: sha512-TlOdacTTP09BgcMvwWBFRsu8VAjfwqwnslBj+XSq1JFM3ck4f3k+1O/747EuctxZxs3/o785b6Q3s7Pd92Ptsg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@pnpm/exe.linux-ppc64@12.4.1': + resolution: {integrity: sha512-r/ab/MlIBo75oizUP5ITiziCCrnXz4SJwfErLQ+603AshB+Yq7xTMCoMtzTSCAMu6aaymIKkAFtZvd2J75Wq0w==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@pnpm/exe.linux-riscv64@12.4.1': + resolution: {integrity: sha512-C/D1QWdKMiB8+wv/spl1rGITFUuqC+aI/fb6h8NB5sqxsOaGXeYc/g891oCuzggHn6SODk9p+I09hI76x/cMNw==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@pnpm/exe.linux-s390x@12.4.1': + resolution: {integrity: sha512-nxz5zD4yXt94uzbStDk0QTPKW+aE92hH1b5tFXK9ctB1HE9Xcq1vjTiA2LsZMFC6p4gdu5OwQeFqYNAVGa6QlA==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@pnpm/exe.linux-x64-musl@12.4.1': + resolution: {integrity: sha512-5AwgFdGhVUg2kIweYGfxzSLEHiIG77PQhZAkXC3TwofQHsu1Wr+TrV5/rNX2PopFnHRzuE581zoB8F6Wle32yg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@pnpm/exe.linux-x64@12.4.1': + resolution: {integrity: sha512-FJOZuuuQMhp0oLzBtcKkLXknBI92hfkmSnlKc47vfin4HrmfID5khY2lGekL9tCzk1cpR+HShEw/meFl+nHtzQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@pnpm/exe.win32-arm64@12.4.1': + resolution: {integrity: sha512-OO7eKBL9S+xk5hRy+JUUZSNJknGuGe3GEUffsrlC2LbqKF02g+VX1anGIzSbJDvkkdnpJhSlxF5AUz2JzJu2Jw==} + cpu: [arm64] + os: [win32] + + '@pnpm/exe.win32-x64@12.4.1': + resolution: {integrity: sha512-x7gJHZgHo6hp354xCYA2NvoFzYJkHwovt2kVsUBK5EmXULLcP51JGMq09CX+5FRFJUZFKoXjLu3mZWmfP7o6PQ==} + cpu: [x64] + os: [win32] + + pnpm@12.4.1: + resolution: {integrity: sha512-LoHjmdc/6DkNqyXgaqeIq3pZCCSNL1o3D4K0gRR6ano2e/gEj5pv22Rg8hpm8FQt7bi5TKLIcjWWdBkgsWVtTA==} + engines: {node: '>=18.*'} + hasBin: true + +snapshots: + + '@pnpm/exe.android-arm64@12.4.1': + optional: true + + '@pnpm/exe.android-x64@12.4.1': + optional: true + + '@pnpm/exe.darwin-arm64@12.4.1': + optional: true + + '@pnpm/exe.darwin-x64@12.4.1': + optional: true + + '@pnpm/exe.freebsd-x64@12.4.1': + optional: true + + '@pnpm/exe.linux-arm64-musl@12.4.1': + optional: true + + '@pnpm/exe.linux-arm64@12.4.1': + optional: true + + '@pnpm/exe.linux-ppc64@12.4.1': + optional: true + + '@pnpm/exe.linux-riscv64@12.4.1': + optional: true + + '@pnpm/exe.linux-s390x@12.4.1': + optional: true + + '@pnpm/exe.linux-x64-musl@12.4.1': + optional: true + + '@pnpm/exe.linux-x64@12.4.1': + optional: true + + '@pnpm/exe.win32-arm64@12.4.1': + optional: true + + '@pnpm/exe.win32-x64@12.4.1': + optional: true + + pnpm@12.4.1: + optionalDependencies: + '@pnpm/exe.android-arm64': 12.4.1 + '@pnpm/exe.android-x64': 12.4.1 + '@pnpm/exe.darwin-arm64': 12.4.1 + '@pnpm/exe.darwin-x64': 12.4.1 + '@pnpm/exe.freebsd-x64': 12.4.1 + '@pnpm/exe.linux-arm64': 12.4.1 + '@pnpm/exe.linux-arm64-musl': 12.4.1 + '@pnpm/exe.linux-ppc64': 12.4.1 + '@pnpm/exe.linux-riscv64': 12.4.1 + '@pnpm/exe.linux-s390x': 12.4.1 + '@pnpm/exe.linux-x64': 12.4.1 + '@pnpm/exe.linux-x64-musl': 12.4.1 + '@pnpm/exe.win32-arm64': 12.4.1 + '@pnpm/exe.win32-x64': 12.4.1 + +--- lockfileVersion: '9.0' settings: diff --git a/src/package.json b/src/package.json index 59ef6403..f7f66cbd 100644 --- a/src/package.json +++ b/src/package.json @@ -74,5 +74,5 @@ "vitest": "^4.1.10", "vue-tsc": "^3.3.9" }, - "packageManager": "pnpm@11.25.0" + "packageManager": "pnpm@12.4.1" } diff --git a/src/pnpm-lock.yaml b/src/pnpm-lock.yaml index 409a2aa6..3968c1a0 100644 --- a/src/pnpm-lock.yaml +++ b/src/pnpm-lock.yaml @@ -1,3 +1,161 @@ +--- +lockfileVersion: '9.0' + +importers: + + .: + configDependencies: {} + packageManagerDependencies: + pnpm: + specifier: 12.4.1 + version: 12.4.1 + +packages: + + '@pnpm/exe.android-arm64@12.4.1': + resolution: {integrity: sha512-/HwsqXMSmlOfgtV9+O0ratzjV6Vd/8n1hh4rGHpCGmDURvt52MwZxdbhyxP4K03ZfvgSDvotFPr8O+RzE5Eu8A==} + cpu: [arm64] + os: [android] + + '@pnpm/exe.android-x64@12.4.1': + resolution: {integrity: sha512-+l74Qb4c2YjOzNKHXJLg+1wr8xHM1ckkUhnU5KRUK9TJqiiczt6yeTZqqzHIlJ8i6pAoj5V0OJevDRwnQKLgrQ==} + cpu: [x64] + os: [android] + + '@pnpm/exe.darwin-arm64@12.4.1': + resolution: {integrity: sha512-6rkZkT3iGfaxknUdGHraqSWFvTa6N0ajAHluv9Ax0GRWs0sIcGNiFhDopv6xSZCsJZmG483aNS/b6UEDy3blfw==} + cpu: [arm64] + os: [darwin] + + '@pnpm/exe.darwin-x64@12.4.1': + resolution: {integrity: sha512-Vb1CHlR88HghC1qUxjxjs82zQSXnXacPD+btG2CmG8Q/hBU7Q0/b2YWJKSQqZXicunV5khFtfTlAwJddV9RkYA==} + cpu: [x64] + os: [darwin] + + '@pnpm/exe.freebsd-x64@12.4.1': + resolution: {integrity: sha512-iT3iHz3Nl0Sxxj7UPOtZ/aQ81AFsQhjoeWMAlPkSRO04gsgDGAXv3UYxOFaesMWsfNxaGn0A+CITbuCHFF66FA==} + cpu: [x64] + os: [freebsd] + + '@pnpm/exe.linux-arm64-musl@12.4.1': + resolution: {integrity: sha512-aBooZfNXM5f+OGUgCAMFWpE/kAhsWfvmqIyMtHy6zl3aNxyInWrcY/Saln/UElzo7lZWMC0Yktroxd/2J26lNQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@pnpm/exe.linux-arm64@12.4.1': + resolution: {integrity: sha512-TlOdacTTP09BgcMvwWBFRsu8VAjfwqwnslBj+XSq1JFM3ck4f3k+1O/747EuctxZxs3/o785b6Q3s7Pd92Ptsg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@pnpm/exe.linux-ppc64@12.4.1': + resolution: {integrity: sha512-r/ab/MlIBo75oizUP5ITiziCCrnXz4SJwfErLQ+603AshB+Yq7xTMCoMtzTSCAMu6aaymIKkAFtZvd2J75Wq0w==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@pnpm/exe.linux-riscv64@12.4.1': + resolution: {integrity: sha512-C/D1QWdKMiB8+wv/spl1rGITFUuqC+aI/fb6h8NB5sqxsOaGXeYc/g891oCuzggHn6SODk9p+I09hI76x/cMNw==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@pnpm/exe.linux-s390x@12.4.1': + resolution: {integrity: sha512-nxz5zD4yXt94uzbStDk0QTPKW+aE92hH1b5tFXK9ctB1HE9Xcq1vjTiA2LsZMFC6p4gdu5OwQeFqYNAVGa6QlA==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@pnpm/exe.linux-x64-musl@12.4.1': + resolution: {integrity: sha512-5AwgFdGhVUg2kIweYGfxzSLEHiIG77PQhZAkXC3TwofQHsu1Wr+TrV5/rNX2PopFnHRzuE581zoB8F6Wle32yg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@pnpm/exe.linux-x64@12.4.1': + resolution: {integrity: sha512-FJOZuuuQMhp0oLzBtcKkLXknBI92hfkmSnlKc47vfin4HrmfID5khY2lGekL9tCzk1cpR+HShEw/meFl+nHtzQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@pnpm/exe.win32-arm64@12.4.1': + resolution: {integrity: sha512-OO7eKBL9S+xk5hRy+JUUZSNJknGuGe3GEUffsrlC2LbqKF02g+VX1anGIzSbJDvkkdnpJhSlxF5AUz2JzJu2Jw==} + cpu: [arm64] + os: [win32] + + '@pnpm/exe.win32-x64@12.4.1': + resolution: {integrity: sha512-x7gJHZgHo6hp354xCYA2NvoFzYJkHwovt2kVsUBK5EmXULLcP51JGMq09CX+5FRFJUZFKoXjLu3mZWmfP7o6PQ==} + cpu: [x64] + os: [win32] + + pnpm@12.4.1: + resolution: {integrity: sha512-LoHjmdc/6DkNqyXgaqeIq3pZCCSNL1o3D4K0gRR6ano2e/gEj5pv22Rg8hpm8FQt7bi5TKLIcjWWdBkgsWVtTA==} + engines: {node: '>=18.*'} + hasBin: true + +snapshots: + + '@pnpm/exe.android-arm64@12.4.1': + optional: true + + '@pnpm/exe.android-x64@12.4.1': + optional: true + + '@pnpm/exe.darwin-arm64@12.4.1': + optional: true + + '@pnpm/exe.darwin-x64@12.4.1': + optional: true + + '@pnpm/exe.freebsd-x64@12.4.1': + optional: true + + '@pnpm/exe.linux-arm64-musl@12.4.1': + optional: true + + '@pnpm/exe.linux-arm64@12.4.1': + optional: true + + '@pnpm/exe.linux-ppc64@12.4.1': + optional: true + + '@pnpm/exe.linux-riscv64@12.4.1': + optional: true + + '@pnpm/exe.linux-s390x@12.4.1': + optional: true + + '@pnpm/exe.linux-x64-musl@12.4.1': + optional: true + + '@pnpm/exe.linux-x64@12.4.1': + optional: true + + '@pnpm/exe.win32-arm64@12.4.1': + optional: true + + '@pnpm/exe.win32-x64@12.4.1': + optional: true + + pnpm@12.4.1: + optionalDependencies: + '@pnpm/exe.android-arm64': 12.4.1 + '@pnpm/exe.android-x64': 12.4.1 + '@pnpm/exe.darwin-arm64': 12.4.1 + '@pnpm/exe.darwin-x64': 12.4.1 + '@pnpm/exe.freebsd-x64': 12.4.1 + '@pnpm/exe.linux-arm64': 12.4.1 + '@pnpm/exe.linux-arm64-musl': 12.4.1 + '@pnpm/exe.linux-ppc64': 12.4.1 + '@pnpm/exe.linux-riscv64': 12.4.1 + '@pnpm/exe.linux-s390x': 12.4.1 + '@pnpm/exe.linux-x64': 12.4.1 + '@pnpm/exe.linux-x64-musl': 12.4.1 + '@pnpm/exe.win32-arm64': 12.4.1 + '@pnpm/exe.win32-x64': 12.4.1 + +--- lockfileVersion: '9.0' settings: From 8ea8e0572cd0a7f3b02feb656958bf7d4484b388 Mon Sep 17 00:00:00 2001 From: Jamal Kamaladdinoglu Date: Wed, 16 Sep 2026 20:37:09 +0400 Subject: [PATCH 13/31] i18n: add Azerbaijani translation (#2806) * i18n: add Azerbaijani translation * i18n: translate the new Azerbaijani strings --- src/i18n/i18n.config.ts | 2 + src/i18n/locales/az.json | 334 +++++++++++++++++++++++++++++++++++++++ src/nuxt.config.ts | 5 + 3 files changed, 341 insertions(+) create mode 100644 src/i18n/locales/az.json diff --git a/src/i18n/i18n.config.ts b/src/i18n/i18n.config.ts index 76fe6c97..e8d054a3 100644 --- a/src/i18n/i18n.config.ts +++ b/src/i18n/i18n.config.ts @@ -23,6 +23,7 @@ import gl from './locales/gl.json'; import cs from './locales/cs.json'; import vi from './locales/vi.json'; import sv from './locales/sv.json'; +import az from './locales/az.json'; export default defineI18nConfig(() => ({ legacy: false, @@ -53,5 +54,6 @@ export default defineI18nConfig(() => ({ cs, vi, sv, + az, }, })); diff --git a/src/i18n/locales/az.json b/src/i18n/locales/az.json new file mode 100644 index 00000000..f32c2b44 --- /dev/null +++ b/src/i18n/locales/az.json @@ -0,0 +1,334 @@ +{ + "pages": { + "me": "Hesab", + "clients": "Müştərilər", + "admin": { + "panel": "İdarəetmə paneli", + "general": "Ümumi", + "config": "Konfiqurasiya", + "interface": "İnterfeys", + "hooks": "Hook-lar" + } + }, + "user": { + "email": "E-poçt" + }, + "me": { + "currentPassword": "Cari parol", + "enable2fa": "İkifaktorlu doğrulamanı aktivləşdir", + "enable2faDesc": "Doğrulama tətbiqinizlə QR kodu skan edin və ya açarı əl ilə daxil edin.", + "2faKey": "TOTP açarı", + "2faCodeDesc": "Doğrulama tətbiqinizdəki kodu daxil edin.", + "disable2fa": "İkifaktorlu doğrulamanı söndür", + "disable2faDesc": "İkifaktorlu doğrulamanı söndürmək üçün parolunuzu daxil edin.", + "linkOauth": "Hesabını xarici provayderlə əlaqələndir", + "unlinkOauth": "Əlaqəni kəs", + "linkedWith": "{provider} ilə əlaqələndirilib", + "providerDisabled": "Hazırda hesabınızla əlaqələndirilmiş provayder aktiv deyil" + }, + "general": { + "name": "Ad", + "username": "İstifadəçi adı", + "password": "Parol", + "newPassword": "Yeni parol", + "updatePassword": "Parolu yenilə", + "addPassword": "Parol əlavə et", + "mtu": "MTU", + "allowedIps": "İcazə verilən IP-lər", + "dns": "DNS", + "persistentKeepalive": "Daimi keepalive", + "logout": "Çıxış", + "continue": "Davam et", + "host": "Host", + "port": "Port", + "yes": "Bəli", + "no": "Xeyr", + "confirmPassword": "Parolu təsdiqlə", + "loading": "Yüklənir...", + "2fa": "İkifaktorlu doğrulama", + "2faCode": "TOTP kodu", + "externalAuth": "Xarici doğrulama" + }, + "setup": { + "welcome": "wg-easy proqramının ilkin quraşdırılmasına xoş gəlmisiniz", + "welcomeDesc": "İstənilən Linux hostunda WireGuard quraşdırmağın və idarə etməyin ən asan yolunu tapmısınız", + "existingSetup": "Mövcud quraşdırmanız varmı?", + "createAdminDesc": "Əvvəlcə inzibatçı üçün istifadəçi adı və güclü, təhlükəsiz parol daxil edin. Bu məlumatlar idarəetmə panelinizə daxil olmaq üçün istifadə ediləcək.", + "setupConfigDesc": "Host və port məlumatlarını daxil edin. Bu məlumatlar müştərilərin cihazlarında WireGuard quraşdırılarkən müştəri konfiqurasiyası üçün istifadə ediləcək.", + "setupMigrationDesc": "Əvvəlki wg-easy versiyasındakı məlumatlarınızı yeni quraşdırmaya köçürmək istəyirsinizsə, ehtiyat nüsxə faylını təqdim edin.", + "upload": "Yüklə", + "migration": "Ehtiyat nüsxəni bərpa et:", + "createAccount": "Hesab yarat", + "successful": "Quraşdırma uğurla tamamlandı", + "hostDesc": "Müştərilərin qoşulacağı ictimai host adı", + "portDesc": "Müştərilərin qoşulacağı və WireGuard-ın dinləyəcəyi ictimai UDP portu" + }, + "update": { + "updateAvailable": "Yeniləmə mövcuddur!", + "update": "Yenilə" + }, + "theme": { + "dark": "Tünd mövzu", + "light": "Açıq mövzu", + "system": "Sistem mövzusu" + }, + "layout": { + "toggleCharts": "Qrafikləri göstər/gizlət", + "donate": "İanə et" + }, + "login": { + "signIn": "Daxil ol", + "signInWith": "{provider} ilə daxil ol", + "or": "və ya", + "rememberMe": "Məni xatırla", + "rememberMeDesc": "Brauzeri bağladıqdan sonra da hesabınızda qalın", + "insecure": "Təhlükəsiz olmayan qoşulma ilə daxil ola bilməzsiniz. HTTPS istifadə edin.", + "2faRequired": "İkifaktorlu doğrulama tələb olunur", + "2faWrong": "İkifaktorlu doğrulama kodu yanlışdır", + "loginExpired": "Giriş müddəti bitib. Yenidən cəhd edin" + }, + "client": { + "empty": "Hələ müştəri yoxdur.", + "newShort": "Yeni", + "sort": "Sırala", + "create": "Müştəri yarat", + "created": "Müştəri yaradıldı", + "new": "Yeni müştəri", + "name": "Ad", + "expireDate": "Bitmə tarixi", + "expireDateDesc": "Müştərinin söndürüləcəyi tarix. Daimi olması üçün boş saxlayın", + "delete": "Sil", + "deleteClient": "Müştərini sil", + "deleteDialog": "{name} adlı müştərini silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.", + "enabled": "Aktivdir", + "address": "Ünvan", + "serverAllowedIps": "Serverdə icazə verilən IP-lər", + "otlDesc": "Qısa birdəfəlik keçid yarat", + "permanent": "Daimi", + "createdOn": "Yaradılma tarixi: {date}", + "lastSeen": "Son görünmə tarixi: {date}", + "totalDownload": "Cəmi endirilən: {total}", + "totalUpload": "Cəmi yüklənən: {total}", + "newClient": "Yeni müştəri", + "disableClient": "Müştərini söndür", + "enableClient": "Müştərini aktivləşdir", + "noPrivKey": "Bu müştərinin məlum məxfi açarı yoxdur. Konfiqurasiya yaratmaq mümkün deyil.", + "showQR": "QR kodu göstər", + "downloadConfig": "Konfiqurasiyanı endir", + "allowedIpsDesc": "VPN vasitəsilə yönləndiriləcək IP-lər (ümumi konfiqurasiyanı əvəz edir)", + "serverAllowedIpsDesc": "Serverin müştəriyə yönləndirəcəyi IP-lər", + "mtuDesc": "VPN tuneli üçün maksimum ötürmə vahidini (paket ölçüsünü) təyin edir", + "persistentKeepaliveDesc": "Keepalive paketləri üçün intervalı (saniyə ilə) təyin edir. 0 onu söndürür", + "hooks": "Hook-lar", + "hooksDescription": "Hook-lar yalnız wg-quick ilə işləyir", + "hooksLeaveEmpty": "Yalnız wg-quick üçündür. Əks halda boş saxlayın", + "dnsDesc": "Müştərilərin istifadə edəcəyi DNS server (ümumi konfiqurasiyanı əvəz edir)", + "notConnected": "Müştəri qoşulmayıb", + "endpoint": "Ünvan", + "endpointDesc": "WireGuard qoşulmasının qurulduğu müştərinin IP ünvanı", + "search": "Müştəriləri axtar...", + "config": "Konfiqurasiya", + "viewConfig": "Konfiqurasiyaya bax", + "firewallIps": "Firewall üçün icazə verilən IP-lər", + "firewallIpsDesc": "Bu müştərinin çıxışına icazə verilən təyinat IP-ləri/CIDR-ləri (server tərəfində tətbiq olunur). İcazə verilən IP-lərdən istifadə etmək üçün boş saxlayın. İstəyə bağlı port və protokol filtrləməsi dəstəklənir. Sintaksis üçün sənədlərə baxın.", + "downloadPng": "PNG endir", + "copyPng": "PNG kopyala" + }, + "dialog": { + "change": "Dəyişdir", + "cancel": "Ləğv et", + "create": "Yarat" + }, + "toast": { + "success": "Uğurlu", + "saved": "Yadda saxlanıldı", + "error": "Xəta", + "unknown": "Naməlum xəta. Ətraflı məlumat üçün konsola baxın" + }, + "form": { + "actions": "Əməliyyatlar", + "save": "Yadda saxla", + "revert": "Geri qaytar", + "sectionGeneral": "Ümumi", + "sectionAdvanced": "Əlavə", + "noItems": "Element yoxdur", + "nullNoItems": "Element yoxdur. Ümumi konfiqurasiya istifadə olunur", + "nullNotSet": "Təyin edilməyib", + "set": "Təyin et", + "unset": "Təyinatı sil", + "add": "Əlavə et" + }, + "admin": { + "general": { + "sessionTimeout": "Sessiya vaxtı bitməsi", + "sessionTimeoutDesc": "Məni xatırla seçimi üçün sessiya müddəti (saniyə)", + "metrics": "Metrikalar", + "metricsPassword": "Parol", + "metricsPasswordDesc": "Metrika ünvanı üçün Bearer parolu (parol və ya argon2 heşi)", + "json": "JSON", + "jsonDesc": "JSON formatında metrikalar üçün yol", + "prometheus": "Prometheus", + "prometheusDesc": "Prometheus metrikaları üçün yol" + }, + "config": { + "connection": "Qoşulma", + "hostDesc": "Müştərilərin qoşulacağı ictimai host adı (konfiqurasiyanı etibarsız edir)", + "portDesc": "Müştərilərin qoşulacağı ictimai UDP portu (konfiqurasiyanı etibarsız edir, interfeys portunu da dəyişdirməyiniz lazım ola bilər)", + "allowedIpsDesc": "Müştərilərin istifadə edəcəyi icazə verilən IP-lər (ümumi konfiqurasiya)", + "dnsDesc": "Müştərilərin istifadə edəcəyi DNS server (ümumi konfiqurasiya)", + "mtuDesc": "Müştərilərin istifadə edəcəyi MTU (yalnız yeni müştərilər üçün)", + "persistentKeepaliveDesc": "Serverə keepalive paketlərinin göndərilmə intervalı, saniyə ilə. 0 = deaktiv (yalnız yeni müştərilər üçün)", + "suggest": "Təklif et", + "suggestDesc": "Host sahəsi üçün IP ünvanı və ya host adı seçin" + }, + "interface": { + "cidrSuccess": "CIDR dəyişdirildi", + "device": "Cihaz", + "deviceDesc": "WireGuard trafikinin yönləndiriləcəyi Ethernet cihazı", + "routingTable": "Marşrutlaşdırma cədvəli", + "routingTableDesc": "WireGuard marşrutları üçün marşrutlaşdırma cədvəli. auto, off və ya cədvəl nömrəsi təyin edin.", + "mtuDesc": "WireGuard-ın istifadə edəcəyi MTU", + "portDesc": "WireGuard-ın dinləyəcəyi UDP portu (konfiqurasiya portunu da dəyişdirməyiniz lazım ola bilər)", + "changeCidr": "CIDR dəyişdir", + "restart": "İnterfeysi yenidən başlat", + "restartDesc": "WireGuard interfeysini yenidən başladın", + "restartWarn": "İnterfeysi yenidən başlatmaq istədiyinizə əminsiniz? Bu, bütün müştərilərin qoşulmasını kəsəcək.", + "restartSuccess": "İnterfeys yenidən başladıldı", + "firewall": "Trafikin filtrlənməsi", + "firewallEnabled": "Hər müştəri üçün firewall aktivləşdir", + "firewallEnabledDesc": "iptables vasitəsilə müştəri trafikini müəyyən təyinat IP-ləri ilə məhdudlaşdırın. Aktiv olduqda hər müştəri üçün icazə verilən təyinat ünvanları konfiqurasiya edilə bilər." + }, + "introText": "İdarəetmə panelinə xoş gəlmisiniz.\n\nBurada ümumi parametrləri, konfiqurasiyanı, interfeys parametrlərini və hook-ları idarə edə bilərsiniz.\n\nBaşlamaq üçün yan paneldəki bölmələrdən birini seçin." + }, + "zod": { + "generic": { + "required": "{field} tələb olunur", + "validNumber": "{field} etibarlı ədəd olmalıdır", + "validNumberRange": "{field} etibarlı ədəd və ya ədəd aralığı olmalıdır", + "validString": "{field} etibarlı mətn sətri olmalıdır", + "validBoolean": "{field} etibarlı məntiqi dəyər olmalıdır", + "validArray": "{field} etibarlı massiv olmalıdır", + "stringMin": "{field} ən azı {min} simvoldan ibarət olmalıdır", + "stringMax": "{field} ən çoxu {max} simvoldan ibarət olmalıdır", + "numberMin": "{field} ən azı {min} olmalıdır", + "numberMax": "{field} ən çoxu {max} olmalıdır" + }, + "client": { + "id": "Müştəri ID-si", + "name": "Ad", + "expiresAt": "Bitmə vaxtı", + "address4": "IPv4 ünvanı", + "address6": "IPv6 ünvanı", + "serverAllowedIps": "Serverdə icazə verilən IP-lər", + "firewallIps": "Firewall üçün icazə verilən IP-lər", + "firewallIpsInvalid": "Firewall IP qeydi etibarsızdır. Dəstəklənən sintaksis üçün sənədlərə baxın." + }, + "user": { + "username": "İstifadəçi adı", + "password": "Parol", + "remember": "Xatırla", + "name": "Ad", + "email": "E-poçt", + "emailInvalid": "E-poçt ünvanı etibarlı olmalıdır", + "passwordMatch": "Parollar uyğun gəlməlidir", + "totpEnable": "TOTP aktivləşdir", + "totpEnableTrue": "TOTP aktivləşdir seçimi aktiv olmalıdır", + "totpCode": "TOTP kodu" + }, + "userConfig": { + "host": "Host" + }, + "general": { + "sessionTimeout": "Sessiya vaxtı bitməsi", + "metricsEnabled": "Metrikalar", + "metricsPassword": "Metrika parolu" + }, + "interface": { + "cidr": "CIDR", + "device": "Cihaz", + "cidrValid": "CIDR etibarlı olmalıdır", + "routingTable": "Marşrutlaşdırma cədvəli auto, off və ya cədvəl nömrəsi olmalıdır", + "headerProtectionJunkSize": "Başlığı qoruma açarı təyin edildikdə S1-S4 saxta məlumat ölçüləri ən azı 12 olmalıdır" + }, + "otl": "Birdəfəlik keçid", + "stringMalformed": "Mətn sətrinin formatı yanlışdır", + "keyMalformed": "Açar base64 ilə kodlaşdırılmış 32 baytlıq açar olmalıdır", + "body": "Sorğunun gövdəsi etibarlı obyekt olmalıdır", + "hook": "Hook", + "enabled": "Aktivdir", + "mtu": "MTU", + "port": "Port", + "persistentKeepalive": "Daimi keepalive", + "address": "IP ünvanı", + "dns": "DNS", + "allowedIps": "İcazə verilən IP-lər", + "file": "Fayl" + }, + "hooks": { + "preUp": "PreUp", + "postUp": "PostUp", + "preDown": "PreDown", + "postDown": "PostDown" + }, + "copy": { + "notSupported": "Kopyalama dəstəklənmir", + "copied": "Kopyalandı!", + "failed": "Kopyalama alınmadı", + "copy": "Kopyala" + }, + "awg": { + "jCLabel": "Saxta paketlərin sayı (Jc)", + "jCDescription": "Göndəriləcək saxta paketlərin sayı (1-128, tövsiyə olunur: 4-12)", + "jMinLabel": "Saxta paketlərin minimum ölçüsü (Jmin)", + "jMinDescription": "Saxta paketlərin minimum ölçüsü (0-1279*, tövsiyə olunur: 8, < Jmax olmalıdır)", + "jMaxLabel": "Saxta paketlərin maksimum ölçüsü (Jmax)", + "jMaxDescription": "Saxta paketlərin maksimum ölçüsü (1-1280*, tövsiyə olunur: 80, > Jmin olmalıdır)", + "s1Label": "Başlatma paketindəki saxta məlumatların ölçüsü (S1)", + "s1Description": "Başlatma paketindəki saxta məlumatların ölçüsü (0-1132[1280* - 148 = 1132], tövsiyə olunur: 15-150, S1+56 ≠ S2)", + "s2Label": "Cavab paketindəki saxta məlumatların ölçüsü (S2)", + "s2Description": "Cavab paketindəki saxta məlumatların ölçüsü (0-1188[1280* - 92 = 1188], tövsiyə olunur: 15-150)", + "s3Label": "Kuki cavab paketindəki saxta məlumatların ölçüsü (S3)", + "s3Description": "Kuki cavab paketindəki saxta məlumatların ölçüsü", + "s4Label": "Nəql paketindəki saxta məlumatların ölçüsü (S4)", + "s4Description": "Nəql paketindəki saxta məlumatların ölçüsü", + "h1Label": "Başlatma paketinin xüsusi başlığı (H1)", + "h1Description": "Başlatma paketinin başlıq dəyəri və ya aralığı (X və ya X-Y, burada X", + "i2Label": "Xüsusi saxta paket 2 (I2)", + "i2Description": "Protokolu təqlid edən paket, onaltılıq formatda: ", + "i3Label": "Xüsusi saxta paket 3 (I3)", + "i3Description": "Protokolu təqlid edən paket, onaltılıq formatda: ", + "i4Label": "Xüsusi saxta paket 4 (I4)", + "i4Description": "Protokolu təqlid edən paket, onaltılıq formatda: ", + "i5Label": "Xüsusi saxta paket 5 (I5)", + "i5Description": "Protokolu təqlid edən paket, onaltılıq formatda: ", + "rangeNote": "Aşağıdakı parametrlər tək ədəd və ya sərhəd dəyərləri daxil olan aralıq (0-65535) qəbul edir, məsələn, 30 və ya 30-90", + "headerProtectionKeyLabel": "Başlığı qoruma açarı", + "headerProtectionKeyDescription": "Paket başlıqlarını şifrələmək üçün istifadə olunan 32 baytlıq base64 açarı. Hər iki tərəfdə eyni olmalıdır, buna görə hər müştəriyə kopyalanır. S1-S4 ölçülərinin ən azı 12 olmasını tələb edir", + "contentPaddingAdditionLabel": "Məzmun üçün doldurma baytlarının əlavə edilməsi", + "contentPaddingAdditionDescription": "Şifrələmədən əvvəl nəql paketlərinin sonuna əlavə olunan təsadüfi sayda bayt", + "rekeyAfterTimeLabel": "Açarın yenilənməsinə qədər müddət", + "rekeyAfterTimeDescription": "Sessiyanın yenidən razılaşdırılmasına qədər saniyə sayı (WireGuard standartı: 120)", + "rekeyTimeoutLabel": "Açarın yenilənməsi üçün gözləmə müddəti", + "rekeyTimeoutDescription": "Əl sıxma üçün yenidən cəhdlər arasındakı saniyə sayı (WireGuard standartı: 5)", + "rejectAfterTimeLabel": "Rədd edilməyə qədər müddət", + "rejectAfterTimeDescription": "Sessiyanın saniyə ilə ömrü (WireGuard standartı: 180)", + "keepaliveTimeoutLabel": "Keepalive üçün gözləmə müddəti", + "keepaliveTimeoutDescription": "Keepalive göndərilməsinə qədər fəaliyyətsiz keçən saniyə sayı (WireGuard standartı: 10)", + "maxHandshakeAttemptsLabel": "Əl sıxma cəhdlərinin maksimum sayı", + "maxHandshakeAttemptsDescription": "İmtina edilənə qədər əl sıxma cəhdlərinin sayı (WireGuard standartı: 18)", + "randomTrailersLabel": "Təsadüfi sonluqlar", + "randomTrailersDescription": "Əl sıxma paketlərinin sonuna təsadüfi sayda bayt əlavə edir. Hər iki tərəfdə eyni olmalıdır, buna görə hər müştəriyə kopyalanır", + "disableCookiesLabel": "Kukiləri söndür", + "disableCookiesDescription": "Yük altında olduqda əl sıxmalara kuki mesajları ilə cavab vermir. Yalnız tunelin bu tərəfinə təsir edir", + "mtuNote": "Dəyərlər MTU-dan asılıdır", + "obfuscationParameters": "AmneziaWG gizlətmə parametrləri" + } +} diff --git a/src/nuxt.config.ts b/src/nuxt.config.ts index 96d1753a..99f77568 100644 --- a/src/nuxt.config.ts +++ b/src/nuxt.config.ts @@ -153,6 +153,11 @@ export default defineNuxtConfig({ language: 'sv-SE', name: 'Svenska', }, + { + code: 'az', + language: 'az-AZ', + name: 'Azərbaycan', + }, ], defaultLocale: 'en', vueI18n: './i18n.config.ts', From b627b45139efd98e74870b7456108c713dea4575 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2026 18:52:48 +0200 Subject: [PATCH 14/31] Update npm-non-major (#2812) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- src/package.json | 36 +-- src/pnpm-lock.yaml | 680 ++++++++++++++++++++++++--------------------- 2 files changed, 381 insertions(+), 335 deletions(-) diff --git a/src/package.json b/src/package.json index f7f66cbd..390952c3 100644 --- a/src/package.json +++ b/src/package.json @@ -23,18 +23,18 @@ }, "dependencies": { "@heroicons/vue": "^2.2.0", - "@libsql/client": "^0.17.4", + "@libsql/client": "^0.18.0", "@nuxtjs/color-mode": "^4.0.1", "@nuxtjs/i18n": "^10.6.0", "@nuxtjs/tailwindcss": "^6.14.0", "@phc/format": "^1.0.0", - "@pinia/nuxt": "^1.0.1", + "@pinia/nuxt": "^1.0.2", "@tailwindcss/forms": "^0.5.11", "@vueuse/core": "^14.4.0", "@vueuse/nuxt": "^14.4.0", - "apexcharts": "^6.8.0", + "apexcharts": "^6.10.0", "argon2": "^0.45.1", - "cidr-tools": "^13.0.0", + "cidr-tools": "^13.0.1", "citty": "^0.2.2", "consola": "^3.4.2", "crc-32": "^1.2.2", @@ -44,35 +44,35 @@ "is-ip": "^5.0.1", "js-sha256": "^1.0.0", "nuxt": "^4.5.2", - "obug": "^2.1.4", - "openid-client": "^6.8.4", - "otpauth": "^9.5.1", - "pinia": "^4.0.2", - "qr": "^0.6.0", - "reka-ui": "^2.10.3", + "obug": "^2.2.1", + "openid-client": "^6.8.8", + "otpauth": "^9.5.2", + "pinia": "^4.0.3", + "qr": "^0.7.0", + "reka-ui": "^2.10.4", "semver": "^7.8.5", "tailwindcss": "^3.4.19", "vue": "latest", "vue3-apexcharts": "^1.11.1", - "zod": "^4.4.3" + "zod": "^4.6.4" }, "devDependencies": { "@nuxt/eslint": "^1.17.0", - "@nuxt/test-utils": "^4.1.0", + "@nuxt/test-utils": "^4.3.2", "@types/phc__format": "^1.0.1", "@types/semver": "^7.8.0", - "@vitest/coverage-v8": "^4.1.10", - "@vitest/ui": "^4.1.10", + "@vitest/coverage-v8": "^4.1.11", + "@vitest/ui": "^4.1.11", "drizzle-kit": "^0.31.10", "esbuild": "^0.28.2", - "eslint": "^10.8.1", + "eslint": "^10.10.0", "eslint-config-prettier": "^10.1.8", "prettier": "^3.9.6", "prettier-plugin-tailwindcss": "^0.8.1", - "tsx": "^4.23.12", + "tsx": "^4.23.13", "typescript": "^6.0.3", - "vitest": "^4.1.10", - "vue-tsc": "^3.3.9" + "vitest": "^4.1.11", + "vue-tsc": "^3.3.11" }, "packageManager": "pnpm@12.4.1" } diff --git a/src/pnpm-lock.yaml b/src/pnpm-lock.yaml index 3968c1a0..c32e8046 100644 --- a/src/pnpm-lock.yaml +++ b/src/pnpm-lock.yaml @@ -170,14 +170,14 @@ importers: specifier: ^2.2.0 version: 2.2.0(vue@3.5.42(typescript@6.0.3)) '@libsql/client': - specifier: ^0.17.4 - version: 0.17.4 + specifier: ^0.18.0 + version: 0.18.0 '@nuxtjs/color-mode': specifier: ^4.0.1 - version: 4.0.1(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + version: 4.0.1(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@nuxtjs/i18n': specifier: ^10.6.0 - version: 10.6.0(@vue/compiler-dom@3.5.42)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + version: 10.6.0(@vue/compiler-dom@3.5.42)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) '@nuxtjs/tailwindcss': specifier: ^6.14.0 version: 6.14.0(magicast@0.5.4)(supports-color@10.2.2)(tsx@4.23.13)(yaml@2.9.0) @@ -185,8 +185,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 '@pinia/nuxt': - specifier: ^1.0.1 - version: 1.0.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + specifier: ^1.0.2 + version: 1.0.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@tailwindcss/forms': specifier: ^0.5.11 version: 0.5.11(tailwindcss@3.4.19(tsx@4.23.13)(yaml@2.9.0)) @@ -195,15 +195,15 @@ importers: version: 14.4.0(vue@3.5.42(typescript@6.0.3)) '@vueuse/nuxt': specifier: ^14.4.0 - version: 14.4.0(c7a15abfadeb1c2d705bc86835ad7621) + version: 14.4.0(de6da0bafaae4e26bff4942e9a767283) apexcharts: - specifier: ^6.8.0 + specifier: ^6.10.0 version: 6.10.0 argon2: specifier: ^0.45.1 version: 0.45.1 cidr-tools: - specifier: ^13.0.0 + specifier: ^13.0.1 version: 13.0.1 citty: specifier: ^0.2.2 @@ -216,7 +216,7 @@ importers: version: 1.2.2 drizzle-orm: specifier: ^0.45.2 - version: 0.45.2(@libsql/client@0.17.4) + version: 0.45.2(@libsql/client@0.18.0) ip-bigint: specifier: ^9.0.8 version: 9.0.8 @@ -231,24 +231,24 @@ importers: version: 1.0.0 nuxt: specifier: ^4.5.2 - version: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) + version: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) obug: - specifier: ^2.1.4 - version: 2.1.4 + specifier: ^2.2.1 + version: 2.2.1 openid-client: - specifier: ^6.8.4 + specifier: ^6.8.8 version: 6.8.8 otpauth: - specifier: ^9.5.1 + specifier: ^9.5.2 version: 9.5.2 pinia: - specifier: ^4.0.2 + specifier: ^4.0.3 version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) qr: - specifier: ^0.6.0 - version: 0.6.0 + specifier: ^0.7.0 + version: 0.7.0 reka-ui: - specifier: ^2.10.3 + specifier: ^2.10.4 version: 2.10.4(vue@3.5.42(typescript@6.0.3)) semver: specifier: ^7.8.5 @@ -263,15 +263,15 @@ importers: specifier: ^1.11.1 version: 1.11.1(apexcharts@6.10.0)(vue@3.5.42(typescript@6.0.3)) zod: - specifier: ^4.4.3 - version: 4.5.4 + specifier: ^4.6.4 + version: 4.6.5 devDependencies: '@nuxt/eslint': specifier: ^1.17.0 - version: 1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + version: 1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@nuxt/test-utils': - specifier: ^4.1.0 - version: 4.2.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) + specifier: ^4.3.2 + version: 4.3.2(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) '@types/phc__format': specifier: ^1.0.1 version: 1.0.1 @@ -279,10 +279,10 @@ importers: specifier: ^7.8.0 version: 7.8.0 '@vitest/coverage-v8': - specifier: ^4.1.10 + specifier: ^4.1.11 version: 4.1.11(vitest@4.1.11) '@vitest/ui': - specifier: ^4.1.10 + specifier: ^4.1.11 version: 4.1.11(vitest@4.1.11) drizzle-kit: specifier: ^0.31.10 @@ -291,11 +291,11 @@ importers: specifier: ^0.28.2 version: 0.28.2 eslint: - specifier: ^10.8.1 - version: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + specifier: ^10.10.0 + version: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + version: 10.1.8(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) prettier: specifier: ^3.9.6 version: 3.9.6 @@ -303,16 +303,16 @@ importers: specifier: ^0.8.1 version: 0.8.1(prettier@3.9.6) tsx: - specifier: ^4.23.12 + specifier: ^4.23.13 version: 4.23.13 typescript: specifier: ^6.0.3 version: 6.0.3 vitest: - specifier: ^4.1.10 - version: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + specifier: ^4.1.11 + version: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) vue-tsc: - specifier: ^3.3.9 + specifier: ^3.3.11 version: 3.3.11(typescript@6.0.3) packages: @@ -1223,11 +1223,11 @@ packages: '@kwsites/promise-deferred@1.1.1': resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} - '@libsql/client@0.17.4': - resolution: {integrity: sha512-lYayFWasDV78A+TjlEhr6ubb3odBV6OHjb+wdp8VQcyWWAEIjuwbCHaraEUS4m4yWoo0BvZo96It4VdzZRmRWw==} + '@libsql/client@0.18.0': + resolution: {integrity: sha512-zMCCo58vv7w27j7+cnt/GW+X6/Rih6cHZ86PKi0AxCMOqMfrVgG9OZ5lW2bDMJhSeOjsv2szH2nJF3A9l36UmA==} - '@libsql/core@0.17.4': - resolution: {integrity: sha512-LqF9gIvnJ38nmAH1y/ChizHqDO/MO1wLgA96XrraulEEbqXxLjleSH92YWTolbuJKgPUmGu4aJk9W3UnAcxLOQ==} + '@libsql/core@0.18.0': + resolution: {integrity: sha512-N8RR2CIpcgtbKZnXs2KVpw2lJQfinUj3I56e7qRDRpK18Hty0Rr8nr00VmFb4R/DsqOanPB/TaP3+QAQLZeXMg==} '@libsql/darwin-arm64@0.5.29': resolution: {integrity: sha512-K+2RIB1OGFPYQbfay48GakLhqf3ArcbHqPFu7EZiaUcRgFcdw8RoltsMyvbj5ix2fY0HV3Q3Ioa/ByvQdaSM0A==} @@ -1468,6 +1468,45 @@ packages: vitest: optional: true + '@nuxt/test-utils@4.3.2': + resolution: {integrity: sha512-RgBgYN/CyJYWdHzGA8+bznK7bfqpdCUTkA6WGylYuSdt51l6w/jbz/2PyGuGqFkta4H7KQifWNIeFVjW5x66tg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@cucumber/cucumber': '>=11.0.0' + '@jest/globals': '>=30.0.0' + '@playwright/test': ^1.43.1 + '@testing-library/vue': ^8.0.1 + '@vitest/ui': '*' + '@vue/test-utils': ^2.4.2 + h3-next: '>=2.0.1-rc.22' + happy-dom: '>=20.0.11' + jsdom: '>=27.4.0' + playwright-core: ^1.43.1 + vitest: ^4.0.2 || ^5.0.0 + peerDependenciesMeta: + '@cucumber/cucumber': + optional: true + '@jest/globals': + optional: true + '@playwright/test': + optional: true + '@testing-library/vue': + optional: true + '@vitest/ui': + optional: true + '@vue/test-utils': + optional: true + h3-next: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright-core: + optional: true + vitest: + optional: true + '@nuxt/vite-builder@4.5.2': resolution: {integrity: sha512-fC8KUs5F1VpSEjTIjmx5pdflciMlp3FDCubx3AXElvRPLtBAPmyB69kmqVFjRnVQ8+vRHNyI7iBHUg9Se8srLA==} engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} @@ -4573,8 +4612,8 @@ packages: object-identity@0.2.3: resolution: {integrity: sha512-2J8Joz2Tf7aaylhqFvIUJHNgpuGR38Hh75Voq9GzTbStBxJUaOtN0K1aOd3cV5qp+ij1pMqRbPrGCGMOyX303w==} - obug@2.1.4: - resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} + obug@2.2.1: + resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==} engines: {node: '>=12.20.0'} ofetch@1.5.1: @@ -5080,8 +5119,8 @@ packages: resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} engines: {node: '>=20'} - qr@0.6.0: - resolution: {integrity: sha512-P23VoX7SipHALdiIYG+D+LT/6n22dNKwV92FAb3d+Nlki/5WisSsfLt0UDFz2XEBtuwrECTznvu+chKKFCSYhA==} + qr@0.7.0: + resolution: {integrity: sha512-/VrrACmOAwZVipuRITwfEwOL5oAMEHH5PTmBWaGtlTom2Thxaa+rhmna4zU9PRN2uLw2wdccbkHOLGZb1Q9SdA==} engines: {node: '>= 20.19.0'} quansync@0.2.11: @@ -6165,8 +6204,8 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zod@4.5.4: - resolution: {integrity: sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==} + zod@4.6.5: + resolution: {integrity: sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==} snapshots: @@ -6394,17 +6433,17 @@ snapshots: '@drizzle-team/brocli@0.10.2': {} - '@dxup/nuxt@0.5.10(esbuild@0.28.2)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': + '@dxup/nuxt@0.5.10(esbuild@0.28.2)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: '@dxup/unimport': 0.1.2 - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@vue/compiler-dom': 3.5.42 chokidar: 5.0.0 knitwork: 1.3.0 magic-string: 1.2.3 pathe: 2.0.3 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -6696,18 +6735,18 @@ snapshots: '@esbuild/win32-x64@0.28.2': optional: true - '@eslint-community/eslint-utils@4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))': + '@eslint-community/eslint-utils@4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))': dependencies: - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/compat@2.1.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))': + '@eslint/compat@2.1.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))': dependencies: '@eslint/core': 1.2.1 optionalDependencies: - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) '@eslint/config-array@0.23.5(supports-color@10.2.2)': dependencies: @@ -6725,13 +6764,13 @@ snapshots: dependencies: '@eslint/core': 1.2.1 - '@eslint/config-inspector@3.4.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(srvx@0.11.22)': + '@eslint/config-inspector@3.4.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(srvx@0.11.22)': dependencies: ansis: 4.3.1 cac: 7.0.0 chokidar: 5.0.0 devframe: 0.9.12(cac@7.0.0)(srvx@0.11.22) - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) jiti: 2.7.0 tinyglobby: 0.2.17 transitivePeerDependencies: @@ -6748,9 +6787,9 @@ snapshots: mdn-data: 2.34.0 source-map-js: 1.2.1 - '@eslint/js@10.0.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))': + '@eslint/js@10.0.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))': optionalDependencies: - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) '@eslint/object-schema@3.0.5': {} @@ -6849,9 +6888,9 @@ snapshots: '@intlify/shared@11.4.10': {} - '@intlify/unplugin-vue-i18n@11.2.5(@vue/compiler-dom@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3))': + '@intlify/unplugin-vue-i18n@11.2.5(@vue/compiler-dom@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3))': dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) '@intlify/bundle-utils': 11.2.5(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3))) '@intlify/shared': 11.4.10 '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.4.10)(@vue/compiler-dom@3.5.42)(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) @@ -6865,7 +6904,7 @@ snapshots: unplugin: 2.3.11 vue: 3.5.42(typescript@6.0.3) optionalDependencies: - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vue-i18n: 11.4.10(vue@3.5.42(typescript@6.0.3)) transitivePeerDependencies: - '@vue/compiler-dom' @@ -6952,9 +6991,9 @@ snapshots: '@kwsites/promise-deferred@1.1.1': {} - '@libsql/client@0.17.4': + '@libsql/client@0.18.0': dependencies: - '@libsql/core': 0.17.4 + '@libsql/core': 0.18.0 '@libsql/hrana-client': 0.10.0 js-base64: 3.9.3 libsql: 0.5.29 @@ -6963,7 +7002,7 @@ snapshots: - bufferutil - utf-8-validate - '@libsql/core@0.17.4': + '@libsql/core@0.18.0': dependencies: js-base64: 3.9.3 @@ -7031,12 +7070,12 @@ snapshots: '@modelcontextprotocol/core@2.0.0': dependencies: - zod: 4.5.4 + zod: 4.6.5 '@modelcontextprotocol/server@2.0.0': dependencies: '@modelcontextprotocol/core': 2.0.0 - zod: 4.5.4 + zod: 4.6.5 '@napi-rs/lzma-linux-x64-gnu@1.5.1': optional: true @@ -7112,19 +7151,19 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@2.7.0(magicast@0.5.4)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': + '@nuxt/devtools-kit@2.7.0(magicast@0.5.4)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: '@nuxt/kit': 3.21.11(magicast@0.5.4) execa: 8.0.1 - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - magicast - '@nuxt/devtools-kit@3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': + '@nuxt/devtools-kit@3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) execa: 8.0.1 - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - magic-string - magicast @@ -7143,11 +7182,11 @@ snapshots: pkg-types: 2.3.2 semver: 7.8.5 - '@nuxt/devtools@3.4.2(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@nuxt/devtools@3.4.2(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: - '@nuxt/devtools-kit': 3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + '@nuxt/devtools-kit': 3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@nuxt/devtools-wizard': 3.4.2 - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@vue/devtools-core': 8.2.1(vue@3.5.42(typescript@6.0.3)) '@vue/devtools-kit': 8.2.1 birpc: 4.2.0 @@ -7173,10 +7212,10 @@ snapshots: sirv: 3.0.2 structured-clone-es: 2.0.1 tinyglobby: 0.2.17 - unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) - vite-plugin-inspect: 11.4.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - vite-plugin-vue-tracer: 1.5.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2)) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite-plugin-inspect: 11.4.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vite-plugin-vue-tracer: 1.5.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) which: 6.0.1 ws: 8.21.3 transitivePeerDependencies: @@ -7208,30 +7247,30 @@ snapshots: - utf-8-validate - vue - '@nuxt/eslint-config@1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@nuxt/eslint-config@1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@antfu/install-pkg': 2.0.1 '@clack/prompts': 1.7.0 - '@eslint/js': 10.0.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) - '@nuxt/eslint-plugin': 1.17.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@stylistic/eslint-plugin': 5.10.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) - '@typescript-eslint/eslint-plugin': 8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) - eslint-config-flat-gitignore: 2.4.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint/js': 10.0.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) + '@nuxt/eslint-plugin': 1.17.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@stylistic/eslint-plugin': 5.10.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) + '@typescript-eslint/eslint-plugin': 8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) + eslint-config-flat-gitignore: 2.4.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) eslint-flat-config-utils: 3.2.0 - eslint-merge-processors: 2.0.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) - eslint-plugin-import-lite: 0.6.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) - eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) - eslint-plugin-jsdoc: 63.3.3(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) - eslint-plugin-regexp: 3.3.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) - eslint-plugin-unicorn: 73.0.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) - eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)))(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(vue-eslint-parser@10.4.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + eslint-merge-processors: 2.0.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) + eslint-plugin-import-lite: 0.6.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) + eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2) + eslint-plugin-jsdoc: 63.3.3(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2) + eslint-plugin-regexp: 3.3.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) + eslint-plugin-unicorn: 73.0.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) + eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)))(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(vue-eslint-parser@10.4.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) globals: 17.12.0 local-pkg: 1.2.1 pathe: 2.0.3 - vue-eslint-parser: 10.4.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) + vue-eslint-parser: 10.4.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2) transitivePeerDependencies: - '@typescript-eslint/utils' - '@vue/compiler-sfc' @@ -7239,31 +7278,31 @@ snapshots: - supports-color - typescript - '@nuxt/eslint-plugin@1.17.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@nuxt/eslint-plugin@1.17.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.69.0 - '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) transitivePeerDependencies: - supports-color - typescript - '@nuxt/eslint@1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': + '@nuxt/eslint@1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: - '@eslint/config-inspector': 3.4.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(srvx@0.11.22) - '@nuxt/devtools-kit': 3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - '@nuxt/eslint-config': 1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@nuxt/eslint-plugin': 1.17.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@eslint/config-inspector': 3.4.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(srvx@0.11.22) + '@nuxt/devtools-kit': 3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + '@nuxt/eslint-config': 1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@nuxt/eslint-plugin': 1.17.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) chokidar: 5.0.0 - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) eslint-flat-config-utils: 3.2.0 - eslint-typegen: 2.3.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + eslint-typegen: 2.3.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) find-up: 8.0.0 get-port-please: 3.2.0 mlly: 1.8.2 pathe: 2.0.3 - unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) transitivePeerDependencies: - '@farmfe/core' - '@modelcontextprotocol/client' @@ -7314,7 +7353,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/kit@4.5.2(magic-string@0.30.21)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': + '@nuxt/kit@4.5.2(magic-string@0.30.21)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': dependencies: c12: 3.3.4(magicast@0.5.4) consola: 3.4.2 @@ -7334,7 +7373,7 @@ snapshots: scule: 1.3.0 tinyglobby: 0.2.17 ufo: 1.6.4 - unctx: 3.0.1(magic-string@0.30.21)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + unctx: 3.0.1(magic-string@0.30.21)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) untyped: 2.0.0 verkit: 0.3.2 transitivePeerDependencies: @@ -7344,7 +7383,7 @@ snapshots: - rolldown - unplugin - '@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': + '@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': dependencies: c12: 3.3.4(magicast@0.5.4) consola: 3.4.2 @@ -7364,7 +7403,7 @@ snapshots: scule: 1.3.0 tinyglobby: 0.2.17 ufo: 1.6.4 - unctx: 3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + unctx: 3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) untyped: 2.0.0 verkit: 0.3.2 transitivePeerDependencies: @@ -7374,11 +7413,11 @@ snapshots: - rolldown - unplugin - '@nuxt/nitro-server@4.5.2(61e2c4bc2a6f11e79c527691f89dc743)': + '@nuxt/nitro-server@4.5.2(0686c853727f9ff21a16cd78c1fd8c39)': dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - '@unhead/vue': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@unhead/vue': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) '@vue/shared': 3.5.42 consola: 3.4.2 defu: 6.1.7 @@ -7388,20 +7427,20 @@ snapshots: escape-string-regexp: 5.0.0 exsolve: 1.1.1 h3: 1.15.11 - impound: 1.2.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + impound: 1.2.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4))(oxc-parser@0.141.0)(rolldown@1.2.7)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + nitropack: 2.13.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0))(oxc-parser@0.141.0)(rolldown@1.2.7)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) nostics: 1.2.0 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) nypm: 0.6.9 ohash: 2.0.12 pathe: 2.0.3 rou3: 0.9.2 std-env: 4.2.0 ufo: 1.6.4 - unctx: 3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) + unctx: 3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2)) vue: 3.5.42(typescript@6.0.3) vue-bundle-renderer: 2.3.2 vue-devtools-stub: 0.1.0 @@ -7469,18 +7508,18 @@ snapshots: pkg-types: 2.3.2 std-env: 4.2.0 - '@nuxt/telemetry@2.9.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))))': + '@nuxt/telemetry@2.9.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))))': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) citty: 0.2.2 consola: 3.4.2 rc9: 3.1.0 std-env: 4.2.0 - '@nuxt/test-utils@4.2.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11)': + '@nuxt/test-utils@4.2.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11)': dependencies: '@clack/prompts': 1.7.0 - '@nuxt/devtools-kit': 2.7.0(magicast@0.5.4)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + '@nuxt/devtools-kit': 2.7.0(magicast@0.5.4)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@nuxt/kit': 3.21.11(magicast@0.5.4) c12: 3.3.4(magicast@0.5.4) consola: 3.4.2 @@ -7504,12 +7543,12 @@ snapshots: std-env: 4.2.0 tinyexec: 1.3.1 ufo: 1.6.4 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - vitest-environment-nuxt: 2.0.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vitest-environment-nuxt: 2.0.0 vue: 3.5.42(typescript@6.0.3) optionalDependencies: '@vitest/ui': 4.1.11(vitest@4.1.11) - vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -7523,11 +7562,57 @@ snapshots: - vite - webpack - '@nuxt/vite-builder@4.5.2(b3ea10f4f5f9f4f3a182740a96a3b113)': + '@nuxt/test-utils@4.3.2(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11)': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - '@vitejs/plugin-vue': 6.0.8(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': 5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@clack/prompts': 1.7.0 + '@nuxt/devtools-kit': 2.7.0(magicast@0.5.4)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + '@nuxt/kit': 3.21.11(magicast@0.5.4) + c12: 3.3.4(magicast@0.5.4) + consola: 3.4.2 + defu: 6.1.7 + destr: 2.0.5 + estree-walker: 3.0.3 + exsolve: 1.1.1 + fake-indexeddb: 6.2.5 + get-port-please: 3.2.0 + h3: 1.15.11 + local-pkg: 1.2.1 + magic-string: 1.2.3 + node-fetch-native: 1.6.7 + node-mock-http: 1.0.5 + nypm: 0.6.9 + ofetch: 1.5.1 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + radix3: 1.1.2 + scule: 1.3.0 + std-env: 4.2.0 + tinyexec: 1.3.1 + ufo: 1.6.4 + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vitest-environment-nuxt: 2.0.0 + vue: 3.5.42(typescript@6.0.3) + optionalDependencies: + '@vitest/ui': 4.1.11(vitest@4.1.11) + vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + transitivePeerDependencies: + - '@farmfe/core' + - '@rspack/core' + - bun-types-no-globals + - esbuild + - magicast + - rolldown + - rollup + - typescript + - unloader + - vite + - webpack + + '@nuxt/vite-builder@4.5.2(f82ad62488b0dbcae9cdd559c2e00645)': + dependencies: + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@vitejs/plugin-vue': 6.0.8(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@vitejs/plugin-vue-jsx': 5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) autoprefixer: 10.5.5(postcss@8.5.28) consola: 3.4.2 cssnano: 8.0.10(postcss@8.5.28) @@ -7541,7 +7626,7 @@ snapshots: knitwork: 1.3.0 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) nypm: 0.6.9 pathe: 2.0.3 pkg-types: 2.3.2 @@ -7551,10 +7636,10 @@ snapshots: std-env: 4.2.0 ufo: 1.6.4 unenv: 2.0.0-rc.24 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vite-node: 6.0.0(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) - vite-plugin-checker: 0.14.5(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(optionator@0.9.4)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3)) + vite-plugin-checker: 0.14.5(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(optionator@0.9.4)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3)) vue: 3.5.42(typescript@6.0.3) vue-bundle-renderer: 2.3.2 optionalDependencies: @@ -7592,9 +7677,9 @@ snapshots: - webpack - yaml - '@nuxtjs/color-mode@4.0.1(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': + '@nuxtjs/color-mode@4.0.1(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) exsolve: 1.1.1 pathe: 2.0.3 pkg-types: 2.3.2 @@ -7606,16 +7691,16 @@ snapshots: - rolldown - unplugin - '@nuxtjs/i18n@10.6.0(@vue/compiler-dom@3.5.42)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@nuxtjs/i18n@10.6.0(@vue/compiler-dom@3.5.42)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: '@intlify/core': 11.4.10 '@intlify/h3': 0.7.4 '@intlify/message-compiler': 11.4.10 '@intlify/shared': 11.4.10 - '@intlify/unplugin-vue-i18n': 11.2.5(@vue/compiler-dom@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) + '@intlify/unplugin-vue-i18n': 11.2.5(@vue/compiler-dom@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) '@intlify/utils': 0.14.1 '@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.63.1) - '@nuxt/kit': 4.5.2(magic-string@0.30.21)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@0.30.21)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@rollup/plugin-yaml': 4.1.2(rollup@4.63.1) '@vue/compiler-sfc': 3.5.42 confbox: 0.2.4 @@ -7631,12 +7716,12 @@ snapshots: oxc-walker: 0.7.0(oxc-parser@0.141.0) pathe: 2.0.3 ufo: 1.6.4 - unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unrouting: 0.2.3 - unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) + unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2)) vue-i18n: 11.4.10(vue@3.5.42(typescript@6.0.3)) - vue-router: 5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + vue-router: 5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7839,9 +7924,9 @@ snapshots: '@phc/format@1.0.0': {} - '@pinia/nuxt@1.0.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': + '@pinia/nuxt@1.0.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) transitivePeerDependencies: - magic-string @@ -8076,11 +8161,11 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@stylistic/eslint-plugin@5.10.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))': + '@stylistic/eslint-plugin@5.10.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))': dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) '@typescript-eslint/types': 8.69.0 - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -8138,15 +8223,15 @@ snapshots: dependencies: '@types/node': 26.4.1 - '@typescript-eslint/eslint-plugin@8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/scope-manager': 8.69.0 - '@typescript-eslint/type-utils': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/type-utils': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.69.0 - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) ignore: 7.0.8 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -8154,14 +8239,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.69.0 '@typescript-eslint/types': 8.69.0 '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.69.0 debug: 4.4.3(supports-color@10.2.2) - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -8184,13 +8269,13 @@ snapshots: dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.69.0 '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3) - '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) debug: 4.4.3(supports-color@10.2.2) - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: @@ -8213,13 +8298,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) '@typescript-eslint/scope-manager': 8.69.0 '@typescript-eslint/types': 8.69.0 '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3) - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -8229,18 +8314,18 @@ snapshots: '@typescript-eslint/types': 8.69.0 eslint-visitor-keys: 5.0.1 - '@unhead/bundler@3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(unhead@3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': + '@unhead/bundler@3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(unhead@3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: magic-string: 1.2.3 oxc-walker: 1.1.1(@oxc-project/types@0.148.0)(oxc-parser@0.141.0)(rolldown@1.2.7) - unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) optionalDependencies: esbuild: 0.28.2 lightningcss: 1.33.0 oxc-parser: 0.141.0 rolldown: 1.2.7 - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@oxc-project/types' @@ -8249,15 +8334,15 @@ snapshots: - rollup - unloader - '@unhead/vue@3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@unhead/vue@3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: - '@unhead/bundler': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(unhead@3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + '@unhead/bundler': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(unhead@3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) hookable: 6.1.1 - unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) vue: 3.5.42(typescript@6.0.3) optionalDependencies: - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@oxc-project/types' @@ -8361,22 +8446,22 @@ snapshots: - rollup - supports-color - '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vue: 3.5.42(typescript@6.0.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.8(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.8(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vue: 3.5.42(typescript@6.0.3) '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': @@ -8388,10 +8473,10 @@ snapshots: istanbul-lib-report: 3.0.1 istanbul-reports: 3.2.0 magicast: 0.5.4 - obug: 2.1.4 + obug: 2.2.1 std-env: 4.2.0 tinyrainbow: 3.1.1 - vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@vitest/expect@4.1.11': dependencies: @@ -8402,13 +8487,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.11(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': + '@vitest/mocker@4.1.11(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.11 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) '@vitest/pretty-format@4.1.11': dependencies: @@ -8437,7 +8522,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@vitest/utils@4.1.11': dependencies: @@ -8592,13 +8677,13 @@ snapshots: '@vueuse/metadata@14.4.0': {} - '@vueuse/nuxt@14.4.0(c7a15abfadeb1c2d705bc86835ad7621)': + '@vueuse/nuxt@14.4.0(de6da0bafaae4e26bff4942e9a767283)': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@vueuse/core': 14.4.0(vue@3.5.42(typescript@6.0.3)) '@vueuse/metadata': 14.4.0 local-pkg: 1.2.1 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) vue: 3.5.42(typescript@6.0.3) transitivePeerDependencies: - magic-string @@ -9113,10 +9198,10 @@ snapshots: csstype@3.2.3: {} - db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)): + db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)): optionalDependencies: - '@libsql/client': 0.17.4 - drizzle-orm: 0.45.2(@libsql/client@0.17.4) + '@libsql/client': 0.18.0 + drizzle-orm: 0.45.2(@libsql/client@0.18.0) debug@3.2.7(supports-color@10.2.2): dependencies: @@ -9221,9 +9306,9 @@ snapshots: esbuild: 0.25.12 tsx: 4.23.13 - drizzle-orm@0.45.2(@libsql/client@0.17.4): + drizzle-orm@0.45.2(@libsql/client@0.18.0): optionalDependencies: - '@libsql/client': 0.17.4 + '@libsql/client': 0.18.0 dunder-proto@1.0.1: dependencies: @@ -9368,14 +9453,14 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-flat-gitignore@2.4.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): + eslint-config-flat-gitignore@2.4.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)): dependencies: - '@eslint/compat': 2.1.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + '@eslint/compat': 2.1.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) - eslint-config-prettier@10.1.8(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): + eslint-config-prettier@10.1.8(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)): dependencies: - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) eslint-flat-config-utils@3.2.0: dependencies: @@ -9389,20 +9474,20 @@ snapshots: optionalDependencies: unrs-resolver: 1.12.2 - eslint-merge-processors@2.0.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): + eslint-merge-processors@2.0.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)): dependencies: - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) - eslint-plugin-import-lite@0.6.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): + eslint-plugin-import-lite@0.6.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)): dependencies: - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) - eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): + eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2): dependencies: '@typescript-eslint/types': 8.69.0 comment-parser: 1.4.8 debug: 4.4.3(supports-color@10.2.2) - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) eslint-import-context: 0.1.9(unrs-resolver@1.12.2) is-glob: 4.0.3 minimatch: 10.2.6 @@ -9410,11 +9495,11 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.12.2 optionalDependencies: - '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@63.3.3(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): + eslint-plugin-jsdoc@63.3.3(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2): dependencies: '@es-joy/jsdoccomment': 0.91.0 '@es-joy/resolve.exports': 1.2.0 @@ -9422,7 +9507,7 @@ snapshots: comment-parser: 1.4.7 debug: 4.4.3(supports-color@10.2.2) escape-string-regexp: 4.0.0 - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) espree: 11.2.0 esquery: 1.7.0 html-entities: 2.6.0 @@ -9434,20 +9519,20 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-regexp@3.3.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): + eslint-plugin-regexp@3.3.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) '@eslint-community/regexpp': 4.12.2 comment-parser: 1.4.8 - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) jsdoc-type-pratt-parser: 9.2.1 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-unicorn@73.0.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): + eslint-plugin-unicorn@73.0.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) '@eslint/css-tree': 4.1.0 browserslist: 4.28.9 change-case: 5.4.4 @@ -9455,7 +9540,7 @@ snapshots: core-js-compat: 3.50.0 detect-indent: 7.0.2 entities: 4.5.0 - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) find-up-simple: 1.0.1 globals: 17.12.0 indent-string: 5.0.0 @@ -9469,24 +9554,24 @@ snapshots: strip-indent: 4.1.1 yaml: 2.9.0 - eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)))(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(vue-eslint-parser@10.4.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)): + eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)))(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(vue-eslint-parser@10.4.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 7.1.6 semver: 7.8.5 - vue-eslint-parser: 10.4.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) + vue-eslint-parser: 10.4.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2) xml-name-validator: 5.0.0 optionalDependencies: - '@stylistic/eslint-plugin': 5.10.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) - '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@stylistic/eslint-plugin': 5.10.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) + '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)): dependencies: '@vue/compiler-sfc': 3.5.42 - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) eslint-scope@9.1.2: dependencies: @@ -9495,9 +9580,9 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-typegen@2.3.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)): + eslint-typegen@2.3.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)): dependencies: - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) json-schema-to-typescript-lite: 15.0.0 ohash: 2.0.12 @@ -9507,9 +9592,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2): + eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5(supports-color@10.2.2) '@eslint/config-helpers': 0.7.0 @@ -9540,7 +9625,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 1.21.7 + jiti: 2.7.0 transitivePeerDependencies: - supports-color @@ -9913,12 +9998,12 @@ snapshots: image-meta@0.2.2: {} - impound@1.2.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): + impound@1.2.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: '@jridgewell/trace-mapping': 0.3.31 es-module-lexer: 2.3.2 pathe: 2.0.3 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unplugin-utils: 0.3.2 transitivePeerDependencies: - '@farmfe/core' @@ -10455,7 +10540,7 @@ snapshots: negotiator@0.6.3: {} - nitropack@2.13.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4))(oxc-parser@0.141.0)(rolldown@1.2.7)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): + nitropack@2.13.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0))(oxc-parser@0.141.0)(rolldown@1.2.7)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@rollup/plugin-alias': 6.0.0(rollup@4.63.1) @@ -10476,7 +10561,7 @@ snapshots: cookie-es: 2.0.1 croner: 10.0.1 crossws: 0.3.5 - db0: 0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)) + db0: 0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)) defu: 6.1.7 destr: 2.0.5 dot-prop: 10.2.0 @@ -10520,9 +10605,9 @@ snapshots: uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unplugin-utils: 0.3.2 - unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)) + unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2)) untyped: 2.0.0 unwasm: 0.5.3 youch: 4.1.1 @@ -10606,17 +10691,17 @@ snapshots: nuxt-define@1.0.0: {} - nuxt@4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.17.4)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(drizzle-orm@0.45.2(@libsql/client@0.17.4))(esbuild@0.28.2)(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0): + nuxt@4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0): dependencies: - '@dxup/nuxt': 0.5.10(esbuild@0.28.2)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + '@dxup/nuxt': 0.5.10(esbuild@0.28.2)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.2)(cac@7.0.0)(magicast@0.5.4)(supports-color@10.2.2) - '@nuxt/devtools': 3.4.2(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - '@nuxt/nitro-server': 4.5.2(61e2c4bc2a6f11e79c527691f89dc743) + '@nuxt/devtools': 3.4.2(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/nitro-server': 4.5.2(0686c853727f9ff21a16cd78c1fd8c39) '@nuxt/schema': 4.5.2 - '@nuxt/telemetry': 2.9.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))) - '@nuxt/vite-builder': 4.5.2(b3ea10f4f5f9f4f3a182740a96a3b113) - '@unhead/vue': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@nuxt/telemetry': 2.9.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))) + '@nuxt/vite-builder': 4.5.2(f82ad62488b0dbcae9cdd559c2e00645) + '@unhead/vue': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) '@vue/shared': 3.5.42 chokidar: 5.0.0 compatx: 0.2.0 @@ -10630,7 +10715,7 @@ snapshots: fnv1a-64: 0.1.2 hookable: 6.1.1 ignore: 7.0.8 - impound: 1.2.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + impound: 1.2.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) jiti: 2.7.0 klona: 2.0.6 knitwork: 1.3.0 @@ -10657,17 +10742,17 @@ snapshots: ufo: 1.6.4 ultrahtml: 1.7.0 uncrypto: 0.1.3 - unctx: 3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + unctx: 3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) undici: 8.10.2 - unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unimport: 6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unrouting: 0.2.3 untyped: 2.0.0 verkit: 0.3.2 vue: 3.5.42(typescript@6.0.3) vue-component-type-helpers: 3.3.11 - vue-router: 5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + vue-router: 5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) optionalDependencies: '@types/node': 26.4.1 transitivePeerDependencies: @@ -10763,7 +10848,7 @@ snapshots: object-identity@0.2.3: {} - obug@2.1.4: {} + obug@2.2.1: {} ofetch@1.5.1: dependencies: @@ -11213,7 +11298,7 @@ snapshots: dependencies: hookified: 2.2.0 - qr@0.6.0: {} + qr@0.7.0: {} quansync@0.2.11: {} @@ -11818,19 +11903,19 @@ snapshots: magic-string: 0.30.21 unplugin: 2.3.11 - unctx@3.0.1(magic-string@0.30.21)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))): + unctx@3.0.1(magic-string@0.30.21)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))): optionalDependencies: magic-string: 0.30.21 oxc-parser: 0.141.0 rolldown: 1.2.7 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - unctx@3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))): + unctx@3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))): optionalDependencies: magic-string: 1.2.3 oxc-parser: 0.141.0 rolldown: 1.2.7 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) undici-types@8.3.0: {} @@ -11840,12 +11925,12 @@ snapshots: dependencies: pathe: 2.0.3 - unhead@3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): + unhead@3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: hookable: 6.1.1 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) optionalDependencies: - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -11860,7 +11945,7 @@ snapshots: unicorn-magic@0.4.0: {} - unimport@6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): + unimport@6.4.0(esbuild@0.28.2)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: acorn: 8.18.0 escape-string-regexp: 5.0.0 @@ -11874,7 +11959,7 @@ snapshots: scule: 1.3.0 strip-literal: 4.0.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unplugin-utils: 0.3.2 optionalDependencies: oxc-parser: 0.141.0 @@ -11903,7 +11988,7 @@ snapshots: picomatch: 4.0.7 webpack-virtual-modules: 0.6.2 - unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): + unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: '@jridgewell/remapping': 2.3.5 picomatch: 4.0.7 @@ -11912,7 +11997,7 @@ snapshots: esbuild: 0.28.2 rolldown: 1.2.7 rollup: 4.63.1 - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) unrouting@0.2.3: dependencies: @@ -11946,7 +12031,7 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 - unstorage@1.17.5(db0@0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)))(ioredis@5.11.1(supports-color@10.2.2)): + unstorage@1.17.5(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2)): dependencies: anymatch: 3.1.3 chokidar: 5.0.0 @@ -11957,7 +12042,7 @@ snapshots: ofetch: 1.5.1 ufo: 1.6.4 optionalDependencies: - db0: 0.3.4(@libsql/client@0.17.4)(drizzle-orm@0.45.2(@libsql/client@0.17.4)) + db0: 0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)) ioredis: 5.11.1(supports-color@10.2.2) untun@0.2.2: {} @@ -11997,21 +12082,21 @@ snapshots: verkit@0.3.2: {} - vite-dev-rpc@2.0.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): + vite-dev-rpc@2.0.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: birpc: 4.2.0 - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) - vite-hot-client: 2.2.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite-hot-client: 2.2.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - vite-hot-client@2.2.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): + vite-hot-client@2.2.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vite-node@6.0.0(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0): dependencies: cac: 7.0.0 es-module-lexer: 2.3.2 - obug: 2.1.4 + obug: 2.2.1 pathe: 2.0.3 vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: @@ -12028,7 +12113,7 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.14.5(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(optionator@0.9.4)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3)): + vite-plugin-checker@0.14.5(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(optionator@0.9.4)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3)): dependencies: '@babel/code-frame': 7.29.7 chokidar: 5.0.0 @@ -12037,54 +12122,38 @@ snapshots: picomatch: 4.0.7 proper-lockfile: 4.1.2 tiny-invariant: 1.3.3 - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) optionalDependencies: - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) optionator: 0.9.4 typescript: 6.0.3 vue-tsc: 3.3.11(typescript@6.0.3) - vite-plugin-inspect@11.4.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): + vite-plugin-inspect@11.4.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: ansis: 4.3.1 error-stack-parser-es: 1.0.5 - obug: 2.1.4 + obug: 2.2.1 ohash: 2.0.12 open: 11.0.2 perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.2 - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) - vite-dev-rpc: 2.0.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite-dev-rpc: 2.0.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) optionalDependencies: - '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - vite-plugin-vue-tracer@1.5.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): + vite-plugin-vue-tracer@1.5.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.1.1 magic-string: 1.2.3 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vue: 3.5.42(typescript@6.0.3) - vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0): - dependencies: - lightningcss: 1.33.0 - picomatch: 4.0.7 - postcss: 8.5.28 - rolldown: 1.2.7 - tinyglobby: 0.2.17 - optionalDependencies: - '@types/node': 26.4.1 - esbuild: 0.28.2 - fsevents: 2.3.3 - jiti: 1.21.7 - terser: 5.51.2 - tsx: 4.23.13 - yaml: 2.9.0 - vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 @@ -12101,37 +12170,14 @@ snapshots: tsx: 4.23.13 yaml: 2.9.0 - vitest-environment-nuxt@2.0.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11): + vitest-environment-nuxt@2.0.0: dependencies: - '@nuxt/test-utils': 4.2.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) - transitivePeerDependencies: - - '@cucumber/cucumber' - - '@farmfe/core' - - '@jest/globals' - - '@playwright/test' - - '@rspack/core' - - '@testing-library/vue' - - '@vitest/ui' - - '@vue/test-utils' - - bun-types-no-globals - - esbuild - - h3-next - - happy-dom - - jsdom - - magicast - - playwright-core - - rolldown - - rollup - - typescript - - unloader - - vite - - vitest - - webpack + '@nuxt/test-utils': 4.2.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) - vitest@4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): + vitest@4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.11 - '@vitest/mocker': 4.1.11(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + '@vitest/mocker': 4.1.11(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.11 '@vitest/runner': 4.1.11 '@vitest/snapshot': 4.1.11 @@ -12140,7 +12186,7 @@ snapshots: es-module-lexer: 2.3.2 expect-type: 1.4.0 magic-string: 0.30.21 - obug: 2.1.4 + obug: 2.2.1 pathe: 2.0.3 picomatch: 4.0.7 std-env: 4.2.0 @@ -12148,7 +12194,7 @@ snapshots: tinyexec: 1.3.1 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 26.4.1 @@ -12171,10 +12217,10 @@ snapshots: vue-devtools-stub@0.1.0: {} - vue-eslint-parser@10.4.1(eslint@10.10.0(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): + vue-eslint-parser@10.4.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2): dependencies: debug: 4.4.3(supports-color@10.2.2) - eslint: 10.10.0(jiti@1.21.7)(supports-color@10.2.2) + eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 espree: 11.2.0 @@ -12191,7 +12237,7 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.42(typescript@6.0.3) - vue-router@5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): + vue-router@5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): dependencies: '@vue-macros/common': 3.1.4(vue@3.5.42(typescript@6.0.3)) '@vue/devtools-api': 8.2.1 @@ -12207,13 +12253,13 @@ snapshots: picomatch: 4.0.7 scule: 1.3.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unplugin-utils: 0.3.2 vue: 3.5.42(typescript@6.0.3) optionalDependencies: '@vue/compiler-sfc': 3.5.42 pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) - vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@1.21.7)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -12361,4 +12407,4 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zod@4.5.4: {} + zod@4.6.5: {} From b6565fe7303cfdc530d42e6446a1726c6417f8f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2026 18:53:04 +0200 Subject: [PATCH 15/31] Update Node.js to 50c8e8c (#2810) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 6 +++--- Dockerfile.dev | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 233e2838..010720f7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/library/node:krypton-alpine@sha256:e67514e5d0f6c46656005e1b693b2ec9d52e80b641307de684d4a015ba7a4eaf AS build +FROM docker.io/library/node:krypton-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 AS build WORKDIR /app # update corepack @@ -29,13 +29,13 @@ RUN apk add linux-headers build-base go git && \ make && \ sed -i 's|\[\[ $proto == -4 \]\] && cmd sysctl -q net\.ipv4\.conf\.all\.src_valid_mark=1|[[ $proto == -4 ]] \&\& [[ $(sysctl -n net.ipv4.conf.all.src_valid_mark) != 1 ]] \&\& cmd sysctl -q net.ipv4.conf.all.src_valid_mark=1|' ./wg-quick/linux.bash -FROM docker.io/library/node:krypton-alpine@sha256:e67514e5d0f6c46656005e1b693b2ec9d52e80b641307de684d4a015ba7a4eaf AS build-libsql +FROM docker.io/library/node:krypton-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 AS build-libsql WORKDIR /app RUN npm install --no-save --omit=dev libsql # Copy build result to a new image. # This saves a lot of disk space. -FROM docker.io/library/node:krypton-alpine@sha256:e67514e5d0f6c46656005e1b693b2ec9d52e80b641307de684d4a015ba7a4eaf +FROM docker.io/library/node:krypton-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 WORKDIR /app HEALTHCHECK --interval=1m --timeout=5s --retries=3 CMD /usr/bin/timeout 5s /bin/sh -c "/usr/bin/wg show | /bin/grep -q interface || exit 1" diff --git a/Dockerfile.dev b/Dockerfile.dev index 66e09c86..2a9127b8 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM docker.io/library/node:krypton-alpine@sha256:e67514e5d0f6c46656005e1b693b2ec9d52e80b641307de684d4a015ba7a4eaf +FROM docker.io/library/node:krypton-alpine@sha256:50c8e8ca1d27439048670df5883f32d57cf81cff6233222c893fd0d9884cbd81 WORKDIR /app ENV PNPM_HOME="/pnpm" From 9336e4f5f40c7878c144e20f5782f4c1dab14232 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2026 18:53:25 +0200 Subject: [PATCH 16/31] Update github-actions-digest (#2809) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/deploy-development.yml | 8 ++++---- .github/workflows/deploy-edge.yml | 8 ++++---- .github/workflows/deploy-pr.yml | 6 +++--- .github/workflows/deploy.yml | 8 ++++---- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 9058f84f..bd68a0b0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -30,14 +30,14 @@ jobs: uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Initialize CodeQL - uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 + uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4 with: languages: ${{ matrix.language }} - name: Autobuild - uses: github/codeql-action/autobuild@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 + uses: github/codeql-action/autobuild@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 + uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4 with: category: "/language:${{matrix.language}}" diff --git a/.github/workflows/deploy-development.yml b/.github/workflows/deploy-development.yml index 22b5c216..a445faac 100644 --- a/.github/workflows/deploy-development.yml +++ b/.github/workflows/deploy-development.yml @@ -45,14 +45,14 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4 + uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 + uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4 - name: Build and push by digest id: build - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 + uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7 with: context: . platforms: ${{ matrix.arch.platform }} @@ -106,7 +106,7 @@ jobs: password: ${{ secrets.CODEBERG_PASS }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 + uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4 - name: Docker meta id: meta diff --git a/.github/workflows/deploy-edge.yml b/.github/workflows/deploy-edge.yml index 9e7fce1f..e3340657 100644 --- a/.github/workflows/deploy-edge.yml +++ b/.github/workflows/deploy-edge.yml @@ -54,14 +54,14 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4 + uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 + uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4 - name: Build and push by digest id: build - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 + uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7 with: context: . platforms: ${{ matrix.arch.platform }} @@ -115,7 +115,7 @@ jobs: password: ${{ secrets.CODEBERG_PASS }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 + uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4 - name: Docker meta id: meta diff --git a/.github/workflows/deploy-pr.yml b/.github/workflows/deploy-pr.yml index 41421ef1..a94eeb26 100644 --- a/.github/workflows/deploy-pr.yml +++ b/.github/workflows/deploy-pr.yml @@ -32,10 +32,10 @@ jobs: echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV - name: Set up QEMU - uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4 + uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 + uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4 - name: Login to GitHub Container Registry uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4 @@ -45,7 +45,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Build Docker Image - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 + uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7 with: context: . push: false diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ef1785e2..f3e7e824 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -53,14 +53,14 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4 + uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 + uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4 - name: Build and push by digest id: build - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 + uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7 with: context: . platforms: ${{ matrix.arch.platform }} @@ -116,7 +116,7 @@ jobs: password: ${{ secrets.CODEBERG_PASS }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 + uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4 - name: Docker meta id: meta From c3c1407af6f79094753a2d11a34504f1b32db64a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2026 19:01:17 +0200 Subject: [PATCH 17/31] Update dependency zensical to v0.0.62 (#2811) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 57dd73aa..eccad788 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,2 +1,2 @@ -zensical==0.0.57 +zensical==0.0.62 git+https://github.com/squidfunk/mike.git From 90515568f556ce7871478e2c9faea3f0113fc59a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2026 19:02:52 +0200 Subject: [PATCH 18/31] Update dependency ip-bigint to v10 (#2814) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- src/package.json | 2 +- src/pnpm-lock.yaml | 10 ++-------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/package.json b/src/package.json index 390952c3..b96b64a6 100644 --- a/src/package.json +++ b/src/package.json @@ -39,7 +39,7 @@ "consola": "^3.4.2", "crc-32": "^1.2.2", "drizzle-orm": "^0.45.2", - "ip-bigint": "^9.0.8", + "ip-bigint": "^10.0.1", "is-cidr": "^7.0.1", "is-ip": "^5.0.1", "js-sha256": "^1.0.0", diff --git a/src/pnpm-lock.yaml b/src/pnpm-lock.yaml index c32e8046..e1cbc12c 100644 --- a/src/pnpm-lock.yaml +++ b/src/pnpm-lock.yaml @@ -218,8 +218,8 @@ importers: specifier: ^0.45.2 version: 0.45.2(@libsql/client@0.18.0) ip-bigint: - specifier: ^9.0.8 - version: 9.0.8 + specifier: ^10.0.1 + version: 10.0.1 is-cidr: specifier: ^7.0.1 version: 7.0.1 @@ -3992,10 +3992,6 @@ packages: resolution: {integrity: sha512-vXJrmSsmlZE7KIwKvBzmGESLqqLV//YbjdMmTFPmhGYhh2wB7K5o7U+qZbzePOGNkdwNdUWdWnjQ6QKKBiSx4w==} engines: {node: '>=22'} - ip-bigint@9.0.8: - resolution: {integrity: sha512-DxVFaACbpbgORsUxhcfD7TOsUgeNmKUcoJDXps/Y3CjTJpfcVfFwNu6sXIL4Y1iI8SqiCOAEKvCtIUWFZx8Qvw==} - engines: {node: '>=22'} - ip-regex@5.0.0: resolution: {integrity: sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -10047,8 +10043,6 @@ snapshots: dependencies: cidr-regex: 7.1.0 - ip-bigint@9.0.8: {} - ip-regex@5.0.0: {} iron-webcrypto@1.2.1: {} From eb748ed8fd5ff7f124ca8104bdc4c976cd200e91 Mon Sep 17 00:00:00 2001 From: Bernd Storath Date: Thu, 24 Sep 2026 12:08:56 +0200 Subject: [PATCH 19/31] add node version, fix nuxtrc --- .node-version | 1 + src/.nuxtrc | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 .node-version diff --git a/.node-version b/.node-version new file mode 100644 index 00000000..941ea486 --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +lts/krypton \ No newline at end of file diff --git a/src/.nuxtrc b/src/.nuxtrc index 0e6b68e6..15c8165f 100644 --- a/src/.nuxtrc +++ b/src/.nuxtrc @@ -1 +1 @@ -setups.@nuxt/test-utils="4.1.0" \ No newline at end of file +setups.@nuxt/test-utils="4.3.2" \ No newline at end of file From 092fc0a1975cdc968dabe2915dda7175b4f5cea3 Mon Sep 17 00:00:00 2001 From: Carlo Alberto Aprigliano <31673755+CarloApri@users.noreply.github.com> Date: Thu, 24 Sep 2026 12:09:44 +0200 Subject: [PATCH 20/31] feat: make the WireGuard interface name configurable (#2826) * add WG_INTERFACE env var * Scope firewall chains per interface --- .../advanced/config/optional-config.md | 10 + docs/content/examples/tutorials/adguard.md | 4 +- docs/content/examples/tutorials/podman-nft.md | 4 +- docs/content/examples/tutorials/routed.md | 8 +- src/cli/clients/qr.ts | 5 +- src/server/api/admin/ip-info.get.ts | 6 +- src/server/api/setup/4.get.ts | 6 +- .../migrations/0009_dusty_prodigy.sql | 5 + .../migrations/meta/0009_snapshot.json | 1144 +++++++++++++++++ .../database/migrations/meta/_journal.json | 7 + .../database/repositories/client/service.ts | 9 +- .../database/repositories/hooks/service.ts | 7 +- .../repositories/interface/service.ts | 13 +- .../repositories/userConfig/service.ts | 11 +- src/server/database/sqlite.ts | 33 +- src/server/utils/config.ts | 3 + src/server/utils/firewall.ts | 71 +- src/server/utils/interfaceName.ts | 21 + src/server/utils/ip.ts | 14 +- src/server/utils/template.ts | 2 + src/test/unit/firewall.spec.ts | 42 +- src/test/unit/interfaceName.spec.ts | 25 + 22 files changed, 1381 insertions(+), 69 deletions(-) create mode 100644 src/server/database/migrations/0009_dusty_prodigy.sql create mode 100644 src/server/database/migrations/meta/0009_snapshot.json create mode 100644 src/server/utils/interfaceName.ts create mode 100644 src/test/unit/interfaceName.spec.ts diff --git a/docs/content/advanced/config/optional-config.md b/docs/content/advanced/config/optional-config.md index 6728d187..dba5be54 100644 --- a/docs/content/advanced/config/optional-config.md +++ b/docs/content/advanced/config/optional-config.md @@ -12,6 +12,7 @@ You can set these environment variables to configure the container. They are not | `DISABLE_IPV6` | `false` | `true` | If IPv6 support should be disabled | | `DISABLE_VERSION_CHECK` | `false` | `true` | If wg-easy should check for new updates | | `TRUSTED_PROXIES` | | `172.18.0.2,fd00:1234::/64` | Proxy IP addresses or CIDRs allowed to forward request metadata | +| `WG_INTERFACE` | `wg0` | `wg1` | Name of the WireGuard interface | ## Trusted Proxies @@ -32,6 +33,15 @@ request protocol remains controlled by `INSECURE`. Invalid addresses prevent wg-easy from starting so that configuration errors are not silently ignored. Restart the container after changing this setting. +## WireGuard Interface + +Set `WG_INTERFACE` to specify a custom interface name, useful if you are running multiple wg-easy instances on the same host with `network_mode: host`: + +```yaml +environment: + - WG_INTERFACE=wg1 +``` + /// note | IPv6 Caveats Disabling IPv6 will disable the creation of the default IPv6 firewall rules and won't add a IPv6 address to the interface and clients. diff --git a/docs/content/examples/tutorials/adguard.md b/docs/content/examples/tutorials/adguard.md index e65054ae..1e8906b3 100644 --- a/docs/content/examples/tutorials/adguard.md +++ b/docs/content/examples/tutorials/adguard.md @@ -127,13 +127,13 @@ networks: **_PostUp_** ```shell - iptables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; ip6tables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; iptables -t nat -A PREROUTING -i wg0 -p udp --dport 53 -j DNAT --to-destination 10.42.42.43; iptables -t nat -A PREROUTING -i wg0 -p tcp --dport 53 -j DNAT --to-destination 10.42.42.43; ip6tables -t nat -A PREROUTING -i wg0 -p udp --dport 53 -j DNAT --to-destination fdcc:ad94:bacf:61a3::2b; ip6tables -t nat -A PREROUTING -i wg0 -p tcp --dport 53 -j DNAT --to-destination fdcc:ad94:bacf:61a3::2b; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -s {{ipv4Cidr}} -o {{device}} -j MASQUERADE; ip6tables -t nat -A POSTROUTING -s {{ipv6Cidr}} -o {{device}} -j MASQUERADE; + iptables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; ip6tables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; iptables -t nat -A PREROUTING -i {{interface}} -p udp --dport 53 -j DNAT --to-destination 10.42.42.43; iptables -t nat -A PREROUTING -i {{interface}} -p tcp --dport 53 -j DNAT --to-destination 10.42.42.43; ip6tables -t nat -A PREROUTING -i {{interface}} -p udp --dport 53 -j DNAT --to-destination fdcc:ad94:bacf:61a3::2b; ip6tables -t nat -A PREROUTING -i {{interface}} -p tcp --dport 53 -j DNAT --to-destination fdcc:ad94:bacf:61a3::2b; iptables -A FORWARD -i {{interface}} -j ACCEPT; iptables -A FORWARD -o {{interface}} -j ACCEPT; ip6tables -A FORWARD -i {{interface}} -j ACCEPT; ip6tables -A FORWARD -o {{interface}} -j ACCEPT; iptables -t nat -A POSTROUTING -s {{ipv4Cidr}} -o {{device}} -j MASQUERADE; ip6tables -t nat -A POSTROUTING -s {{ipv6Cidr}} -o {{device}} -j MASQUERADE; ``` **_PostDown_** ```shell - iptables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT || true; ip6tables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT || true; iptables -t nat -D PREROUTING -i wg0 -p udp --dport 53 -j DNAT --to-destination 10.42.42.43 || true; iptables -t nat -D PREROUTING -i wg0 -p tcp --dport 53 -j DNAT --to-destination 10.42.42.43 || true; ip6tables -t nat -D PREROUTING -i wg0 -p udp --dport 53 -j DNAT --to-destination fdcc:ad94:bacf:61a3::2b || true; ip6tables -t nat -D PREROUTING -i wg0 -p tcp --dport 53 -j DNAT --to-destination fdcc:ad94:bacf:61a3::2b || true; iptables -D FORWARD -i wg0 -j ACCEPT || true; iptables -D FORWARD -o wg0 -j ACCEPT || true; ip6tables -D FORWARD -i wg0 -j ACCEPT || true; ip6tables -D FORWARD -o wg0 -j ACCEPT || true; iptables -t nat -D POSTROUTING -s {{ipv4Cidr}} -o {{device}} -j MASQUERADE || true; ip6tables -t nat -D POSTROUTING -s {{ipv6Cidr}} -o {{device}} -j MASQUERADE || true; + iptables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT || true; ip6tables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT || true; iptables -t nat -D PREROUTING -i {{interface}} -p udp --dport 53 -j DNAT --to-destination 10.42.42.43 || true; iptables -t nat -D PREROUTING -i {{interface}} -p tcp --dport 53 -j DNAT --to-destination 10.42.42.43 || true; ip6tables -t nat -D PREROUTING -i {{interface}} -p udp --dport 53 -j DNAT --to-destination fdcc:ad94:bacf:61a3::2b || true; ip6tables -t nat -D PREROUTING -i {{interface}} -p tcp --dport 53 -j DNAT --to-destination fdcc:ad94:bacf:61a3::2b || true; iptables -D FORWARD -i {{interface}} -j ACCEPT || true; iptables -D FORWARD -o {{interface}} -j ACCEPT || true; ip6tables -D FORWARD -i {{interface}} -j ACCEPT || true; ip6tables -D FORWARD -o {{interface}} -j ACCEPT || true; iptables -t nat -D POSTROUTING -s {{ipv4Cidr}} -o {{device}} -j MASQUERADE || true; ip6tables -t nat -D POSTROUTING -s {{ipv6Cidr}} -o {{device}} -j MASQUERADE || true; ``` 3. Restart `wg-easy` to apply changes: diff --git a/docs/content/examples/tutorials/podman-nft.md b/docs/content/examples/tutorials/podman-nft.md index 31141a61..071f47f5 100644 --- a/docs/content/examples/tutorials/podman-nft.md +++ b/docs/content/examples/tutorials/podman-nft.md @@ -88,13 +88,13 @@ In the Admin Panel of your WireGuard server, go to the `Hooks` tab and add the f 1. PostUp ```shell - nft add table inet wg_table; nft add chain inet wg_table prerouting { type nat hook prerouting priority 100 \; }; nft add chain inet wg_table postrouting { type nat hook postrouting priority 100 \; }; nft add rule inet wg_table postrouting ip saddr {{ipv4Cidr}} oifname {{device}} masquerade; nft add rule inet wg_table postrouting ip6 saddr {{ipv6Cidr}} oifname {{device}} masquerade; nft add chain inet wg_table input { type filter hook input priority 0 \; policy accept \; }; nft add rule inet wg_table input udp dport {{port}} accept; nft add rule inet wg_table input tcp dport {{uiPort}} accept; nft add chain inet wg_table forward { type filter hook forward priority 0 \; policy accept \; }; nft add rule inet wg_table forward iifname "wg0" accept; nft add rule inet wg_table forward oifname "wg0" accept; + nft add table inet wg_table_{{interface}}; nft add chain inet wg_table_{{interface}} prerouting { type nat hook prerouting priority 100 \; }; nft add chain inet wg_table_{{interface}} postrouting { type nat hook postrouting priority 100 \; }; nft add rule inet wg_table_{{interface}} postrouting ip saddr {{ipv4Cidr}} oifname {{device}} masquerade; nft add rule inet wg_table_{{interface}} postrouting ip6 saddr {{ipv6Cidr}} oifname {{device}} masquerade; nft add chain inet wg_table_{{interface}} input { type filter hook input priority 0 \; policy accept \; }; nft add rule inet wg_table_{{interface}} input udp dport {{port}} accept; nft add rule inet wg_table_{{interface}} input tcp dport {{uiPort}} accept; nft add chain inet wg_table_{{interface}} forward { type filter hook forward priority 0 \; policy accept \; }; nft add rule inet wg_table_{{interface}} forward iifname "{{interface}}" accept; nft add rule inet wg_table_{{interface}} forward oifname "{{interface}}" accept; ``` 2. PostDown ```shell - nft delete table inet wg_table + nft delete table inet wg_table_{{interface}} ``` If you don't have iptables loaded on your server, you could see many errors in the logs or in the UI. You can ignore them. diff --git a/docs/content/examples/tutorials/routed.md b/docs/content/examples/tutorials/routed.md index 2afdd9c9..5c406577 100644 --- a/docs/content/examples/tutorials/routed.md +++ b/docs/content/examples/tutorials/routed.md @@ -86,13 +86,13 @@ Then go to Admin → Hooks and add: PostUp ```shell -iptables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; ip6tables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -A FORWARD -o wg0 -j ACCEPT +iptables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; iptables -A FORWARD -i {{interface}} -j ACCEPT; iptables -A FORWARD -o {{interface}} -j ACCEPT; ip6tables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; ip6tables -A FORWARD -i {{interface}} -j ACCEPT; ip6tables -A FORWARD -o {{interface}} -j ACCEPT ``` PostDown ```shell -iptables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; ip6tables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -D FORWARD -o wg0 -j ACCEPT +iptables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT; iptables -D FORWARD -i {{interface}} -j ACCEPT; iptables -D FORWARD -o {{interface}} -j ACCEPT; ip6tables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT; ip6tables -D FORWARD -i {{interface}} -j ACCEPT; ip6tables -D FORWARD -o {{interface}} -j ACCEPT ``` /// warning | Important: When using nftables use the following hooks instead. @@ -100,13 +100,13 @@ iptables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT; iptables -D FORWARD PostUp ```shell -nft add chain ip filter WG_EASY; nft add rule ip filter DOCKER-USER jump WG_EASY; nft add rule ip filter WG_EASY iifname {{device}} accept; nft add rule ip filter WG_EASY oifname {{device}} accept; nft add chain ip6 filter WG_EASY; nft add rule ip6 filter DOCKER-USER jump WG_EASY; nft add rule ip6 filter WG_EASY iifname {{device}} accept; nft add rule ip6 filter WG_EASY oifname {{device}} accept; +nft add chain ip filter WG_EASY_{{interface}}; nft add rule ip filter DOCKER-USER jump WG_EASY_{{interface}}; nft add rule ip filter WG_EASY_{{interface}} iifname {{device}} accept; nft add rule ip filter WG_EASY_{{interface}} oifname {{device}} accept; nft add chain ip6 filter WG_EASY_{{interface}}; nft add rule ip6 filter DOCKER-USER jump WG_EASY_{{interface}}; nft add rule ip6 filter WG_EASY_{{interface}} iifname {{device}} accept; nft add rule ip6 filter WG_EASY_{{interface}} oifname {{device}} accept; ``` PostDown ```shell -nft delete rule ip filter DOCKER-USER handle $(nft -a list chain ip filter DOCKER-USER | awk '/jump WG_EASY/ {print $NF}'); nft flush chain ip filter WG_EASY; nft delete chain ip filter WG_EASY; nft delete rule ip6 filter DOCKER-USER handle $(nft -a list chain ip6 filter DOCKER-USER | awk '/jump WG_EASY/ {print $NF}'); nft flush chain ip6 filter WG_EASY; nft delete chain ip6 filter WG_EASY +nft delete rule ip filter DOCKER-USER handle $(nft -a list chain ip filter DOCKER-USER | awk '/jump WG_EASY_{{interface}}/ {print $NF}'); nft flush chain ip filter WG_EASY_{{interface}}; nft delete chain ip filter WG_EASY_{{interface}}; nft delete rule ip6 filter DOCKER-USER handle $(nft -a list chain ip6 filter DOCKER-USER | awk '/jump WG_EASY_{{interface}}/ {print $NF}'); nft flush chain ip6 filter WG_EASY_{{interface}}; nft delete chain ip6 filter WG_EASY_{{interface}} ``` /// diff --git a/src/cli/clients/qr.ts b/src/cli/clients/qr.ts index f0b7a33d..eb00fa92 100644 --- a/src/cli/clients/qr.ts +++ b/src/cli/clients/qr.ts @@ -3,6 +3,7 @@ import { consola } from 'consola'; import { eq } from 'drizzle-orm'; import { db, schema } from '#cli/db'; +import { WG_ENV } from '#server/utils/config'; import { wg } from '#server/utils/wgHelper'; import { encodeQRCodeTerm } from '#server/utils/qr'; @@ -34,7 +35,7 @@ export default defineCommand({ consola.info('Generating QR code for client...'); const wgInterface = await db.query.wgInterface.findFirst({ - where: eq(schema.wgInterface.name, 'wg0'), + where: eq(schema.wgInterface.name, WG_ENV.WG_INTERFACE), }); if (!wgInterface) { consola.error('WireGuard interface not found'); @@ -42,7 +43,7 @@ export default defineCommand({ } const userConfig = await db.query.userConfig.findFirst({ - where: eq(schema.userConfig.id, 'wg0'), + where: eq(schema.userConfig.id, wgInterface.name), }); if (!userConfig) { consola.error('User config not found'); diff --git a/src/server/api/admin/ip-info.get.ts b/src/server/api/admin/ip-info.get.ts index b558c6f4..95cc7bfb 100644 --- a/src/server/api/admin/ip-info.get.ts +++ b/src/server/api/admin/ip-info.get.ts @@ -1,7 +1,9 @@ +import Database from '#server/utils/Database'; import { definePermissionEventHandler } from '#server/utils/handler'; -import { cachedGetIpInformation } from '#server/utils/ip'; +import { getIpInformation } from '#server/utils/ip'; export default definePermissionEventHandler('admin', 'any', async () => { - const result = await cachedGetIpInformation(); + const wgInterface = await Database.interfaces.get(); + const result = await getIpInformation(wgInterface.name); return result; }); diff --git a/src/server/api/setup/4.get.ts b/src/server/api/setup/4.get.ts index 154c059c..e63a0405 100644 --- a/src/server/api/setup/4.get.ts +++ b/src/server/api/setup/4.get.ts @@ -1,7 +1,9 @@ +import Database from '#server/utils/Database'; import { defineSetupEventHandler } from '#server/utils/handler'; -import { cachedGetIpInformation } from '#server/utils/ip'; +import { getIpInformation } from '#server/utils/ip'; export default defineSetupEventHandler(4, async () => { - const result = await cachedGetIpInformation(); + const wgInterface = await Database.interfaces.get(); + const result = await getIpInformation(wgInterface.name); return result; }); diff --git a/src/server/database/migrations/0009_dusty_prodigy.sql b/src/server/database/migrations/0009_dusty_prodigy.sql new file mode 100644 index 00000000..c6d1f8b4 --- /dev/null +++ b/src/server/database/migrations/0009_dusty_prodigy.sql @@ -0,0 +1,5 @@ +UPDATE `hooks_table` SET + `pre_up` = replace(`pre_up`, 'wg0', '{{interface}}'), + `post_up` = replace(`post_up`, 'wg0', '{{interface}}'), + `pre_down` = replace(`pre_down`, 'wg0', '{{interface}}'), + `post_down` = replace(`post_down`, 'wg0', '{{interface}}'); diff --git a/src/server/database/migrations/meta/0009_snapshot.json b/src/server/database/migrations/meta/0009_snapshot.json new file mode 100644 index 00000000..b34488c5 --- /dev/null +++ b/src/server/database/migrations/meta/0009_snapshot.json @@ -0,0 +1,1144 @@ +{ + "id": "209191ca-75c3-4821-93f5-255119b9a351", + "prevId": "885a870f-9dc1-4d97-941e-d3d718b02d74", + "version": "6", + "dialect": "sqlite", + "tables": { + "clients_table": { + "name": "clients_table", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "interface_id": { + "name": "interface_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ipv4_address": { + "name": "ipv4_address", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ipv6_address": { + "name": "ipv6_address", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "pre_up": { + "name": "pre_up", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "''" + }, + "post_up": { + "name": "post_up", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "''" + }, + "pre_down": { + "name": "pre_down", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "''" + }, + "post_down": { + "name": "post_down", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "''" + }, + "private_key": { + "name": "private_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "public_key": { + "name": "public_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "pre_shared_key": { + "name": "pre_shared_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "allowed_ips": { + "name": "allowed_ips", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "server_allowed_ips": { + "name": "server_allowed_ips", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "firewall_ips": { + "name": "firewall_ips", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "persistent_keepalive": { + "name": "persistent_keepalive", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "mtu": { + "name": "mtu", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "j_c": { + "name": "j_c", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "j_min": { + "name": "j_min", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "j_max": { + "name": "j_max", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i1": { + "name": "i1", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i2": { + "name": "i2", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i3": { + "name": "i3", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i4": { + "name": "i4", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i5": { + "name": "i5", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "content_padding_addition": { + "name": "content_padding_addition", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rekey_after_time": { + "name": "rekey_after_time", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rekey_timeout": { + "name": "rekey_timeout", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reject_after_time": { + "name": "reject_after_time", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "keepalive_timeout": { + "name": "keepalive_timeout", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "max_handshake_attempts": { + "name": "max_handshake_attempts", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "disable_cookies": { + "name": "disable_cookies", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "dns": { + "name": "dns", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "server_endpoint": { + "name": "server_endpoint", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": { + "clients_table_ipv4_address_unique": { + "name": "clients_table_ipv4_address_unique", + "columns": [ + "ipv4_address" + ], + "isUnique": true + }, + "clients_table_ipv6_address_unique": { + "name": "clients_table_ipv6_address_unique", + "columns": [ + "ipv6_address" + ], + "isUnique": true + }, + "public_key_interface_unique": { + "name": "public_key_interface_unique", + "columns": [ + "public_key", + "interface_id" + ], + "isUnique": true + } + }, + "foreignKeys": { + "clients_table_user_id_users_table_id_fk": { + "name": "clients_table_user_id_users_table_id_fk", + "tableFrom": "clients_table", + "columnsFrom": [ + "user_id" + ], + "tableTo": "users_table", + "columnsTo": [ + "id" + ], + "onUpdate": "cascade", + "onDelete": "restrict" + }, + "clients_table_interface_id_interfaces_table_name_fk": { + "name": "clients_table_interface_id_interfaces_table_name_fk", + "tableFrom": "clients_table", + "columnsFrom": [ + "interface_id" + ], + "tableTo": "interfaces_table", + "columnsTo": [ + "name" + ], + "onUpdate": "cascade", + "onDelete": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "general_table": { + "name": "general_table", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "setup_step": { + "name": "setup_step", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_password": { + "name": "session_password", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_timeout": { + "name": "session_timeout", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metrics_prometheus": { + "name": "metrics_prometheus", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metrics_json": { + "name": "metrics_json", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metrics_password": { + "name": "metrics_password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "hooks_table": { + "name": "hooks_table", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "pre_up": { + "name": "pre_up", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_up": { + "name": "post_up", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "pre_down": { + "name": "pre_down", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_down": { + "name": "post_down", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "hooks_table_id_interfaces_table_name_fk": { + "name": "hooks_table_id_interfaces_table_name_fk", + "tableFrom": "hooks_table", + "columnsFrom": [ + "id" + ], + "tableTo": "interfaces_table", + "columnsTo": [ + "name" + ], + "onUpdate": "cascade", + "onDelete": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "interfaces_table": { + "name": "interfaces_table", + "columns": { + "name": { + "name": "name", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "device": { + "name": "device", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "port": { + "name": "port", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "private_key": { + "name": "private_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "public_key": { + "name": "public_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ipv4_cidr": { + "name": "ipv4_cidr", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ipv6_cidr": { + "name": "ipv6_cidr", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "mtu": { + "name": "mtu", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "routing_table": { + "name": "routing_table", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'auto'" + }, + "j_c": { + "name": "j_c", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 7 + }, + "j_min": { + "name": "j_min", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 10 + }, + "j_max": { + "name": "j_max", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 1000 + }, + "s1": { + "name": "s1", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 128 + }, + "s2": { + "name": "s2", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 56 + }, + "s3": { + "name": "s3", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "s4": { + "name": "s4", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "h1": { + "name": "h1", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "h2": { + "name": "h2", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "h3": { + "name": "h3", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "h4": { + "name": "h4", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i1": { + "name": "i1", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i2": { + "name": "i2", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i3": { + "name": "i3", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i4": { + "name": "i4", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "i5": { + "name": "i5", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "header_protection_key": { + "name": "header_protection_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "content_padding_addition": { + "name": "content_padding_addition", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rekey_after_time": { + "name": "rekey_after_time", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rekey_timeout": { + "name": "rekey_timeout", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reject_after_time": { + "name": "reject_after_time", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "keepalive_timeout": { + "name": "keepalive_timeout", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "max_handshake_attempts": { + "name": "max_handshake_attempts", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "random_trailers": { + "name": "random_trailers", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "disable_cookies": { + "name": "disable_cookies", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "firewall_enabled": { + "name": "firewall_enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": { + "interfaces_table_port_unique": { + "name": "interfaces_table_port_unique", + "columns": [ + "port" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "one_time_links_table": { + "name": "one_time_links_table", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "one_time_link": { + "name": "one_time_link", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": { + "one_time_links_table_one_time_link_unique": { + "name": "one_time_links_table_one_time_link_unique", + "columns": [ + "one_time_link" + ], + "isUnique": true + } + }, + "foreignKeys": { + "one_time_links_table_id_clients_table_id_fk": { + "name": "one_time_links_table_id_clients_table_id_fk", + "tableFrom": "one_time_links_table", + "columnsFrom": [ + "id" + ], + "tableTo": "clients_table", + "columnsTo": [ + "id" + ], + "onUpdate": "cascade", + "onDelete": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users_table": { + "name": "users_table", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "totp_key": { + "name": "totp_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "totp_verified": { + "name": "totp_verified", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "oauth_provider": { + "name": "oauth_provider", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "oauth_id": { + "name": "oauth_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": { + "users_table_username_unique": { + "name": "users_table_username_unique", + "columns": [ + "username" + ], + "isUnique": true + }, + "users_table_email_unique": { + "name": "users_table_email_unique", + "columns": [ + "email" + ], + "isUnique": true + }, + "oauth_provider_id_unique": { + "name": "oauth_provider_id_unique", + "columns": [ + "oauth_provider", + "oauth_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user_configs_table": { + "name": "user_configs_table", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "default_mtu": { + "name": "default_mtu", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "default_persistent_keepalive": { + "name": "default_persistent_keepalive", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "default_dns": { + "name": "default_dns", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "default_allowed_ips": { + "name": "default_allowed_ips", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "default_j_c": { + "name": "default_j_c", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 7 + }, + "default_j_min": { + "name": "default_j_min", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 10 + }, + "default_j_max": { + "name": "default_j_max", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 1000 + }, + "default_i1": { + "name": "default_i1", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_i2": { + "name": "default_i2", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_i3": { + "name": "default_i3", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_i4": { + "name": "default_i4", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "default_i5": { + "name": "default_i5", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "host": { + "name": "host", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "port": { + "name": "port", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "updated_at": { + "name": "updated_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "user_configs_table_id_interfaces_table_name_fk": { + "name": "user_configs_table_id_interfaces_table_name_fk", + "tableFrom": "user_configs_table", + "columnsFrom": [ + "id" + ], + "tableTo": "interfaces_table", + "columnsTo": [ + "name" + ], + "onUpdate": "cascade", + "onDelete": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/src/server/database/migrations/meta/_journal.json b/src/server/database/migrations/meta/_journal.json index 6d23e252..fd5a5501 100644 --- a/src/server/database/migrations/meta/_journal.json +++ b/src/server/database/migrations/meta/_journal.json @@ -64,6 +64,13 @@ "when": 1788760134302, "tag": "0008_thin_patch", "breakpoints": true + }, + { + "idx": 9, + "version": "6", + "when": 1790082534310, + "tag": "0009_dusty_prodigy", + "breakpoints": true } ] } \ No newline at end of file diff --git a/src/server/database/repositories/client/service.ts b/src/server/database/repositories/client/service.ts index 14b664b1..3afb81d4 100644 --- a/src/server/database/repositories/client/service.ts +++ b/src/server/database/repositories/client/service.ts @@ -9,6 +9,7 @@ import type { UpdateClientType, } from './types'; +import { WG_ENV } from '#server/utils/config'; import Database from '#server/utils/Database'; import { nextIP } from '#server/utils/ip'; import type { ID } from '#server/utils/types'; @@ -162,7 +163,7 @@ export class ClientService { const clients = await tx.query.client.findMany().execute(); const clientInterface = await tx.query.wgInterface .findFirst({ - where: eq(wgInterface.name, 'wg0'), + where: eq(wgInterface.name, WG_ENV.WG_INTERFACE), }) .execute(); @@ -191,7 +192,7 @@ export class ClientService { name, // TODO: properly assign user id userId: 1, - interfaceId: 'wg0', + interfaceId: WG_ENV.WG_INTERFACE, expiresAt, privateKey, publicKey, @@ -228,7 +229,7 @@ export class ClientService { return this.#db.transaction(async (tx) => { const clientInterface = await tx.query.wgInterface .findFirst({ - where: eq(wgInterface.name, 'wg0'), + where: eq(wgInterface.name, WG_ENV.WG_INTERFACE), }) .execute(); @@ -264,7 +265,7 @@ export class ClientService { .values({ name, userId: 1, - interfaceId: 'wg0', + interfaceId: WG_ENV.WG_INTERFACE, privateKey, publicKey, preSharedKey, diff --git a/src/server/database/repositories/hooks/service.ts b/src/server/database/repositories/hooks/service.ts index 41af78b8..6a48f464 100644 --- a/src/server/database/repositories/hooks/service.ts +++ b/src/server/database/repositories/hooks/service.ts @@ -3,6 +3,7 @@ import { eq, sql } from 'drizzle-orm'; import { hooks } from './schema'; import type { HooksUpdateType } from './types'; +import { WG_ENV } from '#server/utils/config'; import type { DBType } from '#db/sqlite'; function createPreparedStatement(db: DBType) { @@ -23,7 +24,9 @@ export class HooksService { } async get() { - const hooks = await this.#statements.get.execute({ interface: 'wg0' }); + const hooks = await this.#statements.get.execute({ + interface: WG_ENV.WG_INTERFACE, + }); if (!hooks) { throw new Error('Hooks not found'); } @@ -34,7 +37,7 @@ export class HooksService { return this.#db .update(hooks) .set(data) - .where(eq(hooks.id, 'wg0')) + .where(eq(hooks.id, WG_ENV.WG_INTERFACE)) .execute(); } } diff --git a/src/server/database/repositories/interface/service.ts b/src/server/database/repositories/interface/service.ts index 7100835d..5dcb79e9 100644 --- a/src/server/database/repositories/interface/service.ts +++ b/src/server/database/repositories/interface/service.ts @@ -4,6 +4,7 @@ import { parseCidr } from 'cidr-tools'; import { wgInterface } from './schema'; import type { InterfaceCidrUpdateType, InterfaceUpdateType } from './types'; +import { WG_ENV } from '#server/utils/config'; import { nextIPFromUsedAddresses } from '#server/utils/ip'; import { client as clientSchema } from '#db/schema'; import type { DBType } from '#db/sqlite'; @@ -42,7 +43,7 @@ export class InterfaceService { async get() { const wgInterface = await this.#statements.get.execute({ - interface: 'wg0', + interface: WG_ENV.WG_INTERFACE, }); if (!wgInterface) { throw new Error('Interface not found'); @@ -52,7 +53,7 @@ export class InterfaceService { updateKeyPair(privateKey: string, publicKey: string) { return this.#statements.updateKeyPair.execute({ - interface: 'wg0', + interface: WG_ENV.WG_INTERFACE, privateKey, publicKey, }); @@ -62,13 +63,13 @@ export class InterfaceService { return this.#db .update(wgInterface) .set(data) - .where(eq(wgInterface.name, 'wg0')) + .where(eq(wgInterface.name, WG_ENV.WG_INTERFACE)) .execute(); } setFirewallEnabled(firewallEnabled: boolean) { return this.#statements.setFirewallEnabled.execute({ - interface: 'wg0', + interface: WG_ENV.WG_INTERFACE, firewallEnabled, }); } @@ -77,7 +78,7 @@ export class InterfaceService { return this.#db.transaction(async (tx) => { const oldCidr = await tx.query.wgInterface .findFirst({ - where: eq(wgInterface.name, 'wg0'), + where: eq(wgInterface.name, WG_ENV.WG_INTERFACE), columns: { ipv4Cidr: true, ipv6Cidr: true }, }) .execute(); @@ -89,7 +90,7 @@ export class InterfaceService { await tx .update(wgInterface) .set(data) - .where(eq(wgInterface.name, 'wg0')) + .where(eq(wgInterface.name, WG_ENV.WG_INTERFACE)) .execute(); const clients = await tx.query.client.findMany().execute(); diff --git a/src/server/database/repositories/userConfig/service.ts b/src/server/database/repositories/userConfig/service.ts index db18c8d0..7437ca04 100644 --- a/src/server/database/repositories/userConfig/service.ts +++ b/src/server/database/repositories/userConfig/service.ts @@ -3,6 +3,7 @@ import { eq, sql } from 'drizzle-orm'; import { userConfig } from './schema'; import type { UserConfigUpdateType } from './types'; +import { WG_ENV } from '#server/utils/config'; import { wgInterface } from '#db/schema'; import type { DBType } from '#db/sqlite'; @@ -24,7 +25,9 @@ export class UserConfigService { } async get() { - const userConfig = await this.#statements.get.execute({ interface: 'wg0' }); + const userConfig = await this.#statements.get.execute({ + interface: WG_ENV.WG_INTERFACE, + }); if (!userConfig) { throw new Error('User config not found'); @@ -45,13 +48,13 @@ export class UserConfigService { await tx .update(userConfig) .set({ host, port }) - .where(eq(userConfig.id, 'wg0')) + .where(eq(userConfig.id, WG_ENV.WG_INTERFACE)) .execute(); await tx .update(wgInterface) .set({ port }) - .where(eq(wgInterface.name, 'wg0')) + .where(eq(wgInterface.name, WG_ENV.WG_INTERFACE)) .execute(); }); } @@ -60,7 +63,7 @@ export class UserConfigService { return this.#db .update(userConfig) .set(data) - .where(eq(userConfig.id, 'wg0')) + .where(eq(userConfig.id, WG_ENV.WG_INTERFACE)) .execute(); } } diff --git a/src/server/database/sqlite.ts b/src/server/database/sqlite.ts index 59469ccc..f5a01e54 100644 --- a/src/server/database/sqlite.ts +++ b/src/server/database/sqlite.ts @@ -21,6 +21,7 @@ const db = drizzle({ client, schema }); export async function connect() { await migrate(); + await renameInterface(db); const dbService = new DBService(db); if (WG_INITIAL_ENV.ENABLED) { @@ -122,16 +123,38 @@ async function initialSetup(db: DBServiceType) { } } +// Renames the interface to the one specified in `WG_INTERFACE` then hooks, users, and clients via `ON UPDATE CASCADE` +async function renameInterface(db: DBType) { + const wgInterface = await db.query.wgInterface.findFirst(); + + if (!wgInterface) { + throw new Error('Interface not found'); + } + + if (wgInterface.name === WG_ENV.WG_INTERFACE) { + return; + } + + DB_DEBUG( + `Renaming Interface ${wgInterface.name} to ${WG_ENV.WG_INTERFACE}...` + ); + await db + .update(schema.wgInterface) + .set({ name: WG_ENV.WG_INTERFACE }) + .where(eq(schema.wgInterface.name, wgInterface.name)) + .execute(); +} + async function disableIpv6(db: DBType) { // This should match the initial value migration const postUpMatch = - ' ip6tables -t nat -A POSTROUTING -s {{ipv6Cidr}} -o {{device}} -j MASQUERADE; ip6tables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -A FORWARD -o wg0 -j ACCEPT;'; + ' ip6tables -t nat -A POSTROUTING -s {{ipv6Cidr}} -o {{device}} -j MASQUERADE; ip6tables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; ip6tables -A FORWARD -i {{interface}} -j ACCEPT; ip6tables -A FORWARD -o {{interface}} -j ACCEPT;'; const postDownMatch = - ' ip6tables -t nat -D POSTROUTING -s {{ipv6Cidr}} -o {{device}} -j MASQUERADE; ip6tables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -D FORWARD -o wg0 -j ACCEPT;'; + ' ip6tables -t nat -D POSTROUTING -s {{ipv6Cidr}} -o {{device}} -j MASQUERADE; ip6tables -D INPUT -p udp -m udp --dport {{port}} -j ACCEPT; ip6tables -D FORWARD -i {{interface}} -j ACCEPT; ip6tables -D FORWARD -o {{interface}} -j ACCEPT;'; await db.transaction(async (tx) => { const hooks = await tx.query.hooks.findFirst({ - where: eq(schema.hooks.id, 'wg0'), + where: eq(schema.hooks.id, WG_ENV.WG_INTERFACE), }); if (!hooks) { @@ -146,7 +169,7 @@ async function disableIpv6(db: DBType) { postUp: hooks.postUp.replace(postUpMatch, ''), postDown: hooks.postDown.replace(postDownMatch, ''), }) - .where(eq(schema.hooks.id, 'wg0')) + .where(eq(schema.hooks.id, WG_ENV.WG_INTERFACE)) .execute(); } else { DB_DEBUG('IPv6 Post Up hooks already disabled, skipping...'); @@ -159,7 +182,7 @@ async function disableIpv6(db: DBType) { postUp: hooks.postUp.replace(postUpMatch, ''), postDown: hooks.postDown.replace(postDownMatch, ''), }) - .where(eq(schema.hooks.id, 'wg0')) + .where(eq(schema.hooks.id, WG_ENV.WG_INTERFACE)) .execute(); } else { DB_DEBUG('IPv6 Post Down hooks already disabled, skipping...'); diff --git a/src/server/utils/config.ts b/src/server/utils/config.ts index 94f2f280..dfd8c043 100644 --- a/src/server/utils/config.ts +++ b/src/server/utils/config.ts @@ -2,6 +2,7 @@ import { createDebug } from 'obug'; import packageJson from '@@/package.json'; import { exec } from '#server/utils/cmd'; +import { parseInterfaceName } from '#server/utils/interfaceName'; import { parseTrustedProxies } from '#server/utils/trustedProxy'; import { OAUTH_PROVIDERS, @@ -50,6 +51,8 @@ export const WG_ENV = { PORT: assertEnv('PORT'), /** If IPv6 should be disabled */ DISABLE_IPV6: process.env.DISABLE_IPV6 === 'true', + /** Name of the WireGuard interface */ + WG_INTERFACE: parseInterfaceName(process.env.WG_INTERFACE), WG_EXECUTABLE: await detectAwg(), DISABLE_VERSION_CHECK: process.env.DISABLE_VERSION_CHECK === 'true', /** List of enabled and configured OAuth providers */ diff --git a/src/server/utils/firewall.ts b/src/server/utils/firewall.ts index ef7998c6..26c94343 100644 --- a/src/server/utils/firewall.ts +++ b/src/server/utils/firewall.ts @@ -9,6 +9,14 @@ import type { UserConfigType } from '#db/repositories/userConfig/types'; const FW_DEBUG = createDebug('Firewall'); const CHAIN_NAME = 'WG_CLIENTS'; +/** + * Tie chains to a specific interface + * Prevents instances in the same network namespace from wiping each other's rules + */ +function chainName(interfaceName: string) { + return `${CHAIN_NAME}_${interfaceName}`; +} + // Mutex to prevent concurrent rule rebuilds let rebuildInProgress = false; let rebuildQueued = false; @@ -131,6 +139,7 @@ function parseFirewallEntry(entry: string): ParsedEntry { * Generate iptables rule arguments for a single firewall entry */ function generateRuleArgs( + interfaceName: string, clientIp: string, entry: ParsedEntry, comment?: string, @@ -138,7 +147,7 @@ function generateRuleArgs( ): string[] { const rules: string[] = []; const commentArg = comment ? ` -m comment --comment "${comment}"` : ''; - const baseArgs = `-${action} ${CHAIN_NAME} -s ${clientIp} -d ${entry.ip}`; + const baseArgs = `-${action} ${chainName(interfaceName)} -s ${clientIp} -d ${entry.ip}`; if (entry.port) { // Port-specific rules @@ -165,24 +174,25 @@ export const firewall = { * Initialize the custom chain if it doesn't exist */ async initChain(interfaceName: string, enableIpv6: boolean): Promise { + const chain = chainName(interfaceName); FW_DEBUG( - `Initializing firewall chain ${CHAIN_NAME} for interface ${interfaceName}` + `Initializing firewall chain ${chain} for interface ${interfaceName}` ); // Create chain if not exists (iptables returns error if exists, so we ignore) - await exec(`iptables -N ${CHAIN_NAME} 2>/dev/null || true`); + await exec(`iptables -N ${chain} 2>/dev/null || true`); if (enableIpv6) { - await exec(`ip6tables -N ${CHAIN_NAME} 2>/dev/null || true`); + await exec(`ip6tables -N ${chain} 2>/dev/null || true`); } // Ensure chain is referenced from FORWARD (if not already) // Insert at position 1 to process before generic ACCEPT rules await exec( - `iptables -C FORWARD -i ${interfaceName} -j ${CHAIN_NAME} 2>/dev/null || iptables -I FORWARD 1 -i ${interfaceName} -j ${CHAIN_NAME}` + `iptables -C FORWARD -i ${interfaceName} -j ${chain} 2>/dev/null || iptables -I FORWARD 1 -i ${interfaceName} -j ${chain}` ); if (enableIpv6) { await exec( - `ip6tables -C FORWARD -i ${interfaceName} -j ${CHAIN_NAME} 2>/dev/null || ip6tables -I FORWARD 1 -i ${interfaceName} -j ${CHAIN_NAME}` + `ip6tables -C FORWARD -i ${interfaceName} -j ${chain} 2>/dev/null || ip6tables -I FORWARD 1 -i ${interfaceName} -j ${chain}` ); } }, @@ -190,11 +200,12 @@ export const firewall = { /** * Flush all rules in the custom chain */ - async flushChain(enableIpv6: boolean): Promise { - FW_DEBUG(`Flushing firewall chain ${CHAIN_NAME}`); - await exec(`iptables -F ${CHAIN_NAME} 2>/dev/null || true`); + async flushChain(interfaceName: string, enableIpv6: boolean): Promise { + const chain = chainName(interfaceName); + FW_DEBUG(`Flushing firewall chain ${chain}`); + await exec(`iptables -F ${chain} 2>/dev/null || true`); if (enableIpv6) { - await exec(`ip6tables -F ${CHAIN_NAME} 2>/dev/null || true`); + await exec(`ip6tables -F ${chain} 2>/dev/null || true`); } }, @@ -202,6 +213,7 @@ export const firewall = { * Apply firewall rules for a single client */ async applyClientRules( + interfaceName: string, client: FirewallClient, defaultAllowedIps: string[], enableIpv6: boolean @@ -226,13 +238,23 @@ export const firewall = { if (destIsIpv6) { if (enableIpv6) { - const rules = generateRuleArgs(client.ipv6Address, parsed, comment); + const rules = generateRuleArgs( + interfaceName, + client.ipv6Address, + parsed, + comment + ); for (const rule of rules) { await exec(`ip6tables ${rule}`); } } } else { - const rules = generateRuleArgs(client.ipv4Address, parsed, comment); + const rules = generateRuleArgs( + interfaceName, + client.ipv4Address, + parsed, + comment + ); for (const rule of rules) { await exec(`iptables ${rule}`); } @@ -271,12 +293,13 @@ export const firewall = { await this.initChain(wgInterface.name, enableIpv6); // Flush existing rules - await this.flushChain(enableIpv6); + await this.flushChain(wgInterface.name, enableIpv6); // Apply rules for each enabled client for (const client of clients) { if (!client.enabled) continue; await this.applyClientRules( + wgInterface.name, client, userConfig.defaultAllowedIps, enableIpv6 @@ -284,9 +307,10 @@ export const firewall = { } // Add final DROP for any traffic not explicitly allowed - await exec(`iptables -A ${CHAIN_NAME} -j DROP`); + const chain = chainName(wgInterface.name); + await exec(`iptables -A ${chain} -j DROP`); if (enableIpv6) { - await exec(`ip6tables -A ${CHAIN_NAME} -j DROP`); + await exec(`ip6tables -A ${chain} -j DROP`); } FW_DEBUG('Firewall rules rebuilt successfully'); @@ -309,24 +333,33 @@ export const firewall = { interfaceName: string, enableIpv6: boolean ): Promise { + const chain = chainName(interfaceName); FW_DEBUG(`Removing firewall filtering for interface ${interfaceName}`); // Remove jump rules from FORWARD chain + // This disconnects the interface from the old shared chain, but it won't delete the chain itself. + // Other wg-easy instances on the same host may still rely on it. + await exec( + `iptables -D FORWARD -i ${interfaceName} -j ${chain} 2>/dev/null || true` + ); await exec( `iptables -D FORWARD -i ${interfaceName} -j ${CHAIN_NAME} 2>/dev/null || true` ); if (enableIpv6) { + await exec( + `ip6tables -D FORWARD -i ${interfaceName} -j ${chain} 2>/dev/null || true` + ); await exec( `ip6tables -D FORWARD -i ${interfaceName} -j ${CHAIN_NAME} 2>/dev/null || true` ); } // Flush and delete the chain - await exec(`iptables -F ${CHAIN_NAME} 2>/dev/null || true`); - await exec(`iptables -X ${CHAIN_NAME} 2>/dev/null || true`); + await exec(`iptables -F ${chain} 2>/dev/null || true`); + await exec(`iptables -X ${chain} 2>/dev/null || true`); if (enableIpv6) { - await exec(`ip6tables -F ${CHAIN_NAME} 2>/dev/null || true`); - await exec(`ip6tables -X ${CHAIN_NAME} 2>/dev/null || true`); + await exec(`ip6tables -F ${chain} 2>/dev/null || true`); + await exec(`ip6tables -X ${chain} 2>/dev/null || true`); } }, diff --git a/src/server/utils/interfaceName.ts b/src/server/utils/interfaceName.ts new file mode 100644 index 00000000..2f1739f3 --- /dev/null +++ b/src/server/utils/interfaceName.ts @@ -0,0 +1,21 @@ +/** + * Default interface name + */ +const DEFAULT_INTERFACE_NAME = 'wg0'; + +/** + * `wg-quick` compliant interface naming + */ +const INTERFACE_NAME_REGEX = /^[a-zA-Z0-9_=+.-]{1,15}$/; + +export function parseInterfaceName(value: string | undefined): string { + if (!value) { + return DEFAULT_INTERFACE_NAME; + } + + if (!INTERFACE_NAME_REGEX.test(value)) { + throw new Error(`Invalid interface name: ${value}`); + } + + return value; +} diff --git a/src/server/utils/ip.ts b/src/server/utils/ip.ts index 480519a8..11bfefff 100644 --- a/src/server/utils/ip.ts +++ b/src/server/utils/ip.ts @@ -96,7 +96,7 @@ async function getReverseDns(ip: string) { } } -function getPrivateInformation() { +function getPrivateInformation(interfaceName: string) { const interfaces = networkInterfaces(); const interfaceNames = Object.keys(interfaces); @@ -104,7 +104,7 @@ function getPrivateInformation() { const obj: Record = {}; for (const name of interfaceNames) { - if (name === 'wg0') { + if (name === interfaceName) { continue; } @@ -132,10 +132,10 @@ function getPrivateInformation() { return obj; } -async function getIpInformation() { +export async function getIpInformation(interfaceName: string) { const results = []; - const publicInfo = await getPublicInformation(); + const publicInfo = await cachedGetPublicInformation(); if (publicInfo.ipv4) { results.push({ value: publicInfo.ipv4, @@ -155,7 +155,7 @@ async function getIpInformation() { }); } - const privateInfo = getPrivateInformation(); + const privateInfo = getPrivateInformation(interfaceName); for (const [name, { ipv4, ipv6 }] of Object.entries(privateInfo)) { for (const ip of ipv4) { results.push({ @@ -175,9 +175,9 @@ async function getIpInformation() { } /** - * Fetch IP Information + * Fetch public IP Information * @cache Response is cached for 15 min */ -export const cachedGetIpInformation = cacheFunction(getIpInformation, { +const cachedGetPublicInformation = cacheFunction(getPublicInformation, { expiry: 15 * 60 * 1000, }); diff --git a/src/server/utils/template.ts b/src/server/utils/template.ts index c3f1b0d9..22679737 100644 --- a/src/server/utils/template.ts +++ b/src/server/utils/template.ts @@ -19,6 +19,7 @@ export function removeNewlines(templ: string) { * - ipv4Cidr: IPv4 CIDR * - ipv6Cidr: IPv6 CIDR * - device: Network device + * - interface: WireGuard interface * - port: Port number * - uiPort: UI port number */ @@ -27,6 +28,7 @@ export function iptablesTemplate(templ: string, wgInterface: InterfaceType) { ipv4Cidr: wgInterface.ipv4Cidr, ipv6Cidr: wgInterface.ipv6Cidr, device: wgInterface.device, + interface: wgInterface.name, port: wgInterface.port.toString(), uiPort: WG_ENV.PORT, }); diff --git a/src/test/unit/firewall.spec.ts b/src/test/unit/firewall.spec.ts index 53710112..0dea0567 100644 --- a/src/test/unit/firewall.spec.ts +++ b/src/test/unit/firewall.spec.ts @@ -18,7 +18,7 @@ describe('firewall', () => { describe('IPv4-only chain management', () => { test('does not invoke ip6tables when initializing and flushing', async () => { await firewall.initChain('wg0', false); - await firewall.flushChain(false); + await firewall.flushChain('wg0', false); expect(execMock).toHaveBeenCalledWith( expect.stringContaining('iptables -C FORWARD -i wg0') @@ -40,6 +40,30 @@ describe('firewall', () => { }); }); + describe('interface scoped chains', () => { + test('uses one chain per interface', async () => { + await firewall.initChain('wg1', false); + + expect(execMock).toHaveBeenCalledWith( + expect.stringContaining('iptables -N WG_CLIENTS_wg1') + ); + expect(execMock).not.toHaveBeenCalledWith( + expect.stringContaining('iptables -N WG_CLIENTS ') + ); + }); + + test('stops referencing the legacy chain when removing filtering', async () => { + await firewall.removeFiltering('wg1', false); + + expect(execMock).toHaveBeenCalledWith( + expect.stringContaining('iptables -D FORWARD -i wg1 -j WG_CLIENTS ') + ); + expect(execMock).toHaveBeenCalledWith( + expect.stringContaining('iptables -X WG_CLIENTS_wg1') + ); + }); + }); + describe('isValidFirewallEntry', () => { test('invalid ips', () => { expect(() => typesTestExports.FirewallIpEntrySchema.parse('')).toThrow(); @@ -290,41 +314,43 @@ describe('firewall', () => { describe('generateRuleArgs', () => { test('includes comment when provided', () => { const rules = firewallTestExports.generateRuleArgs( + 'wg0', '10.8.0.2', { ip: '10.0.0.1' }, 'client 1: test' ); expect(rules).toEqual([ - '-A WG_CLIENTS -s 10.8.0.2 -d 10.0.0.1 -m comment --comment "client 1: test" -j ACCEPT', + '-A WG_CLIENTS_wg0 -s 10.8.0.2 -d 10.0.0.1 -m comment --comment "client 1: test" -j ACCEPT', ]); }); test('omits comment when not provided', () => { - const rulesTcp = firewallTestExports.generateRuleArgs('10.8.0.2', { + const rulesTcp = firewallTestExports.generateRuleArgs('wg0', '10.8.0.2', { ip: '10.0.0.1', port: 80, proto: 'tcp', }); expect(rulesTcp).toEqual([ - '-A WG_CLIENTS -s 10.8.0.2 -d 10.0.0.1 -p tcp --dport 80 -j ACCEPT', + '-A WG_CLIENTS_wg0 -s 10.8.0.2 -d 10.0.0.1 -p tcp --dport 80 -j ACCEPT', ]); - const rulesUdp = firewallTestExports.generateRuleArgs('10.8.0.2', { + const rulesUdp = firewallTestExports.generateRuleArgs('wg0', '10.8.0.2', { ip: '10.0.0.1', port: 80, proto: 'udp', }); expect(rulesUdp).toEqual([ - '-A WG_CLIENTS -s 10.8.0.2 -d 10.0.0.1 -p udp --dport 80 -j ACCEPT', + '-A WG_CLIENTS_wg0 -s 10.8.0.2 -d 10.0.0.1 -p udp --dport 80 -j ACCEPT', ]); }); test('comment with port generates two rules for both proto', () => { const rules = firewallTestExports.generateRuleArgs( + 'wg0', '10.8.0.2', { ip: '10.0.0.1', port: 443, proto: 'both' }, 'client 2: phone' ); expect(rules).toEqual([ - '-A WG_CLIENTS -s 10.8.0.2 -d 10.0.0.1 -p tcp --dport 443 -m comment --comment "client 2: phone" -j ACCEPT', - '-A WG_CLIENTS -s 10.8.0.2 -d 10.0.0.1 -p udp --dport 443 -m comment --comment "client 2: phone" -j ACCEPT', + '-A WG_CLIENTS_wg0 -s 10.8.0.2 -d 10.0.0.1 -p tcp --dport 443 -m comment --comment "client 2: phone" -j ACCEPT', + '-A WG_CLIENTS_wg0 -s 10.8.0.2 -d 10.0.0.1 -p udp --dport 443 -m comment --comment "client 2: phone" -j ACCEPT', ]); }); }); diff --git a/src/test/unit/interfaceName.spec.ts b/src/test/unit/interfaceName.spec.ts new file mode 100644 index 00000000..0c1a0765 --- /dev/null +++ b/src/test/unit/interfaceName.spec.ts @@ -0,0 +1,25 @@ +import { describe, expect, test } from 'vitest'; + +import { parseInterfaceName } from '#server/utils/interfaceName'; + +describe('parseInterfaceName', () => { + test('returns the default interface when a custom name is not specified', () => { + expect(parseInterfaceName(undefined)).toBe('wg0'); + expect(parseInterfaceName('')).toBe('wg0'); + }); + + test('accepts names compliant with wg-quick', () => { + expect(parseInterfaceName('wg1')).toBe('wg1'); + expect(parseInterfaceName('wg-home')).toBe('wg-home'); + expect(parseInterfaceName('a'.repeat(15))).toBe('a'.repeat(15)); + }); + + test('rejects invalid names', () => { + expect(() => parseInterfaceName('wg 0')).toThrow( + 'Invalid interface name: wg 0' + ); + expect(() => parseInterfaceName('wg0; id')).toThrow(); + expect(() => parseInterfaceName('wg/0')).toThrow(); + expect(() => parseInterfaceName('a'.repeat(16))).toThrow(); + }); +}); From 0833ee8ff6f21e1fcf164f5259ab28edae2a0630 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 12:14:58 +0200 Subject: [PATCH 21/31] Update dependency obug to v3 (#2815) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- src/package.json | 2 +- src/pnpm-lock.yaml | 431 +++++++++++++++++++++++---------------------- 2 files changed, 217 insertions(+), 216 deletions(-) diff --git a/src/package.json b/src/package.json index b96b64a6..539622e5 100644 --- a/src/package.json +++ b/src/package.json @@ -44,7 +44,7 @@ "is-ip": "^5.0.1", "js-sha256": "^1.0.0", "nuxt": "^4.5.2", - "obug": "^2.2.1", + "obug": "^3.0.0", "openid-client": "^6.8.8", "otpauth": "^9.5.2", "pinia": "^4.0.3", diff --git a/src/pnpm-lock.yaml b/src/pnpm-lock.yaml index e1cbc12c..35a526f1 100644 --- a/src/pnpm-lock.yaml +++ b/src/pnpm-lock.yaml @@ -168,7 +168,7 @@ importers: dependencies: '@heroicons/vue': specifier: ^2.2.0 - version: 2.2.0(vue@3.5.42(typescript@6.0.3)) + version: 2.2.0(vue@3.5.43(typescript@6.0.3)) '@libsql/client': specifier: ^0.18.0 version: 0.18.0 @@ -177,7 +177,7 @@ importers: version: 4.0.1(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@nuxtjs/i18n': specifier: ^10.6.0 - version: 10.6.0(@vue/compiler-dom@3.5.42)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + version: 10.6.0(@vue/compiler-dom@3.5.42)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)) '@nuxtjs/tailwindcss': specifier: ^6.14.0 version: 6.14.0(magicast@0.5.4)(supports-color@10.2.2)(tsx@4.23.13)(yaml@2.9.0) @@ -186,16 +186,16 @@ importers: version: 1.0.0 '@pinia/nuxt': specifier: ^1.0.2 - version: 1.0.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) + version: 1.0.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) '@tailwindcss/forms': specifier: ^0.5.11 version: 0.5.11(tailwindcss@3.4.19(tsx@4.23.13)(yaml@2.9.0)) '@vueuse/core': specifier: ^14.4.0 - version: 14.4.0(vue@3.5.42(typescript@6.0.3)) + version: 14.4.0(vue@3.5.43(typescript@6.0.3)) '@vueuse/nuxt': specifier: ^14.4.0 - version: 14.4.0(de6da0bafaae4e26bff4942e9a767283) + version: 14.4.0(d3e414f291a94191ad8ee9803f470127) apexcharts: specifier: ^6.10.0 version: 6.10.0 @@ -231,10 +231,10 @@ importers: version: 1.0.0 nuxt: specifier: ^4.5.2 - version: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) + version: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.43)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) obug: - specifier: ^2.2.1 - version: 2.2.1 + specifier: ^3.0.0 + version: 3.0.0 openid-client: specifier: ^6.8.8 version: 6.8.8 @@ -243,13 +243,13 @@ importers: version: 9.5.2 pinia: specifier: ^4.0.3 - version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) + version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)) qr: specifier: ^0.7.0 version: 0.7.0 reka-ui: specifier: ^2.10.4 - version: 2.10.4(vue@3.5.42(typescript@6.0.3)) + version: 2.10.4(vue@3.5.43(typescript@6.0.3)) semver: specifier: ^7.8.5 version: 7.8.5 @@ -258,17 +258,17 @@ importers: version: 3.4.19(tsx@4.23.13)(yaml@2.9.0) vue: specifier: latest - version: 3.5.42(typescript@6.0.3) + version: 3.5.43(typescript@6.0.3) vue3-apexcharts: specifier: ^1.11.1 - version: 1.11.1(apexcharts@6.10.0)(vue@3.5.42(typescript@6.0.3)) + version: 1.11.1(apexcharts@6.10.0)(vue@3.5.43(typescript@6.0.3)) zod: specifier: ^4.6.4 version: 4.6.5 devDependencies: '@nuxt/eslint': specifier: ^1.17.0 - version: 1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + version: 1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.43)(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@nuxt/test-utils': specifier: ^4.3.2 version: 4.3.2(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) @@ -1429,45 +1429,6 @@ packages: peerDependencies: '@nuxt/kit': '>=3.0.0' - '@nuxt/test-utils@4.2.0': - resolution: {integrity: sha512-QwmLxlOFoqHrHnOSSl3TJObJ+htx1UgoasP98zbcQbWjkXBef//pMMn7pKzEBHbrW4WfRCioDQw1L2nI3BqkfA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - peerDependencies: - '@cucumber/cucumber': '>=11.0.0' - '@jest/globals': '>=30.0.0' - '@playwright/test': ^1.43.1 - '@testing-library/vue': ^8.0.1 - '@vitest/ui': '*' - '@vue/test-utils': ^2.4.2 - h3-next: '>=2.0.1-rc.22' - happy-dom: '>=20.0.11' - jsdom: '>=27.4.0' - playwright-core: ^1.43.1 - vitest: ^4.0.2 - peerDependenciesMeta: - '@cucumber/cucumber': - optional: true - '@jest/globals': - optional: true - '@playwright/test': - optional: true - '@testing-library/vue': - optional: true - '@vitest/ui': - optional: true - '@vue/test-utils': - optional: true - h3-next: - optional: true - happy-dom: - optional: true - jsdom: - optional: true - playwright-core: - optional: true - vitest: - optional: true - '@nuxt/test-utils@4.3.2': resolution: {integrity: sha512-RgBgYN/CyJYWdHzGA8+bznK7bfqpdCUTkA6WGylYuSdt51l6w/jbz/2PyGuGqFkta4H7KQifWNIeFVjW5x66tg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} @@ -2553,15 +2514,27 @@ packages: '@vue/compiler-core@3.5.42': resolution: {integrity: sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==} + '@vue/compiler-core@3.5.43': + resolution: {integrity: sha512-zdiLhnbe1QQqgDT8xZMpNmyqZ3qlI+/Q/FHQco57Kwl/b05HhCzN6eVGN9QU9rbga4CrS0H5SYY8VGHZCt/1Hg==} + '@vue/compiler-dom@3.5.42': resolution: {integrity: sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==} + '@vue/compiler-dom@3.5.43': + resolution: {integrity: sha512-PEZoAk3NQmsn/ejMzSOCyTYqwGqczrWm70PuhBKjjv1+TCoQAaO/zOqNwjV+honlNstT5ILxtc+8r8UUfj+iEQ==} + '@vue/compiler-sfc@3.5.42': resolution: {integrity: sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw==} + '@vue/compiler-sfc@3.5.43': + resolution: {integrity: sha512-FCbrG3XNCRl+js3huuKx4IVHBLTvMkJhVepjbxSPu1gn4yWLaYtGNQdjJGZaMytXB6qb76qQDDmDSLy/vkmleQ==} + '@vue/compiler-ssr@3.5.42': resolution: {integrity: sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA==} + '@vue/compiler-ssr@3.5.43': + resolution: {integrity: sha512-GF62orf7KiJX9RqrHNGrYBudsQGD0OhJ5nDs90O8UiDuS40+YMYomiXu6w6EuvtXuRDc3MSNis3EaaSKAVSWpg==} + '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} @@ -2582,21 +2555,24 @@ packages: '@vue/language-core@3.3.11': resolution: {integrity: sha512-QJmpliwAVpC/OxubIByPAhNzsQPRc8/gxlN2qnVzVfIMjMDz/9RnXRFoetjz5yEgXVXyp4LqhXq3V53PjmNzFw==} - '@vue/reactivity@3.5.42': - resolution: {integrity: sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ==} + '@vue/reactivity@3.5.43': + resolution: {integrity: sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA==} - '@vue/runtime-core@3.5.42': - resolution: {integrity: sha512-9uACtuHs7vJGkm5Bp3xu4xRDLFTIYy5DgxpToVjqGIAhAEKwQfsaLvKINhM6nFVp6bZPRFGdDqd1g52MqKsotA==} + '@vue/runtime-core@3.5.43': + resolution: {integrity: sha512-hU6U6VnVhBGQDpvlnnDlIB8ZGJBiOcgk2lh/0InltHiz3D8oSkluvuvY+do1G2H3+udeKFsmaBlgVYP7gXQzEw==} - '@vue/runtime-dom@3.5.42': - resolution: {integrity: sha512-rsCmhiWLaRxGltLwhlCWyYkFn7WAbKRh0q17eZ1A6Dq6eqc2ACQ61IIryxz0LrsvCzHSilLA9JHovVwM8CNE2g==} + '@vue/runtime-dom@3.5.43': + resolution: {integrity: sha512-Bb2Jc0YjjJdMt1SJmb9b2L/IWd3I8lIT9x9eS/xvvP9CiVgna0ffua74xKRmt4/uSJ+0r4iN8ex1jrqkhQGWQw==} - '@vue/server-renderer@3.5.42': - resolution: {integrity: sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ==} + '@vue/server-renderer@3.5.43': + resolution: {integrity: sha512-l2Ygjv9NehV94PSBxNWsAHC0j/eIIKbn92mBuWXAPGLnn6HfJ6MH5ubsd+Nk0YoZ5FRuxWI1P2VSoh+dbPQhCQ==} '@vue/shared@3.5.42': resolution: {integrity: sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==} + '@vue/shared@3.5.43': + resolution: {integrity: sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q==} + '@vueuse/core@14.4.0': resolution: {integrity: sha512-X4WHz1HlCzCBoYXesUkifzzWBAcZgXG8Fi5iNPQg/epdzOB3gu8Fawj3hvuwYR1nGcXGnvxwYYcUC/71++svtQ==} peerDependencies: @@ -4612,6 +4588,10 @@ packages: resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==} engines: {node: '>=12.20.0'} + obug@3.0.0: + resolution: {integrity: sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==} + engines: {node: '>=12.20.0'} + ofetch@1.5.1: resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} @@ -6068,8 +6048,8 @@ packages: apexcharts: '>=5.10.0' vue: '>=3.0.0' - vue@3.5.42: - resolution: {integrity: sha512-4RyHQTbQvOPs3MfvUO1Sg0YRrKNnA0mAVtvpd12Tg1fKDN7OHBUl1IqSn8zGJjK9nI3NkNp8cgTpVrSZC5TTcA==} + vue@3.5.43: + resolution: {integrity: sha512-o5qZoksdnjIKvW1srZ3ab7pcDNYAerBjRe54D0LBLfRdCYFrSgBHVXokMas35czQc0//lmx4/tuY4ZNQ+Rf2Ng==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -6805,18 +6785,18 @@ snapshots: '@floating-ui/utils@0.2.12': {} - '@floating-ui/vue@1.1.11(vue@3.5.42(typescript@6.0.3))': + '@floating-ui/vue@1.1.11(vue@3.5.43(typescript@6.0.3))': dependencies: '@floating-ui/dom': 1.8.0 '@floating-ui/utils': 0.2.12 - vue-demi: 0.14.10(vue@3.5.42(typescript@6.0.3)) + vue-demi: 0.14.10(vue@3.5.43(typescript@6.0.3)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@heroicons/vue@2.2.0(vue@3.5.42(typescript@6.0.3))': + '@heroicons/vue@2.2.0(vue@3.5.43(typescript@6.0.3))': dependencies: - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) '@humanfs/core@0.19.2': dependencies: @@ -6842,7 +6822,7 @@ snapshots: dependencies: '@swc/helpers': 0.5.23 - '@intlify/bundle-utils@11.2.5(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))': + '@intlify/bundle-utils@11.2.5(vue-i18n@11.4.10(vue@3.5.43(typescript@6.0.3)))': dependencies: '@intlify/message-compiler': 11.4.10 '@intlify/shared': 11.4.10 @@ -6854,7 +6834,7 @@ snapshots: source-map-js: 1.2.1 yaml-eslint-parser: 1.3.2 optionalDependencies: - vue-i18n: 11.4.10(vue@3.5.42(typescript@6.0.3)) + vue-i18n: 11.4.10(vue@3.5.43(typescript@6.0.3)) '@intlify/core-base@11.4.10': dependencies: @@ -6884,12 +6864,12 @@ snapshots: '@intlify/shared@11.4.10': {} - '@intlify/unplugin-vue-i18n@11.2.5(@vue/compiler-dom@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3))': + '@intlify/unplugin-vue-i18n@11.2.5(@vue/compiler-dom@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-i18n@11.4.10(vue@3.5.43(typescript@6.0.3)))(vue@3.5.43(typescript@6.0.3))': dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) - '@intlify/bundle-utils': 11.2.5(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3))) + '@intlify/bundle-utils': 11.2.5(vue-i18n@11.4.10(vue@3.5.43(typescript@6.0.3))) '@intlify/shared': 11.4.10 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.4.10)(@vue/compiler-dom@3.5.42)(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.4.10)(@vue/compiler-dom@3.5.42)(vue-i18n@11.4.10(vue@3.5.43(typescript@6.0.3)))(vue@3.5.43(typescript@6.0.3)) '@rollup/pluginutils': 5.4.0(rollup@4.63.1) '@typescript-eslint/scope-manager': 8.69.0 '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3) @@ -6898,10 +6878,10 @@ snapshots: pathe: 2.0.3 picocolors: 1.1.1 unplugin: 2.3.11 - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) optionalDependencies: vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) - vue-i18n: 11.4.10(vue@3.5.42(typescript@6.0.3)) + vue-i18n: 11.4.10(vue@3.5.43(typescript@6.0.3)) transitivePeerDependencies: - '@vue/compiler-dom' - eslint @@ -6913,14 +6893,14 @@ snapshots: '@intlify/utils@0.14.1': {} - '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.4.10)(@vue/compiler-dom@3.5.42)(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.4.10)(@vue/compiler-dom@3.5.42)(vue-i18n@11.4.10(vue@3.5.43(typescript@6.0.3)))(vue@3.5.43(typescript@6.0.3))': dependencies: '@babel/parser': 7.29.8 optionalDependencies: '@intlify/shared': 11.4.10 '@vue/compiler-dom': 3.5.42 - vue: 3.5.42(typescript@6.0.3) - vue-i18n: 11.4.10(vue@3.5.42(typescript@6.0.3)) + vue: 3.5.43(typescript@6.0.3) + vue-i18n: 11.4.10(vue@3.5.43(typescript@6.0.3)) '@ioredis/commands@1.10.0': {} @@ -7178,12 +7158,12 @@ snapshots: pkg-types: 2.3.2 semver: 7.8.5 - '@nuxt/devtools@3.4.2(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@nuxt/devtools@3.4.2(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3))': dependencies: '@nuxt/devtools-kit': 3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@nuxt/devtools-wizard': 3.4.2 '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - '@vue/devtools-core': 8.2.1(vue@3.5.42(typescript@6.0.3)) + '@vue/devtools-core': 8.2.1(vue@3.5.43(typescript@6.0.3)) '@vue/devtools-kit': 8.2.1 birpc: 4.2.0 consola: 3.4.2 @@ -7211,7 +7191,7 @@ snapshots: unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2)) vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vite-plugin-inspect: 11.4.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - vite-plugin-vue-tracer: 1.5.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + vite-plugin-vue-tracer: 1.5.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)) which: 6.0.1 ws: 8.21.3 transitivePeerDependencies: @@ -7243,7 +7223,7 @@ snapshots: - utf-8-validate - vue - '@nuxt/eslint-config@1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': + '@nuxt/eslint-config@1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.43)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: '@antfu/install-pkg': 2.0.1 '@clack/prompts': 1.7.0 @@ -7262,7 +7242,7 @@ snapshots: eslint-plugin-regexp: 3.3.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) eslint-plugin-unicorn: 73.0.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)))(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(vue-eslint-parser@10.4.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.43)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) globals: 17.12.0 local-pkg: 1.2.1 pathe: 2.0.3 @@ -7283,11 +7263,11 @@ snapshots: - supports-color - typescript - '@nuxt/eslint@1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': + '@nuxt/eslint@1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.43)(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))': dependencies: '@eslint/config-inspector': 3.4.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(srvx@0.11.22) '@nuxt/devtools-kit': 3.4.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - '@nuxt/eslint-config': 1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@nuxt/eslint-config': 1.17.0(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.43)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@nuxt/eslint-plugin': 1.17.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) chokidar: 5.0.0 @@ -7409,11 +7389,11 @@ snapshots: - rolldown - unplugin - '@nuxt/nitro-server@4.5.2(0686c853727f9ff21a16cd78c1fd8c39)': + '@nuxt/nitro-server@4.5.2(53c38ddc10d08ab112f8efd352a551ca)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - '@unhead/vue': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@unhead/vue': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)) '@vue/shared': 3.5.42 consola: 3.4.2 defu: 6.1.7 @@ -7428,7 +7408,7 @@ snapshots: mocked-exports: 0.1.1 nitropack: 2.13.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0))(oxc-parser@0.141.0)(rolldown@1.2.7)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) nostics: 1.2.0 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.43)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) nypm: 0.6.9 ohash: 2.0.12 pathe: 2.0.3 @@ -7437,7 +7417,7 @@ snapshots: ufo: 1.6.4 unctx: 3.0.1(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2)) - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) vue-bundle-renderer: 2.3.2 vue-devtools-stub: 0.1.0 optionalDependencies: @@ -7512,52 +7492,6 @@ snapshots: rc9: 3.1.0 std-env: 4.2.0 - '@nuxt/test-utils@4.2.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11)': - dependencies: - '@clack/prompts': 1.7.0 - '@nuxt/devtools-kit': 2.7.0(magicast@0.5.4)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - '@nuxt/kit': 3.21.11(magicast@0.5.4) - c12: 3.3.4(magicast@0.5.4) - consola: 3.4.2 - defu: 6.1.7 - destr: 2.0.5 - estree-walker: 3.0.3 - exsolve: 1.1.1 - fake-indexeddb: 6.2.5 - get-port-please: 3.2.0 - h3: 1.15.11 - local-pkg: 1.2.1 - magic-string: 1.2.3 - node-fetch-native: 1.6.7 - node-mock-http: 1.0.5 - nypm: 0.6.9 - ofetch: 1.5.1 - pathe: 2.0.3 - perfect-debounce: 2.1.0 - radix3: 1.1.2 - scule: 1.3.0 - std-env: 4.2.0 - tinyexec: 1.3.1 - ufo: 1.6.4 - unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - vitest-environment-nuxt: 2.0.0 - vue: 3.5.42(typescript@6.0.3) - optionalDependencies: - '@vitest/ui': 4.1.11(vitest@4.1.11) - vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - magicast - - rolldown - - rollup - - typescript - - unloader - - vite - - webpack - '@nuxt/test-utils@4.3.2(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11)': dependencies: '@clack/prompts': 1.7.0 @@ -7587,7 +7521,7 @@ snapshots: ufo: 1.6.4 unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) vitest-environment-nuxt: 2.0.0 - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) optionalDependencies: '@vitest/ui': 4.1.11(vitest@4.1.11) vitest: 4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) @@ -7604,11 +7538,11 @@ snapshots: - vite - webpack - '@nuxt/vite-builder@4.5.2(f82ad62488b0dbcae9cdd559c2e00645)': + '@nuxt/vite-builder@4.5.2(4bee5a9e48d6ba36b588d43e9fbd0f2a)': dependencies: '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - '@vitejs/plugin-vue': 6.0.8(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': 5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@vitejs/plugin-vue': 6.0.8(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)) + '@vitejs/plugin-vue-jsx': 5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)) autoprefixer: 10.5.5(postcss@8.5.28) consola: 3.4.2 cssnano: 8.0.10(postcss@8.5.28) @@ -7622,7 +7556,7 @@ snapshots: knitwork: 1.3.0 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.43)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) nypm: 0.6.9 pathe: 2.0.3 pkg-types: 2.3.2 @@ -7636,7 +7570,7 @@ snapshots: vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vite-node: 6.0.0(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) vite-plugin-checker: 0.14.5(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(optionator@0.9.4)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3)) - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) vue-bundle-renderer: 2.3.2 optionalDependencies: '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) @@ -7687,13 +7621,13 @@ snapshots: - rolldown - unplugin - '@nuxtjs/i18n@10.6.0(@vue/compiler-dom@3.5.42)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@nuxtjs/i18n@10.6.0(@vue/compiler-dom@3.5.42)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(magicast@0.5.4)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3))': dependencies: '@intlify/core': 11.4.10 '@intlify/h3': 0.7.4 '@intlify/message-compiler': 11.4.10 '@intlify/shared': 11.4.10 - '@intlify/unplugin-vue-i18n': 11.2.5(@vue/compiler-dom@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)))(vue@3.5.42(typescript@6.0.3)) + '@intlify/unplugin-vue-i18n': 11.2.5(@vue/compiler-dom@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(rollup@4.63.1)(supports-color@10.2.2)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-i18n@11.4.10(vue@3.5.43(typescript@6.0.3)))(vue@3.5.43(typescript@6.0.3)) '@intlify/utils': 0.14.1 '@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.63.1) '@nuxt/kit': 4.5.2(magic-string@0.30.21)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) @@ -7716,8 +7650,8 @@ snapshots: unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unrouting: 0.2.3 unstorage: 1.17.5(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2)) - vue-i18n: 11.4.10(vue@3.5.42(typescript@6.0.3)) - vue-router: 5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + vue-i18n: 11.4.10(vue@3.5.43(typescript@6.0.3)) + vue-router: 5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7920,10 +7854,10 @@ snapshots: '@phc/format@1.0.0': {} - '@pinia/nuxt@1.0.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': + '@pinia/nuxt@1.0.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))': dependencies: '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) + pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)) transitivePeerDependencies: - magic-string - magicast @@ -8178,10 +8112,10 @@ snapshots: '@tanstack/virtual-core@3.17.8': {} - '@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3))': + '@tanstack/vue-virtual@3.13.36(vue@3.5.43(typescript@6.0.3))': dependencies: '@tanstack/virtual-core': 3.17.8 - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) '@tybys/wasm-util@0.10.3': dependencies: @@ -8330,13 +8264,13 @@ snapshots: - rollup - unloader - '@unhead/vue@3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@unhead/vue@3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3))': dependencies: '@unhead/bundler': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(unhead@3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) hookable: 6.1.1 unhead: 3.4.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) optionalDependencies: vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: @@ -8442,7 +8376,7 @@ snapshots: - rollup - supports-color - '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3))': dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) @@ -8450,15 +8384,15 @@ snapshots: '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.8(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.8(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': dependencies: @@ -8540,7 +8474,7 @@ snapshots: optionalDependencies: typescript: 6.0.3 - '@vue-macros/common@3.1.4(vue@3.5.42(typescript@6.0.3))': + '@vue-macros/common@3.1.4(vue@3.5.43(typescript@6.0.3))': dependencies: '@vue/compiler-sfc': 3.5.42 ast-kit: 2.2.0 @@ -8548,7 +8482,7 @@ snapshots: magic-string-ast: 1.0.3 unplugin-utils: 0.3.2 optionalDependencies: - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) '@vue/babel-helper-vue-transform-on@2.0.1': {} @@ -8587,11 +8521,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.43': + dependencies: + '@babel/parser': 7.29.8 + '@vue/shared': 3.5.43 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.42': dependencies: '@vue/compiler-core': 3.5.42 '@vue/shared': 3.5.42 + '@vue/compiler-dom@3.5.43': + dependencies: + '@vue/compiler-core': 3.5.43 + '@vue/shared': 3.5.43 + '@vue/compiler-sfc@3.5.42': dependencies: '@babel/parser': 7.29.8 @@ -8604,22 +8551,39 @@ snapshots: postcss: 8.5.28 source-map-js: 1.2.1 + '@vue/compiler-sfc@3.5.43': + dependencies: + '@babel/parser': 7.29.8 + '@vue/compiler-core': 3.5.43 + '@vue/compiler-dom': 3.5.43 + '@vue/compiler-ssr': 3.5.43 + '@vue/shared': 3.5.43 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.28 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.5.42': dependencies: '@vue/compiler-dom': 3.5.42 '@vue/shared': 3.5.42 + '@vue/compiler-ssr@3.5.43': + dependencies: + '@vue/compiler-dom': 3.5.43 + '@vue/shared': 3.5.43 + '@vue/devtools-api@6.6.4': {} '@vue/devtools-api@8.2.1': dependencies: '@vue/devtools-kit': 8.2.1 - '@vue/devtools-core@8.2.1(vue@3.5.42(typescript@6.0.3))': + '@vue/devtools-core@8.2.1(vue@3.5.43(typescript@6.0.3))': dependencies: '@vue/devtools-kit': 8.2.1 '@vue/devtools-shared': 8.2.1 - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) '@vue/devtools-kit@8.2.1': dependencies: @@ -8640,47 +8604,49 @@ snapshots: path-browserify: 1.0.1 picomatch: 4.0.7 - '@vue/reactivity@3.5.42': + '@vue/reactivity@3.5.43': dependencies: - '@vue/shared': 3.5.42 + '@vue/shared': 3.5.43 - '@vue/runtime-core@3.5.42': + '@vue/runtime-core@3.5.43': dependencies: - '@vue/reactivity': 3.5.42 - '@vue/shared': 3.5.42 + '@vue/reactivity': 3.5.43 + '@vue/shared': 3.5.43 - '@vue/runtime-dom@3.5.42': + '@vue/runtime-dom@3.5.43': dependencies: - '@vue/reactivity': 3.5.42 - '@vue/runtime-core': 3.5.42 - '@vue/shared': 3.5.42 + '@vue/reactivity': 3.5.43 + '@vue/runtime-core': 3.5.43 + '@vue/shared': 3.5.43 csstype: 3.2.3 - '@vue/server-renderer@3.5.42': + '@vue/server-renderer@3.5.43': dependencies: - '@vue/compiler-ssr': 3.5.42 - '@vue/runtime-dom': 3.5.42 - '@vue/shared': 3.5.42 + '@vue/compiler-ssr': 3.5.43 + '@vue/runtime-dom': 3.5.43 + '@vue/shared': 3.5.43 '@vue/shared@3.5.42': {} - '@vueuse/core@14.4.0(vue@3.5.42(typescript@6.0.3))': + '@vue/shared@3.5.43': {} + + '@vueuse/core@14.4.0(vue@3.5.43(typescript@6.0.3))': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 14.4.0 - '@vueuse/shared': 14.4.0(vue@3.5.42(typescript@6.0.3)) - vue: 3.5.42(typescript@6.0.3) + '@vueuse/shared': 14.4.0(vue@3.5.43(typescript@6.0.3)) + vue: 3.5.43(typescript@6.0.3) '@vueuse/metadata@14.4.0': {} - '@vueuse/nuxt@14.4.0(de6da0bafaae4e26bff4942e9a767283)': + '@vueuse/nuxt@14.4.0(d3e414f291a94191ad8ee9803f470127)': dependencies: '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - '@vueuse/core': 14.4.0(vue@3.5.42(typescript@6.0.3)) + '@vueuse/core': 14.4.0(vue@3.5.43(typescript@6.0.3)) '@vueuse/metadata': 14.4.0 local-pkg: 1.2.1 - nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) - vue: 3.5.42(typescript@6.0.3) + nuxt: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.43)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0) + vue: 3.5.43(typescript@6.0.3) transitivePeerDependencies: - magic-string - magicast @@ -8688,9 +8654,9 @@ snapshots: - rolldown - unplugin - '@vueuse/shared@14.4.0(vue@3.5.42(typescript@6.0.3))': + '@vueuse/shared@14.4.0(vue@3.5.43(typescript@6.0.3))': dependencies: - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) abbrev@3.0.1: {} @@ -9564,9 +9530,9 @@ snapshots: '@stylistic/eslint-plugin': 5.10.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)) '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.42)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)): + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.43)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)): dependencies: - '@vue/compiler-sfc': 3.5.42 + '@vue/compiler-sfc': 3.5.43 eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2) eslint-scope@9.1.2: @@ -10685,17 +10651,17 @@ snapshots: nuxt-define@1.0.0: {} - nuxt@4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.42)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0): + nuxt@4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@libsql/client@0.18.0)(@oxc-project/types@0.148.0)(@types/node@26.4.1)(@vue/compiler-sfc@3.5.43)(cac@7.0.0)(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(drizzle-orm@0.45.2(@libsql/client@0.18.0))(esbuild@0.28.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.141.0)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.7)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.13)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@6.0.3))(yaml@2.9.0): dependencies: '@dxup/nuxt': 0.5.10(esbuild@0.28.2)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.2)(cac@7.0.0)(magicast@0.5.4)(supports-color@10.2.2) - '@nuxt/devtools': 3.4.2(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@nuxt/devtools': 3.4.2(db0@0.3.4(@libsql/client@0.18.0)(drizzle-orm@0.45.2(@libsql/client@0.18.0)))(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.2.3)(oxc-parser@0.141.0)(rolldown@1.2.7)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)) '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - '@nuxt/nitro-server': 4.5.2(0686c853727f9ff21a16cd78c1fd8c39) + '@nuxt/nitro-server': 4.5.2(53c38ddc10d08ab112f8efd352a551ca) '@nuxt/schema': 4.5.2 '@nuxt/telemetry': 2.9.1(@nuxt/kit@4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)))) - '@nuxt/vite-builder': 4.5.2(f82ad62488b0dbcae9cdd559c2e00645) - '@unhead/vue': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + '@nuxt/vite-builder': 4.5.2(4bee5a9e48d6ba36b588d43e9fbd0f2a) + '@unhead/vue': 3.4.0(@oxc-project/types@0.148.0)(esbuild@0.28.2)(lightningcss@1.33.0)(oxc-parser@0.141.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)) '@vue/shared': 3.5.42 chokidar: 5.0.0 compatx: 0.2.0 @@ -10744,9 +10710,9 @@ snapshots: unrouting: 0.2.3 untyped: 2.0.0 verkit: 0.3.2 - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) vue-component-type-helpers: 3.3.11 - vue-router: 5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)) + vue-router: 5.3.1(@vue/compiler-sfc@3.5.43)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)) optionalDependencies: '@types/node': 26.4.1 transitivePeerDependencies: @@ -10844,6 +10810,8 @@ snapshots: obug@2.2.1: {} + obug@3.0.0: {} + ofetch@1.5.1: dependencies: destr: 2.0.5 @@ -11027,11 +10995,11 @@ snapshots: picomatch@4.0.7: {} - pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)): + pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)): dependencies: '@vue/devtools-api': 8.2.1 nostics: 1.2.0 - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 @@ -11360,19 +11328,19 @@ snapshots: dependencies: jsesc: 3.1.0 - reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)): + reka-ui@2.10.4(vue@3.5.43(typescript@6.0.3)): dependencies: '@floating-ui/dom': 1.8.0 - '@floating-ui/vue': 1.1.11(vue@3.5.42(typescript@6.0.3)) + '@floating-ui/vue': 1.1.11(vue@3.5.43(typescript@6.0.3)) '@internationalized/date': 3.12.4 '@internationalized/number': 3.6.8 - '@tanstack/vue-virtual': 3.13.36(vue@3.5.42(typescript@6.0.3)) - '@vueuse/core': 14.4.0(vue@3.5.42(typescript@6.0.3)) - '@vueuse/shared': 14.4.0(vue@3.5.42(typescript@6.0.3)) + '@tanstack/vue-virtual': 3.13.36(vue@3.5.43(typescript@6.0.3)) + '@vueuse/core': 14.4.0(vue@3.5.43(typescript@6.0.3)) + '@vueuse/shared': 14.4.0(vue@3.5.43(typescript@6.0.3)) aria-hidden: 1.2.6 defu: 6.1.7 ohash: 2.0.12 - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) transitivePeerDependencies: - '@vue/composition-api' @@ -12138,7 +12106,7 @@ snapshots: optionalDependencies: '@nuxt/kit': 4.5.2(magic-string@1.2.3)(magicast@0.5.4)(oxc-parser@0.141.0)(rolldown@1.2.7)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))) - vite-plugin-vue-tracer@1.5.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): + vite-plugin-vue-tracer@1.5.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.1.1 @@ -12146,7 +12114,7 @@ snapshots: pathe: 2.0.3 source-map-js: 1.2.1 vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0): dependencies: @@ -12166,7 +12134,7 @@ snapshots: vitest-environment-nuxt@2.0.0: dependencies: - '@nuxt/test-utils': 4.2.0(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) + '@nuxt/test-utils': 4.3.2(@vitest/ui@4.1.11)(esbuild@0.28.2)(magicast@0.5.4)(rolldown@1.2.7)(rollup@4.63.1)(typescript@6.0.3)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vitest@4.1.11) vitest@4.1.11(@types/node@26.4.1)(@vitest/coverage-v8@4.1.11)(@vitest/ui@4.1.11)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)): dependencies: @@ -12205,9 +12173,9 @@ snapshots: vue-component-type-helpers@3.3.11: {} - vue-demi@0.14.10(vue@3.5.42(typescript@6.0.3)): + vue-demi@0.14.10(vue@3.5.43(typescript@6.0.3)): dependencies: - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) vue-devtools-stub@0.1.0: {} @@ -12223,17 +12191,17 @@ snapshots: transitivePeerDependencies: - supports-color - vue-i18n@11.4.10(vue@3.5.42(typescript@6.0.3)): + vue-i18n@11.4.10(vue@3.5.43(typescript@6.0.3)): dependencies: '@intlify/core-base': 11.4.10 '@intlify/devtools-types': 11.4.10 '@intlify/shared': 11.4.10 '@vue/devtools-api': 6.6.4 - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) - vue-router@5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.42(typescript@6.0.3)): + vue-router@5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)): dependencies: - '@vue-macros/common': 3.1.4(vue@3.5.42(typescript@6.0.3)) + '@vue-macros/common': 3.1.4(vue@3.5.43(typescript@6.0.3)) '@vue/devtools-api': 8.2.1 ast-walker-scope: 0.9.0 chokidar: 5.0.0 @@ -12249,10 +12217,43 @@ snapshots: tinyglobby: 0.2.17 unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) unplugin-utils: 0.3.2 - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) optionalDependencies: '@vue/compiler-sfc': 3.5.42 - pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.42(typescript@6.0.3)) + pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)) + vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) + transitivePeerDependencies: + - '@farmfe/core' + - '@rspack/core' + - bun-types-no-globals + - esbuild + - rolldown + - rollup + - unloader + - webpack + + vue-router@5.3.1(@vue/compiler-sfc@3.5.43)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)))(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0))(vue@3.5.43(typescript@6.0.3)): + dependencies: + '@vue-macros/common': 3.1.4(vue@3.5.43(typescript@6.0.3)) + '@vue/devtools-api': 8.2.1 + ast-walker-scope: 0.9.0 + chokidar: 5.0.0 + confbox: 0.2.4 + local-pkg: 1.2.1 + magic-string: 0.30.21 + mlly: 1.8.2 + muggle-string: 0.4.1 + nostics: 1.2.0 + pathe: 2.0.3 + picomatch: 4.0.7 + scule: 1.3.0 + tinyglobby: 0.2.17 + unplugin: 3.3.0(esbuild@0.28.2)(rolldown@1.2.7)(rollup@4.63.1)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0)) + unplugin-utils: 0.3.2 + vue: 3.5.43(typescript@6.0.3) + optionalDependencies: + '@vue/compiler-sfc': 3.5.43 + pinia: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.43(typescript@6.0.3)) vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' @@ -12270,18 +12271,18 @@ snapshots: '@vue/language-core': 3.3.11 typescript: 6.0.3 - vue3-apexcharts@1.11.1(apexcharts@6.10.0)(vue@3.5.42(typescript@6.0.3)): + vue3-apexcharts@1.11.1(apexcharts@6.10.0)(vue@3.5.43(typescript@6.0.3)): dependencies: apexcharts: 6.10.0 - vue: 3.5.42(typescript@6.0.3) + vue: 3.5.43(typescript@6.0.3) - vue@3.5.42(typescript@6.0.3): + vue@3.5.43(typescript@6.0.3): dependencies: - '@vue/compiler-dom': 3.5.42 - '@vue/compiler-sfc': 3.5.42 - '@vue/runtime-dom': 3.5.42 - '@vue/server-renderer': 3.5.42 - '@vue/shared': 3.5.42 + '@vue/compiler-dom': 3.5.43 + '@vue/compiler-sfc': 3.5.43 + '@vue/runtime-dom': 3.5.43 + '@vue/server-renderer': 3.5.43 + '@vue/shared': 3.5.43 optionalDependencies: typescript: 6.0.3 From 069e6f0ad683ded54e3627eb8d5971f66e110f24 Mon Sep 17 00:00:00 2001 From: Nikolas <160475670+Loudhot@users.noreply.github.com> Date: Thu, 24 Sep 2026 13:17:16 +0300 Subject: [PATCH 22/31] Update uk.json (#2821) * Update uk.json * fix formatting --------- Co-authored-by: Bernd Storath --- src/i18n/locales/uk.json | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index 70751ba8..ac96bf8d 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -153,6 +153,9 @@ "sectionAdvanced": "Додатково", "noItems": "Немає елементів", "nullNoItems": "Немає елементів. Використовується глобальна конфігурація", + "nullNotSet": "Не встановлено", + "set": "Встановити", + "unset": "Скасувати встановлення", "add": "Додати" }, "admin": { @@ -244,10 +247,12 @@ "cidr": "CIDR", "device": "Пристрій", "cidrValid": "CIDR має бути дійсним", - "routingTable": "Таблиця маршрутизації має бути auto, off або номером таблиці" + "routingTable": "Таблиця маршрутизації має бути auto, off або номером таблиці", + "headerProtectionJunkSize": "Розміри сміття S1-S4 мають бути щонайменше 12, якщо встановлено ключ захисту заголовків" }, "otl": "Одноразове посилання", "stringMalformed": "Рядок має неправильний формат", + "keyMalformed": "Ключ має бути ключем довжиною 32 байти, закодованим у Base64", "body": "Тіло має бути коректним об'єктом", "hook": "Hook", "enabled": "Увімкнено", @@ -304,6 +309,25 @@ "i4Description": "Пакет-імітація протоколу у hex-форматі: ", "i5Label": "Спеціальний сміттєвий пакет 5 (I5)", "i5Description": "Пакет-імітація протоколу у hex-форматі: ", + "rangeNote": "Наведені нижче параметри приймають одне число або включний діапазон (0–65535), наприклад 30 або 30–90", + "headerProtectionKeyLabel": "Ключ захисту заголовків", + "headerProtectionKeyDescription": "Ключ Base64 довжиною 32 байти, який використовується для шифрування заголовків пакетів. Має збігатися з обох боків, тому копіюється до кожного клієнта. Потребує значень S1-S4 не менше 12", + "contentPaddingAdditionLabel": "Додавання доповнення до вмісту", + "contentPaddingAdditionDescription": "Випадкова кількість байтів, що додається до транспортних пакетів перед шифруванням", + "rekeyAfterTimeLabel": "Повторне створення ключа через", + "rekeyAfterTimeDescription": "Кількість секунд до повторного узгодження сеансу (типове значення WireGuard: 120)", + "rekeyTimeoutLabel": "Час очікування повторного створення ключа", + "rekeyTimeoutDescription": "Кількість секунд між повторними спробами рукостискання (типове значення WireGuard: 5)", + "rejectAfterTimeLabel": "Відхиляти після", + "rejectAfterTimeDescription": "Тривалість сеансу в секундах (типове значення WireGuard: 180)", + "keepaliveTimeoutLabel": "Час очікування Keepalive", + "keepaliveTimeoutDescription": "Кількість секунд бездіяльності перед надсиланням Keepalive (типове значення WireGuard: 10)", + "maxHandshakeAttemptsLabel": "Максимальна кількість спроб рукостискання", + "maxHandshakeAttemptsDescription": "Кількість спроб рукостискання перед припиненням спроб (типове значення WireGuard: 18)", + "randomTrailersLabel": "Випадкові кінцеві дані", + "randomTrailersDescription": "Додавати до пакетів рукостискання випадкову кількість байтів. Має збігатися з обох боків, тому копіюється до кожного клієнта", + "disableCookiesLabel": "Вимкнути cookie", + "disableCookiesDescription": "Не відповідати на рукостискання повідомленнями cookie під час високого навантаження. Впливає лише на цей бік тунелю", "mtuNote": "Значення залежать від MTU", "obfuscationParameters": "Параметри обфускації AmneziaWG" } From c06890fb2ec8e69bf9ad354932734524747fed75 Mon Sep 17 00:00:00 2001 From: Sebastien Tardif Date: Thu, 24 Sep 2026 03:20:35 -0700 Subject: [PATCH 23/31] fix: bracket IPv6 hosts in client Endpoint (#2823) Client configs used host:port. An IPv6 host became an invalid Endpoint. Format at emit time so existing stored hosts work. Signed-off-by: Sebastien Tardif --- .../database/repositories/userConfig/service.ts | 2 -- src/server/utils/endpoint.ts | 15 +++++++++++++++ src/server/utils/wgHelper.ts | 3 ++- src/test/unit/endpoint.spec.ts | 17 +++++++++++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 src/server/utils/endpoint.ts create mode 100644 src/test/unit/endpoint.spec.ts diff --git a/src/server/database/repositories/userConfig/service.ts b/src/server/database/repositories/userConfig/service.ts index 7437ca04..bda53932 100644 --- a/src/server/database/repositories/userConfig/service.ts +++ b/src/server/database/repositories/userConfig/service.ts @@ -36,8 +36,6 @@ export class UserConfigService { return userConfig; } - // TODO: wrap ipv6 host in square brackets - /** * sets host of user config * diff --git a/src/server/utils/endpoint.ts b/src/server/utils/endpoint.ts new file mode 100644 index 00000000..9db12c93 --- /dev/null +++ b/src/server/utils/endpoint.ts @@ -0,0 +1,15 @@ +import { isIPv6 } from 'is-ip'; + +/** + * WireGuard Endpoint host:port. IPv6 hosts need brackets. + */ +export function formatEndpoint(host: string, port: number): string { + const bare = + host.startsWith('[') && host.endsWith(']') ? host.slice(1, -1) : host; + + if (isIPv6(bare)) { + return `[${bare}]:${port}`; + } + + return `${bare}:${port}`; +} diff --git a/src/server/utils/wgHelper.ts b/src/server/utils/wgHelper.ts index cb289a8e..7f2a07ef 100644 --- a/src/server/utils/wgHelper.ts +++ b/src/server/utils/wgHelper.ts @@ -9,6 +9,7 @@ import { import { removeNewlines, iptablesTemplate } from '#server/utils/template'; import { exec } from '#server/utils/cmd'; import { WG_ENV } from '#server/utils/config'; +import { formatEndpoint } from '#server/utils/endpoint'; import type { ClientType } from '#db/repositories/client/types'; import type { InterfaceType } from '#db/repositories/interface/types'; import type { UserConfigType } from '#db/repositories/userConfig/types'; @@ -127,7 +128,7 @@ PublicKey = ${wgInterface.publicKey} PresharedKey = ${client.preSharedKey} AllowedIPs = ${(client.allowedIps ?? userConfig.defaultAllowedIps).join(', ')} PersistentKeepalive = ${client.persistentKeepalive} -Endpoint = ${userConfig.host}:${userConfig.port}`; +Endpoint = ${formatEndpoint(userConfig.host, userConfig.port)}`; }, generatePrivateKey: () => { diff --git a/src/test/unit/endpoint.spec.ts b/src/test/unit/endpoint.spec.ts new file mode 100644 index 00000000..c3c6b91f --- /dev/null +++ b/src/test/unit/endpoint.spec.ts @@ -0,0 +1,17 @@ +import { describe, expect, test } from 'vitest'; + +import { formatEndpoint } from '#server/utils/endpoint'; + +describe('formatEndpoint', () => { + test('keeps IPv4 and hostnames unbracketed', () => { + expect(formatEndpoint('203.0.113.10', 51820)).toBe('203.0.113.10:51820'); + expect(formatEndpoint('vpn.example.com', 51820)).toBe( + 'vpn.example.com:51820' + ); + }); + + test('wraps IPv6 hosts in brackets', () => { + expect(formatEndpoint('2001:db8::1', 51820)).toBe('[2001:db8::1]:51820'); + expect(formatEndpoint('[2001:db8::1]', 51820)).toBe('[2001:db8::1]:51820'); + }); +}); From 6add94171282b4613f34f9e6ce456ebbc5927608 Mon Sep 17 00:00:00 2001 From: familyman-131 Date: Thu, 24 Sep 2026 12:23:29 +0200 Subject: [PATCH 24/31] feat: expose peer endpoint in Prometheus metrics (#2808) feat: add wireguard_peer_endpoint_info metric to Prometheus exporter Exposes each peer's current endpoint (IP:port) as a Prometheus gauge, similar to the existing endpoint field already returned by the JSON metrics route. This makes it possible to alert on a peer's source address changing unexpectedly, which can indicate that a client config was copied and is being used from another location. Co-authored-by: Claude Sonnet 5 --- src/server/routes/metrics/prometheus.get.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/server/routes/metrics/prometheus.get.ts b/src/server/routes/metrics/prometheus.get.ts index 9da7bee1..a79247f1 100644 --- a/src/server/routes/metrics/prometheus.get.ts +++ b/src/server/routes/metrics/prometheus.get.ts @@ -19,6 +19,7 @@ async function getPrometheusResponse() { const wireguardSentBytes = []; const wireguardReceivedBytes = []; const wireguardLatestHandshakeSeconds = []; + const wireguardEndpointInfo = []; for (const client of clients) { if (client.enabled === true) { wireguardEnabledPeersCount++; @@ -46,6 +47,17 @@ async function getPrometheusResponse() { wireguardLatestHandshakeSeconds.push( `wireguard_latest_handshake_seconds{${id}} ${client.latestHandshakeAt ? (Date.now() - client.latestHandshakeAt.getTime()) / 1000 : 0}` ); + + if (client.endpoint) { + const endpointId = formatPrometheusLabels({ + interface: wgInterface.name, + name: client.name, + endpoint: client.endpoint, + }); + wireguardEndpointInfo.push( + `wireguard_peer_endpoint_info{${endpointId}} 1` + ); + } } const id = formatPrometheusLabels({ interface: wgInterface.name }); @@ -75,6 +87,10 @@ async function getPrometheusResponse() { '# TYPE wireguard_latest_handshake_seconds gauge', `${wireguardLatestHandshakeSeconds.join('\n')}`, '', + '# HELP wireguard_peer_endpoint_info Current endpoint (IP:port) of a connected peer', + '# TYPE wireguard_peer_endpoint_info gauge', + `${wireguardEndpointInfo.join('\n')}`, + '', ]; return returnText.join('\n'); From 0e1fe302eaf435330928a80e0c05db9a69f5c3bb Mon Sep 17 00:00:00 2001 From: Bernd Storath Date: Thu, 24 Sep 2026 12:33:31 +0200 Subject: [PATCH 25/31] better cidr validation fixes https://github.com/wg-easy/wg-easy/issues/2787 --- .../database/repositories/interface/types.ts | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/server/database/repositories/interface/types.ts b/src/server/database/repositories/interface/types.ts index e104fff4..f0e45ce6 100644 --- a/src/server/database/repositories/interface/types.ts +++ b/src/server/database/repositories/interface/types.ts @@ -39,10 +39,20 @@ const device = z .min(1, t('zod.interface.device')) .pipe(safeStringRefine); -const cidr = z +const cidr4 = z .string({ message: t('zod.interface.cidr') }) .min(1, { message: t('zod.interface.cidr') }) - .refine((value) => isCidr(value), { message: t('zod.interface.cidrValid') }) + .refine((value) => isCidr.v4(value), { + message: t('zod.interface.cidrValid'), + }) + .pipe(safeStringRefine); + +const cidr6 = z + .string({ message: t('zod.interface.cidr') }) + .min(1, { message: t('zod.interface.cidr') }) + .refine((value) => isCidr.v6(value), { + message: t('zod.interface.cidrValid'), + }) .pipe(safeStringRefine); /** @@ -54,8 +64,8 @@ const HEADER_PROTECTION_MIN_JUNK_SIZE = 12; export const InterfaceUpdateSchema = schemaForType()( z .object({ - ipv4Cidr: cidr, - ipv6Cidr: cidr, + device: device, + port: PortSchema, mtu: MtuSchema, routingTable: RoutingTableSchema, jC: JcSchema, @@ -83,8 +93,7 @@ export const InterfaceUpdateSchema = schemaForType()( maxHandshakeAttempts: AwgRangeSchema, randomTrailers: z.boolean().nullable(), disableCookies: z.boolean().nullable(), - port: PortSchema, - device: device, + enabled: EnabledSchema, firewallEnabled: EnabledSchema, }) @@ -113,7 +122,7 @@ export type InterfaceCidrUpdateType = { export const InterfaceCidrUpdateSchema = schemaForType()( z.object({ - ipv4Cidr: cidr, - ipv6Cidr: cidr, + ipv4Cidr: cidr4, + ipv6Cidr: cidr6, }) ); From e1889bb1dafd724ea031aaad055a479fb66528c5 Mon Sep 17 00:00:00 2001 From: Bernd Storath Date: Thu, 24 Sep 2026 12:37:13 +0200 Subject: [PATCH 26/31] improve startup handling fixes https://github.com/wg-easy/wg-easy/issues/2788 --- src/server/utils/Database.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/utils/Database.ts b/src/server/utils/Database.ts index 7231d1c0..4da7c708 100644 --- a/src/server/utils/Database.ts +++ b/src/server/utils/Database.ts @@ -18,9 +18,9 @@ const nullObject = new Proxy( let provider = nullObject as never as DBServiceType; connect() - .then((db) => { + .then(async (db) => { provider = db; - WireGuard.Startup(); + await WireGuard.Startup(); }) .catch((err) => { console.log('Failed to connect to Database:', err); From 10bed8a7bbb54f53f2b8ea6441e1b3c723b12931 Mon Sep 17 00:00:00 2001 From: Bernd Storath Date: Thu, 24 Sep 2026 12:39:52 +0200 Subject: [PATCH 27/31] fix types introduced in https://github.com/wg-easy/wg-easy/commit/0e1fe302eaf435330928a80e0c05db9a69f5c3bb --- src/server/database/repositories/interface/types.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/server/database/repositories/interface/types.ts b/src/server/database/repositories/interface/types.ts index f0e45ce6..87eeda9e 100644 --- a/src/server/database/repositories/interface/types.ts +++ b/src/server/database/repositories/interface/types.ts @@ -31,7 +31,13 @@ export type InterfaceCreateType = Omit< export type InterfaceUpdateType = Omit< InterfaceCreateType, - 'name' | 'createdAt' | 'updatedAt' | 'privateKey' | 'publicKey' + | 'name' + | 'createdAt' + | 'updatedAt' + | 'privateKey' + | 'publicKey' + | 'ipv4Cidr' + | 'ipv6Cidr' >; const device = z From d3a6b37d4422dc7d3c79e27322fbda40b85cc087 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 12:45:07 +0200 Subject: [PATCH 28/31] Update dependency apexcharts to v7 (#2813) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- src/package.json | 2 +- src/pnpm-lock.yaml | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/package.json b/src/package.json index 539622e5..2cbe6bc5 100644 --- a/src/package.json +++ b/src/package.json @@ -32,7 +32,7 @@ "@tailwindcss/forms": "^0.5.11", "@vueuse/core": "^14.4.0", "@vueuse/nuxt": "^14.4.0", - "apexcharts": "^6.10.0", + "apexcharts": "^7.5.1", "argon2": "^0.45.1", "cidr-tools": "^13.0.1", "citty": "^0.2.2", diff --git a/src/pnpm-lock.yaml b/src/pnpm-lock.yaml index 35a526f1..c65a263e 100644 --- a/src/pnpm-lock.yaml +++ b/src/pnpm-lock.yaml @@ -197,8 +197,8 @@ importers: specifier: ^14.4.0 version: 14.4.0(d3e414f291a94191ad8ee9803f470127) apexcharts: - specifier: ^6.10.0 - version: 6.10.0 + specifier: ^7.5.1 + version: 7.5.1 argon2: specifier: ^0.45.1 version: 0.45.1 @@ -261,7 +261,7 @@ importers: version: 3.5.43(typescript@6.0.3) vue3-apexcharts: specifier: ^1.11.1 - version: 1.11.1(apexcharts@6.10.0)(vue@3.5.43(typescript@6.0.3)) + version: 1.11.1(apexcharts@7.5.1)(vue@3.5.43(typescript@6.0.3)) zod: specifier: ^4.6.4 version: 4.6.5 @@ -2656,11 +2656,11 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - apex-commons@0.5.0: - resolution: {integrity: sha512-xz83SgPREE1wGtoflvxjwJtcjzl5bKTz2/bDxWCZNL6QVjUNE47kMg/1Zqt0bSh6eOnmFCWlTDc3RU8o85N+wg==} + apex-commons@0.8.1: + resolution: {integrity: sha512-F7fqJVh0smeTu1d86uuRSNNZvaM/l11GNQMbu6oAiSvuXp+K8KCufg0oZTy2VQBEEipRLAdFqkHnphlVpTG0Gw==} - apexcharts@6.10.0: - resolution: {integrity: sha512-XkDW9pb5L5jrjox86Q20gR2w6YnU4hUpv+FjL1eKtYKQGtyTUSsnFeuUE8wVDz8hNNHbOEx7Sl9cjfCmhB3NVw==} + apexcharts@7.5.1: + resolution: {integrity: sha512-I+S/KSXKGwaCZx73CvAg7yLfM892NEZR2CG5UHkjGFjBq/LhesuglIGuaKn1fiGa5Z0voAyfFROLjWywZNyOEA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} archiver-utils@5.0.2: @@ -8709,11 +8709,11 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 - apex-commons@0.5.0: {} + apex-commons@0.8.1: {} - apexcharts@6.10.0: + apexcharts@7.5.1: dependencies: - apex-commons: 0.5.0 + apex-commons: 0.8.1 archiver-utils@5.0.2: dependencies: @@ -12271,9 +12271,9 @@ snapshots: '@vue/language-core': 3.3.11 typescript: 6.0.3 - vue3-apexcharts@1.11.1(apexcharts@6.10.0)(vue@3.5.43(typescript@6.0.3)): + vue3-apexcharts@1.11.1(apexcharts@7.5.1)(vue@3.5.43(typescript@6.0.3)): dependencies: - apexcharts: 6.10.0 + apexcharts: 7.5.1 vue: 3.5.43(typescript@6.0.3) vue@3.5.43(typescript@6.0.3): From a511961f3b47f4fa5580d6350beac95c1ce23af9 Mon Sep 17 00:00:00 2001 From: Sebastien Tardif Date: Fri, 25 Sep 2026 01:16:56 -0700 Subject: [PATCH 29/31] fix: omit private keys from client detail API (#2822) * fix: omit private keys from client detail API GET /api/client/:id spread the full DB row, including privateKey and preSharedKey. List endpoints already omit those fields. The edit UI does not read them; config download stays on /configuration. Signed-off-by: Sebastien Tardif * fix: read client detail through ClientService.getPublic GET /api/client/:id now uses getPublic, which excludes privateKey and preSharedKey in the query the same way getAllPublic does. Config download still uses get. Signed-off-by: Sebastien Tardif --------- Signed-off-by: Sebastien Tardif --- src/server/api/client/[clientId]/index.get.ts | 2 +- .../database/repositories/client/service.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/server/api/client/[clientId]/index.get.ts b/src/server/api/client/[clientId]/index.get.ts index 87428de2..b672f2d1 100644 --- a/src/server/api/client/[clientId]/index.get.ts +++ b/src/server/api/client/[clientId]/index.get.ts @@ -15,7 +15,7 @@ export default definePermissionEventHandler( validateZod(ClientGetSchema, event) ); - const result = await Database.clients.get(clientId); + const result = await Database.clients.getPublic(clientId); checkPermissions(result); if (!result) { diff --git a/src/server/database/repositories/client/service.ts b/src/server/database/repositories/client/service.ts index 3afb81d4..2e4d8c90 100644 --- a/src/server/database/repositories/client/service.ts +++ b/src/server/database/repositories/client/service.ts @@ -29,6 +29,15 @@ function createPreparedStatement(db: DBType) { findById: db.query.client .findFirst({ where: eq(client.id, sql.placeholder('id')) }) .prepare(), + findByIdPublic: db.query.client + .findFirst({ + where: eq(client.id, sql.placeholder('id')), + columns: { + privateKey: false, + preSharedKey: false, + }, + }) + .prepare(), toggle: db .update(client) .set({ enabled: sql.placeholder('enabled') as never as boolean }) @@ -150,10 +159,20 @@ export class ClientService { })); } + /** + * Includes WireGuard secrets. JSON API responses should use {@link getPublic}. + */ get(id: ID) { return this.#statements.findById.execute({ id }); } + /** + * Returns one client without sensitive data + */ + getPublic(id: ID) { + return this.#statements.findByIdPublic.execute({ id }); + } + async create({ name, expiresAt }: ClientCreateType) { const privateKey = await wg.generatePrivateKey(); const publicKey = await wg.getPublicKey(privateKey); From edaaeda506e2dae4e42a8f0a885fc0673f1b6c7c Mon Sep 17 00:00:00 2001 From: qwist1233-cpu Date: Fri, 25 Sep 2026 11:18:40 +0300 Subject: [PATCH 30/31] i18n(tr): add missing Turkish translations (#2828) Co-authored-by: qwist1233-cpu --- src/i18n/locales/tr.json | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 2860bb1f..584adbc0 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -153,6 +153,9 @@ "sectionAdvanced": "Gelişmiş", "noItems": "Öge yok", "nullNoItems": "Öge yok. Genel yapılandırma kullanılıyor.", + "nullNotSet": "Ayarlanmadı", + "set": "Ayarla", + "unset": "Kaldır", "add": "Ekle" }, "admin": { @@ -244,10 +247,12 @@ "cidr": "CIDR", "device": "Aygıt", "cidrValid": "Geçersiz CIDR", - "routingTable": "Yönlendirme tablosu auto, off veya bir tablo numarası olmalıdır" + "routingTable": "Yönlendirme tablosu auto, off veya bir tablo numarası olmalıdır", + "headerProtectionJunkSize": "Header Protection Key ayarlandığında S1-S4 junk boyutları en az 12 olmalıdır" }, "otl": "OTL (One Time Link)", "stringMalformed": "Hatalı format", + "keyMalformed": "Anahtar, 32 baytlık base64 kodlu bir anahtar olmalıdır", "body": "Body geçerli bir obje olmalıdır", "hook": "Hook", "enabled": "Aktif", @@ -304,6 +309,25 @@ "i4Description": "Hex formatında protocol mimic paketi: ", "i5Label": "Özel junk 5 (I5)", "i5Description": "Hex formatında protocol mimic paketi: ", + "rangeNote": "Aşağıdaki parametreler tek bir sayı veya kapsayıcı bir aralık (0-65535) kabul eder, örneğin 30 veya 30-90", + "headerProtectionKeyLabel": "Header protection anahtarı", + "headerProtectionKeyDescription": "Paket başlıklarını şifrelemek için kullanılan 32 baytlık base64 anahtar. Her iki tarafta da aynı olmalıdır, bu yüzden her istemciye kopyalanır. S1-S4'ün en az 12 olmasını gerektirir", + "contentPaddingAdditionLabel": "İçerik dolgu ekleme", + "contentPaddingAdditionDescription": "Şifrelemeden önce transport paketlerine eklenen rastgele miktarda bayt", + "rekeyAfterTimeLabel": "Yeniden anahtarlama süresi", + "rekeyAfterTimeDescription": "Oturum yeniden müzakere edilmeden önce geçecek saniye (WireGuard varsayılanı: 120)", + "rekeyTimeoutLabel": "Yeniden anahtarlama zaman aşımı", + "rekeyTimeoutDescription": "Handshake yeniden denemeleri arasındaki saniye (WireGuard varsayılanı: 5)", + "rejectAfterTimeLabel": "Reddetme süresi", + "rejectAfterTimeDescription": "Saniye cinsinden oturum ömrü (WireGuard varsayılanı: 180)", + "keepaliveTimeoutLabel": "Keepalive zaman aşımı", + "keepaliveTimeoutDescription": "Keepalive gönderilmeden önce boşta geçecek saniye (WireGuard varsayılanı: 10)", + "maxHandshakeAttemptsLabel": "Maks handshake denemesi", + "maxHandshakeAttemptsDescription": "Vazgeçmeden önceki handshake denemesi sayısı (WireGuard varsayılanı: 18)", + "randomTrailersLabel": "Rastgele son ekler", + "randomTrailersDescription": "Handshake paketlerine rastgele miktarda bayt ekler. Her iki tarafta da aynı olmalıdır, bu yüzden her istemciye kopyalanır", + "disableCookiesLabel": "Cookie'leri devre dışı bırak", + "disableCookiesDescription": "Yük altındayken handshake'lere cookie mesajlarıyla yanıt verme. Yalnızca tünelin bu tarafını etkiler", "mtuNote": "Değerler MTU'ya bağlıdır", "obfuscationParameters": "AmneziaWG Obfuscation Ayarları" } From 5f2009a955eb95c62c89f8797ce8b24cad4a0820 Mon Sep 17 00:00:00 2001 From: Bernd Storath Date: Fri, 25 Sep 2026 13:31:13 +0200 Subject: [PATCH 31/31] fix docs optional config ordering --- .../advanced/config/optional-config.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/content/advanced/config/optional-config.md b/docs/content/advanced/config/optional-config.md index dba5be54..518a73eb 100644 --- a/docs/content/advanced/config/optional-config.md +++ b/docs/content/advanced/config/optional-config.md @@ -14,6 +14,16 @@ You can set these environment variables to configure the container. They are not | `TRUSTED_PROXIES` | | `172.18.0.2,fd00:1234::/64` | Proxy IP addresses or CIDRs allowed to forward request metadata | | `WG_INTERFACE` | `wg0` | `wg1` | Name of the WireGuard interface | +/// note | IPv6 Caveats + +Disabling IPv6 will disable the creation of the default IPv6 firewall rules and won't add a IPv6 address to the interface and clients. + +You will however still see a IPv6 address in the Web UI, but it won't be used. + +This option can be removed in the future, as more devices support IPv6. + +/// + ## Trusted Proxies Set `TRUSTED_PROXIES` when wg-easy runs behind a reverse proxy and needs to use @@ -41,13 +51,3 @@ Set `WG_INTERFACE` to specify a custom interface name, useful if you are running environment: - WG_INTERFACE=wg1 ``` - -/// note | IPv6 Caveats - -Disabling IPv6 will disable the creation of the default IPv6 firewall rules and won't add a IPv6 address to the interface and clients. - -You will however still see a IPv6 address in the Web UI, but it won't be used. - -This option can be removed in the future, as more devices support IPv6. - -///