diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 85bff5b4..2de73bf8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,9 @@ jobs: permissions: contents: read pull-requests: write + env: + CHAIN_1_ID: 1337 + CHAIN_1_RPC_URL: http://localhost:8545 defaults: run: working-directory: ./ diff --git a/cspell-config/cspell-misc.txt b/cspell-config/cspell-misc.txt index d5d300ec..5543b54e 100644 --- a/cspell-config/cspell-misc.txt +++ b/cspell-config/cspell-misc.txt @@ -14,6 +14,7 @@ ethereum sepolia foundryup unpermitted +reauthentication // auth-server oidc diff --git a/package.json b/package.json index a23066b6..a84eadfa 100644 --- a/package.json +++ b/package.json @@ -57,5 +57,6 @@ "dependencies": { "prettier-plugin-solidity": "^1.4.1", "snarkjs": "^0.7.5" - } + }, + "pnpm": {} } diff --git a/packages/auth-server-api/.env.example b/packages/auth-server-api/.env.example index 01644550..a256fe3b 100644 --- a/packages/auth-server-api/.env.example +++ b/packages/auth-server-api/.env.example @@ -11,6 +11,23 @@ DEPLOYER_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf # Blockchain Configuration RPC_URL=http://127.0.0.1:8545 +# =================================================================== +# Supported Chains Configuration (REQUIRED) +# =================================================================== +# Define chains using numbered variables: CHAIN_1_*, CHAIN_2_*, etc. +# The system will automatically discover all chains starting from CHAIN_1. +# +# Required per chain: +# CHAIN_N_ID - Chain ID (positive integer) +# CHAIN_N_RPC_URL - RPC endpoint URL (optional in Prividium mode) +# +# Optional per chain: +# CHAIN_N_BASE_TOKEN_DECIMALS - Native token decimals (defaults to 18) +# +# =================================================================== +CHAIN_1_ID=1337 +CHAIN_1_RPC_URL=http://localhost:8545 + # Rate Limiting Configuration RATE_LIMIT_DEPLOY_MAX=20 RATE_LIMIT_DEPLOY_WINDOW_MS=3600000 # 1 hour @@ -24,10 +41,9 @@ RATE_LIMIT_DEPLOY_WINDOW_MS=3600000 # 1 hour # SESSION_VALIDATOR_ADDRESS=0x... # Prividium Mode Configuration (OPTIONAL) -# When enabled, requires user authentication via Prividium and routes deployments through Prividium RPC proxy +# When enabled, requires user authentication via Prividium and uses the Prividium SDK for RPC and auth # PRIVIDIUM_MODE=true -# PRIVIDIUM_RPC_PROXY_BASE_URL=https://rpc.prividium.io -# PRIVIDIUM_PERMISSIONS_BASE_URL=https://permissions.prividium.io +# PRIVIDIUM_API_URL=https://api.prividium.io # PRIVIDIUM_ADMIN_PRIVATE_KEY=0x... # Private key of a user with 'admin' role in Prividium # PRIVIDIUM_TEMPLATE_KEY=sso-smart-account # Template key for whitelisting deployed contracts # SSO_AUTH_SERVER_BASE_URL=https://sso.example.com # Base URL of the SSO auth server frontend (used as SIWE domain for admin authorization) diff --git a/packages/auth-server-api/package.json b/packages/auth-server-api/package.json index 6cfa8f34..90ed5d1b 100644 --- a/packages/auth-server-api/package.json +++ b/packages/auth-server-api/package.json @@ -15,6 +15,7 @@ "dotenv": "^16.4.7", "express": "^4.21.2", "express-rate-limit": "^7.5.0", + "prividium": "^0.7.0", "viem": "2.30.0", "zksync-sso-4337": "workspace:*", "zod": "^3.24.1" diff --git a/packages/auth-server-api/src/app.ts b/packages/auth-server-api/src/app.ts index a882bdeb..8bd03438 100644 --- a/packages/auth-server-api/src/app.ts +++ b/packages/auth-server-api/src/app.ts @@ -14,8 +14,9 @@ app.use(express.json()); // CORS configuration const allowlist = env.CORS_ORIGINS.split(",").map((origin) => origin.trim()); +const isAllowAll = allowlist.includes("*"); const corsOrigins = (origin: string | undefined, callback: (err: Error | null, allow?: boolean) => void) => { - if (!origin || allowlist.indexOf(origin) !== -1) { + if (!origin || isAllowAll || allowlist.indexOf(origin) !== -1) { callback(null, true); } else { callback(new Error("Not allowed by CORS")); diff --git a/packages/auth-server-api/src/config.ts b/packages/auth-server-api/src/config.ts index 834b249d..963e413c 100644 --- a/packages/auth-server-api/src/config.ts +++ b/packages/auth-server-api/src/config.ts @@ -3,7 +3,6 @@ import { readFileSync } from "fs"; import { dirname, join } from "path"; import { fileURLToPath } from "url"; import { type Chain, defineChain } from "viem"; -import { localhost } from "viem/chains"; import { z } from "zod"; // Load environment variables @@ -42,8 +41,7 @@ const envSchema = z.object({ GUARDIAN_EXECUTOR_ADDRESS: z.string().optional(), // Prividium Mode Configuration PRIVIDIUM_MODE: z.string().transform((v) => v === "true").default("false"), - PRIVIDIUM_PERMISSIONS_BASE_URL: z.string().optional(), - PRIVIDIUM_RPC_PROXY_BASE_URL: z.string().optional(), + PRIVIDIUM_API_URL: z.string().optional(), PRIVIDIUM_ADMIN_PRIVATE_KEY: z.string().optional(), PRIVIDIUM_TEMPLATE_KEY: z.string().optional(), SSO_AUTH_SERVER_BASE_URL: z.string().optional(), @@ -64,8 +62,7 @@ try { // Validate Prividium configuration when enabled if (env.PRIVIDIUM_MODE) { const missingPrividiumVars: string[] = []; - if (!env.PRIVIDIUM_PERMISSIONS_BASE_URL) missingPrividiumVars.push("PRIVIDIUM_PERMISSIONS_BASE_URL"); - if (!env.PRIVIDIUM_RPC_PROXY_BASE_URL) missingPrividiumVars.push("PRIVIDIUM_RPC_PROXY_BASE_URL"); + if (!env.PRIVIDIUM_API_URL) missingPrividiumVars.push("PRIVIDIUM_API_URL"); if (!env.PRIVIDIUM_ADMIN_PRIVATE_KEY) missingPrividiumVars.push("PRIVIDIUM_ADMIN_PRIVATE_KEY"); if (!env.PRIVIDIUM_TEMPLATE_KEY) missingPrividiumVars.push("PRIVIDIUM_TEMPLATE_KEY"); if (!env.SSO_AUTH_SERVER_BASE_URL) missingPrividiumVars.push("SSO_AUTH_SERVER_BASE_URL"); @@ -95,42 +92,92 @@ if (!FACTORY_ADDRESS || !EOA_VALIDATOR_ADDRESS || !WEBAUTHN_VALIDATOR_ADDRESS || process.exit(1); } -// Supported chains configuration -const zksyncOsTestnet = defineChain({ - id: 8022833, - name: "ZKsyncOS Testnet", - nativeCurrency: { - name: "Ether", - symbol: "ETH", - decimals: 18, - }, - rpcUrls: { - default: { - http: ["https://zksync-os-testnet-alpha.zksync.dev"], - }, - }, - blockExplorers: { - default: { - name: "ZKsyncOS Testnet Explorer", - url: "https://zksync-os-testnet-alpha.staging-scan-v2.zksync.dev", - }, - }, -}); -const zksyncOsLocal = defineChain({ - id: 6565, - name: "ZKsyncOS Local", - nativeCurrency: { - name: "Ether", - symbol: "ETH", - decimals: 18, - }, - rpcUrls: { - default: { - http: ["http://localhost:5050"], - }, - }, -}); -const SUPPORTED_CHAINS: Chain[] = [localhost, zksyncOsTestnet, zksyncOsLocal]; +/** + * Dynamically discovers and parses chain configurations from environment variables. + * Looks for CHAIN_N_ID, CHAIN_N_RPC_URL, etc. starting from N=1. + * Requires at least CHAIN_1_ID to be configured. + */ +function parseSupportedChains(): Chain[] { + // Check if CHAIN_1_ID exists + if (!process.env.CHAIN_1_ID) { + console.error("CHAIN_1_ID is required. Please configure at least one chain using CHAIN_N_* environment variables."); + console.error("\nExample configuration:"); + console.error(" CHAIN_1_ID=1337"); + console.error(" CHAIN_1_RPC_URL=http://localhost:8545"); + console.error(" CHAIN_1_BASE_TOKEN_DECIMALS=18 # Optional, defaults to 18"); + console.error("\nSee .env.example for more examples."); + process.exit(1); + } + + const chains: Chain[] = []; + let chainIndex = 1; + + // Keep discovering chains until CHAIN_N_ID doesn't exist + while (process.env[`CHAIN_${chainIndex}_ID`]) { + const chainIdStr = process.env[`CHAIN_${chainIndex}_ID`]!; + const rpcUrl = process.env[`CHAIN_${chainIndex}_RPC_URL`]; + const decimalsStr = process.env[`CHAIN_${chainIndex}_BASE_TOKEN_DECIMALS`]; + + // RPC URL is required in non-prividium mode (prividium uses SDK transport) + if (!rpcUrl && !env.PRIVIDIUM_MODE) { + console.error(`CHAIN_${chainIndex}_RPC_URL is required but not provided`); + process.exit(1); + } + + // Parse and validate chain ID + const chainId = parseInt(chainIdStr, 10); + if (isNaN(chainId) || chainId <= 0) { + console.error(`CHAIN_${chainIndex}_ID must be a positive integer, got: ${chainIdStr}`); + process.exit(1); + } + + // Parse decimals (default to 18) + let decimals = 18; + if (decimalsStr) { + decimals = parseInt(decimalsStr, 10); + if (isNaN(decimals) || decimals < 0 || decimals > 18) { + console.error(`CHAIN_${chainIndex}_BASE_TOKEN_DECIMALS must be between 0-18, got: ${decimalsStr}`); + process.exit(1); + } + } + + // Validate RPC URL format if provided + if (rpcUrl) { + try { + new URL(rpcUrl); + } catch { + console.error(`CHAIN_${chainIndex}_RPC_URL is not a valid URL: ${rpcUrl}`); + process.exit(1); + } + } + + // Create chain with defaults for name and currency + const chain = defineChain({ + id: chainId, + name: `Chain ${chainId}`, + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals, + }, + rpcUrls: { + default: { + http: rpcUrl ? [rpcUrl] : [], + }, + }, + }); + + chains.push(chain); + chainIndex++; + } + + console.log(`Loaded ${chains.length} chain(s) from environment:`, chains.map((c) => `${c.name} (${c.id})`).join(", ")); + + return chains; +} + +// Parse supported chains from environment +const SUPPORTED_CHAINS: Chain[] = parseSupportedChains(); function getChain(chainId: number): Chain { const chain = SUPPORTED_CHAINS.find((c) => c.id === chainId); @@ -143,20 +190,28 @@ function getChain(chainId: number): Chain { // Prividium configuration object for services export interface PrividiumConfig { enabled: boolean; - permissionsApiUrl: string; - proxyUrl: string; + apiUrl: string; adminPrivateKey: string; templateKey: string; ssoAuthServerBaseUrl: string; + domain: string; } const prividiumConfig: PrividiumConfig = { enabled: env.PRIVIDIUM_MODE, - permissionsApiUrl: env.PRIVIDIUM_PERMISSIONS_BASE_URL || "", - proxyUrl: env.PRIVIDIUM_RPC_PROXY_BASE_URL ? `${env.PRIVIDIUM_RPC_PROXY_BASE_URL}/rpc` : "", + apiUrl: env.PRIVIDIUM_API_URL || "", adminPrivateKey: env.PRIVIDIUM_ADMIN_PRIVATE_KEY || "", templateKey: env.PRIVIDIUM_TEMPLATE_KEY || "", ssoAuthServerBaseUrl: env.SSO_AUTH_SERVER_BASE_URL || "", + domain: (() => { + if (!env.SSO_AUTH_SERVER_BASE_URL) return ""; + try { + return new URL(env.SSO_AUTH_SERVER_BASE_URL).host; + } catch { + console.error(`SSO_AUTH_SERVER_BASE_URL is not a valid URL: ${env.SSO_AUTH_SERVER_BASE_URL}`); + process.exit(1); + } + })(), }; // Rate limiting configuration diff --git a/packages/auth-server-api/src/handlers/deploy-account.ts b/packages/auth-server-api/src/handlers/deploy-account.ts index c40c2eb8..290fef5d 100644 --- a/packages/auth-server-api/src/handlers/deploy-account.ts +++ b/packages/auth-server-api/src/handlers/deploy-account.ts @@ -1,4 +1,5 @@ import type { Request, Response } from "express"; +import type { PrividiumSiweChain } from "prividium/siwe"; import { type Address, createPublicClient, createWalletClient, type Hex, http, parseEther } from "viem"; import { privateKeyToAccount } from "viem/accounts"; import { waitForTransactionReceipt } from "viem/actions"; @@ -6,7 +7,7 @@ import { getAccountAddressFromLogs, prepareDeploySmartAccount } from "zksync-sso import { env, EOA_VALIDATOR_ADDRESS, FACTORY_ADDRESS, getChain, GUARDIAN_EXECUTOR_ADDRESS, prividiumConfig, SESSION_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS } from "../config.js"; import { deployAccountSchema } from "../schemas.js"; -import { addAddressToUser, createProxyTransport, getAdminAuthService, whitelistContract } from "../services/prividium/index.js"; +import { addAddressToUser, getAdminAuthService, whitelistContract } from "../services/prividium/index.js"; type DeployAccountRequest = { chainId: number; @@ -34,12 +35,11 @@ export const deployAccountHandler = async (req: Request, res: Response): Promise // Get chain from request const chain = getChain(body.chainId); - // Get admin token if in Prividium mode (needed for RPC proxy, whitelisting, and address association) - let adminToken: string | undefined; + // Get SDK instance if in Prividium mode (provides authenticated transport and headers) + let adminSdk: PrividiumSiweChain | undefined; if (prividiumConfig.enabled && req.prividiumUser) { try { - const adminAuth = getAdminAuthService(prividiumConfig); - adminToken = await adminAuth.getValidToken(); + adminSdk = getAdminAuthService().getSdkInstance(); } catch (error) { console.error("Admin authentication failed:", error); res.status(500).json({ @@ -49,9 +49,9 @@ export const deployAccountHandler = async (req: Request, res: Response): Promise } } - // Create transport - use Prividium proxy if enabled, otherwise direct RPC - const transport = prividiumConfig.enabled && adminToken - ? createProxyTransport(prividiumConfig.proxyUrl, adminToken) + // Create transport - use SDK transport if enabled, otherwise direct RPC + const transport = adminSdk + ? adminSdk.transport // SDK provides authenticated transport : http(env.RPC_URL); // Create clients @@ -166,14 +166,24 @@ export const deployAccountHandler = async (req: Request, res: Response): Promise console.log("Account deployed at:", deployedAddress); // Prividium post-deployment steps (all blocking) - if (prividiumConfig.enabled && req.prividiumUser && adminToken) { + if (prividiumConfig.enabled && req.prividiumUser && adminSdk) { + // Get auth headers from SDK + const authHeaders = adminSdk.getAuthHeaders(); + if (!authHeaders) { + console.error("Failed to get auth headers"); + res.status(500).json({ + error: "Authentication error", + }); + return; + } + // Step 1: Whitelist the contract with template (blocking) try { await whitelistContract( deployedAddress, prividiumConfig.templateKey, - adminToken, - prividiumConfig.permissionsApiUrl, + authHeaders, + prividiumConfig.apiUrl, ); } catch (error) { console.error("Failed to whitelist contract:", error); @@ -188,8 +198,8 @@ export const deployAccountHandler = async (req: Request, res: Response): Promise await addAddressToUser( req.prividiumUser.userId, [deployedAddress], - adminToken, - prividiumConfig.permissionsApiUrl, + authHeaders, + prividiumConfig.apiUrl, ); } catch (error) { console.error("Failed to associate address with user:", error); diff --git a/packages/auth-server-api/src/index.ts b/packages/auth-server-api/src/index.ts index d458a69f..1d4f7ce1 100644 --- a/packages/auth-server-api/src/index.ts +++ b/packages/auth-server-api/src/index.ts @@ -2,13 +2,31 @@ import type { Hex } from "viem"; import { privateKeyToAccount } from "viem/accounts"; import { allowlist, app } from "./app.js"; -import { env } from "./config.js"; - -// Start server -const port = parseInt(env.PORT, 10); -app.listen(port, () => { - console.log(`Auth Server API listening on port ${port}`); - console.log(`CORS origins: ${allowlist.join(", ")}`); - console.log(`Deployer address: ${privateKeyToAccount(env.DEPLOYER_PRIVATE_KEY as Hex).address}`); - console.log(`RPC URL: ${env.RPC_URL}`); +import { env, prividiumConfig, SUPPORTED_CHAINS } from "./config.js"; +import { initAdminAuthService } from "./services/prividium/admin-auth.js"; + +async function start() { + // Initialize Prividium admin auth at startup if enabled + if (prividiumConfig.enabled) { + const chain = SUPPORTED_CHAINS[0]; + if (!chain) { + console.error("Prividium mode requires at least one configured chain"); + process.exit(1); + } + await initAdminAuthService(prividiumConfig, chain); + } + + // Start server + const port = parseInt(env.PORT, 10); + app.listen(port, () => { + console.log(`Auth Server API listening on port ${port}`); + console.log(`CORS origins: ${allowlist.join(", ")}`); + console.log(`Deployer address: ${privateKeyToAccount(env.DEPLOYER_PRIVATE_KEY as Hex).address}`); + console.log(`RPC URL: ${env.RPC_URL}`); + }); +} + +start().catch((error) => { + console.error("Failed to start server:", error); + process.exit(1); }); diff --git a/packages/auth-server-api/src/middleware/prividium-auth.ts b/packages/auth-server-api/src/middleware/prividium-auth.ts index 19c3c946..dc38cc89 100644 --- a/packages/auth-server-api/src/middleware/prividium-auth.ts +++ b/packages/auth-server-api/src/middleware/prividium-auth.ts @@ -45,7 +45,7 @@ export function prividiumAuthMiddleware(config: PrividiumConfig) { } // Verify user token with Prividium - const authResult = await verifyUserAuth(authHeader, config.permissionsApiUrl); + const authResult = await verifyUserAuth(authHeader, config.apiUrl); if (!authResult.valid || !authResult.userId) { if (authResult.error === "network_error") { diff --git a/packages/auth-server-api/src/services/prividium/address-association.ts b/packages/auth-server-api/src/services/prividium/address-association.ts index 6b204847..a61f2324 100644 --- a/packages/auth-server-api/src/services/prividium/address-association.ts +++ b/packages/auth-server-api/src/services/prividium/address-association.ts @@ -4,7 +4,7 @@ import type { FullUserResponse } from "./types.js"; /** * Adds wallet addresses to a user in Prividium via the admin API. - * This uses the admin's token to update any user's wallet addresses. + * This uses the admin's authentication headers to update any user's wallet addresses. * * Flow: * 1. GET /api/users/:id to fetch current user data including existing wallets @@ -12,21 +12,19 @@ import type { FullUserResponse } from "./types.js"; * * @param userId The Prividium user ID to add addresses to * @param addresses Array of wallet addresses to associate - * @param adminToken The authenticated admin's JWT token - * @param permissionsApiUrl The base URL for the Prividium permissions API + * @param authHeaders The authentication headers from SDK + * @param apiUrl The base URL for the Prividium API */ export async function addAddressToUser( userId: string, addresses: Hex[], - adminToken: string, - permissionsApiUrl: string, + authHeaders: Record, + apiUrl: string, ): Promise { // Step 1: Get current user data - const getUserResponse = await fetch(`${permissionsApiUrl}/api/users/${userId}`, { + const getUserResponse = await fetch(`${apiUrl}/api/users/${userId}`, { method: "GET", - headers: { - Authorization: `Bearer ${adminToken}`, - }, + headers: authHeaders, }); if (!getUserResponse.ok) { @@ -41,10 +39,10 @@ export async function addAddressToUser( const allWallets = [...new Set([...existingWallets, ...addresses])]; // Step 2: Update user with new wallets - const updateResponse = await fetch(`${permissionsApiUrl}/api/users/${userId}`, { + const updateResponse = await fetch(`${apiUrl}/api/users/${userId}`, { method: "PUT", headers: { - Authorization: `Bearer ${adminToken}`, + ...authHeaders, "Content-Type": "application/json", }, body: JSON.stringify({ diff --git a/packages/auth-server-api/src/services/prividium/admin-auth.ts b/packages/auth-server-api/src/services/prividium/admin-auth.ts index efeedc80..5a308bb8 100644 --- a/packages/auth-server-api/src/services/prividium/admin-auth.ts +++ b/packages/auth-server-api/src/services/prividium/admin-auth.ts @@ -1,145 +1,81 @@ -import { type Hex } from "viem"; +import { createPrividiumSiweChain, type PrividiumSiweChain } from "prividium/siwe"; +import { type Chain, type Hex } from "viem"; import { privateKeyToAccount } from "viem/accounts"; import type { PrividiumConfig } from "../../config.js"; -import type { AdminAuthResponse, CachedAdminToken, SiweMessageResponse } from "./types.js"; /** - * AdminAuthService handles SIWE-based authentication for the admin user account. - * It caches the token and automatically refreshes it before expiration. - * - * Uses user SIWE endpoints (not tenant): - * - POST /api/siwe-messages/ for SIWE message - * - POST /api/auth/login/crypto-native for authentication + * Admin authentication using Prividium SDK. + * The SDK handles all authentication, token management, and auto-reauthentication. */ export class AdminAuthService { - private cachedToken: CachedAdminToken | null = null; - private refreshPromise: Promise | null = null; - - // Refresh token 5 minutes before expiry - private readonly EXPIRY_BUFFER_MS = 5 * 60 * 1000; - - constructor(private config: PrividiumConfig) {} - - /** - * Gets a valid admin token, refreshing if necessary. - * Handles concurrent requests by reusing the same promise. - */ - async getValidToken(): Promise { - // Check if we have a valid cached token - if (this.isTokenValid()) { - return this.cachedToken!.token; - } - - // Prevent concurrent refresh requests - if (this.refreshPromise) { - return this.refreshPromise; - } - - // Refresh token - this.refreshPromise = this.authenticate(); - try { - const token = await this.refreshPromise; - return token; - } finally { - this.refreshPromise = null; - } + private sdkInstance: PrividiumSiweChain; + readonly chainId: number; + + constructor(config: PrividiumConfig, chain: Chain) { + this.chainId = chain.id; + const account = privateKeyToAccount(config.adminPrivateKey as Hex); + + // Initialize SDK - it handles everything + this.sdkInstance = createPrividiumSiweChain({ + account, + chain: { + id: chain.id, + name: chain.name, + nativeCurrency: chain.nativeCurrency, + }, + prividiumApiBaseUrl: config.apiUrl, + domain: config.domain, + autoReauthenticate: true, + onReauthenticate: () => { + console.log("Admin session automatically refreshed"); + }, + onReauthenticateError: (error: Error) => { + console.error("Admin reauthentication failed:", error); + }, + }); } /** - * Checks if the cached token is still valid (with buffer time). + * Authenticates admin with Prividium. Call once at startup. */ - private isTokenValid(): boolean { - if (!this.cachedToken) { - return false; + async initialize(): Promise { + if (!this.sdkInstance.isAuthorized()) { + console.log("Authenticating admin with Prividium..."); + await this.sdkInstance.authorize(); + console.log("Admin authenticated successfully"); } - - const now = new Date(); - const bufferTime = new Date(this.cachedToken.expiresAt.getTime() - this.EXPIRY_BUFFER_MS); - - return now < bufferTime; } /** - * Authenticates with Prividium using SIWE (Sign-In With Ethereum). - * Uses user endpoints (not tenant) since admin is a user with admin role. - * - * 1. Requests a SIWE message from the permissions API (user endpoint) - * 2. Signs the message with the admin's private key - * 3. Submits the signature to authenticate via crypto-native login - * 4. Caches and returns the token + * Gets the SDK instance. + * Use sdkInstance.transport for RPC calls. + * Use sdkInstance.getAuthHeaders() for custom API calls. */ - private async authenticate(): Promise { - console.log("Authenticating admin user with Prividium..."); - - // Derive address from private key - const account = privateKeyToAccount(this.config.adminPrivateKey as Hex); - const adminAddress = account.address; - - // Step 1: Request SIWE message (user endpoint, not tenant) - const siweResponse = await fetch(`${this.config.permissionsApiUrl}/api/siwe-messages/`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - address: adminAddress, - domain: new URL(this.config.ssoAuthServerBaseUrl).host, - }), - }); - - if (!siweResponse.ok) { - const errorText = await siweResponse.text(); - throw new Error(`Failed to get SIWE message: ${siweResponse.status} ${errorText}`); - } - - const siweData = (await siweResponse.json()) as SiweMessageResponse; - - // Step 2: Sign the message with admin private key - const signature = await account.signMessage({ - message: siweData.msg, - }); - - // Step 3: Authenticate with signature (crypto-native login for users) - const authResponse = await fetch(`${this.config.permissionsApiUrl}/api/auth/login/crypto-native`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - message: siweData.msg, - signature, - }), - }); - - if (!authResponse.ok) { - const errorText = await authResponse.text(); - throw new Error(`Admin authentication failed: ${authResponse.status} ${errorText}`); - } - - const authData = (await authResponse.json()) as AdminAuthResponse; - - // Step 4: Cache the token - this.cachedToken = { - token: authData.token, - expiresAt: new Date(authData.expiresAt), - }; - - console.log("Admin authenticated successfully, token expires at:", authData.expiresAt); - - return authData.token; + getSdkInstance(): PrividiumSiweChain { + return this.sdkInstance; } } -// Singleton instance +// Singleton instance, initialized at startup via initAdminAuthService() let adminAuthServiceInstance: AdminAuthService | null = null; /** - * Gets or creates the singleton AdminAuthService instance. + * Initializes the singleton AdminAuthService and authenticates with Prividium. + * Must be called once at startup before handling requests. + */ +export async function initAdminAuthService(config: PrividiumConfig, chain: Chain): Promise { + adminAuthServiceInstance = new AdminAuthService(config, chain); + await adminAuthServiceInstance.initialize(); +} + +/** + * Gets the initialized AdminAuthService singleton. + * Throws if called before initAdminAuthService(). */ -export function getAdminAuthService(config: PrividiumConfig): AdminAuthService { +export function getAdminAuthService(): AdminAuthService { if (!adminAuthServiceInstance) { - adminAuthServiceInstance = new AdminAuthService(config); + throw new Error("AdminAuthService not initialized. Call initAdminAuthService() at startup first."); } return adminAuthServiceInstance; } diff --git a/packages/auth-server-api/src/services/prividium/contract-whitelist.ts b/packages/auth-server-api/src/services/prividium/contract-whitelist.ts index 58299816..c530c77f 100644 --- a/packages/auth-server-api/src/services/prividium/contract-whitelist.ts +++ b/packages/auth-server-api/src/services/prividium/contract-whitelist.ts @@ -7,19 +7,19 @@ import type { Hex } from "viem"; * * @param contractAddress The deployed contract address to whitelist * @param templateKey The template key to associate with the contract - * @param adminToken The authenticated admin's JWT token - * @param permissionsApiUrl The base URL for the Prividium permissions API + * @param authHeaders The authentication headers from SDK + * @param apiUrl The base URL for the Prividium API */ export async function whitelistContract( contractAddress: Hex, templateKey: string, - adminToken: string, - permissionsApiUrl: string, + authHeaders: Record, + apiUrl: string, ): Promise { - const response = await fetch(`${permissionsApiUrl}/api/contracts`, { + const response = await fetch(`${apiUrl}/api/contracts`, { method: "POST", headers: { - Authorization: `Bearer ${adminToken}`, + ...authHeaders, "Content-Type": "application/json", }, body: JSON.stringify({ diff --git a/packages/auth-server-api/src/services/prividium/index.ts b/packages/auth-server-api/src/services/prividium/index.ts index 92fcd204..0aeaccd3 100644 --- a/packages/auth-server-api/src/services/prividium/index.ts +++ b/packages/auth-server-api/src/services/prividium/index.ts @@ -1,6 +1,5 @@ export * from "./address-association.js"; export * from "./admin-auth.js"; export * from "./contract-whitelist.js"; -export * from "./proxy-client.js"; export * from "./types.js"; export * from "./user-auth.js"; diff --git a/packages/auth-server-api/src/services/prividium/proxy-client.ts b/packages/auth-server-api/src/services/prividium/proxy-client.ts deleted file mode 100644 index 4035cd8b..00000000 --- a/packages/auth-server-api/src/services/prividium/proxy-client.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { http } from "viem"; - -/** - * Creates an HTTP transport configured to use the Prividium RPC proxy. - * All requests will include the admin's authorization token. - * - * @param proxyUrl The Prividium RPC proxy URL - * @param adminToken The authenticated admin's JWT token - * @returns A viem HTTP transport configured for the proxy - */ -export function createProxyTransport(proxyUrl: string, adminToken: string) { - return http(proxyUrl, { - fetchOptions: { - headers: { - Authorization: `Bearer ${adminToken}`, - }, - }, - }); -} diff --git a/packages/auth-server-api/src/services/prividium/user-auth.ts b/packages/auth-server-api/src/services/prividium/user-auth.ts index f00c21a6..198a38ba 100644 --- a/packages/auth-server-api/src/services/prividium/user-auth.ts +++ b/packages/auth-server-api/src/services/prividium/user-auth.ts @@ -5,16 +5,16 @@ import type { UserAuthResult, UserProfile } from "./types.js"; * This both validates the token and returns the user's ID. * * @param authorizationHeader The full Authorization header value (e.g., "Bearer ") - * @param permissionsApiUrl The base URL for the Prividium permissions API + * @param apiUrl The base URL for the Prividium API * @returns UserAuthResult with validity, userId if valid, and error type if invalid */ export async function verifyUserAuth( authorizationHeader: string, - permissionsApiUrl: string, + apiUrl: string, ): Promise { let response: Response; try { - response = await fetch(`${permissionsApiUrl}/api/profiles/me`, { + response = await fetch(`${apiUrl}/api/profiles/me`, { method: "GET", headers: { Authorization: authorizationHeader, diff --git a/packages/auth-server/.env.example b/packages/auth-server/.env.example index 55524fd5..10e9bbdc 100644 --- a/packages/auth-server/.env.example +++ b/packages/auth-server/.env.example @@ -12,9 +12,8 @@ PRIVIDIUM_MODE=false # Prividium SDK Configuration (required when PRIVIDIUM_MODE=true) PRIVIDIUM_CLIENT_ID=your-prividium-client-id -PRIVIDIUM_RPC_PROXY_BASE_URL=https://rpc.prividium.io PRIVIDIUM_AUTH_BASE_URL=https://auth.prividium.io -PRIVIDIUM_PERMISSIONS_BASE_URL=https://permissions.prividium.io +PRIVIDIUM_API_URL=https://api.prividium.io # OIDC Configuration NUXT_PUBLIC_SALT_SERVICE_URL=https://sso-oidc.zksync.dev/salt diff --git a/packages/auth-server/components/PrividiumLogin.vue b/packages/auth-server/components/PrividiumLogin.vue index ee07ff40..825eeb6d 100644 --- a/packages/auth-server/components/PrividiumLogin.vue +++ b/packages/auth-server/components/PrividiumLogin.vue @@ -46,7 +46,7 @@
- {{ profile?.displayName || profile?.userId || "Authenticated User" }} + {{ profile?.displayName || profile?.id || "Authenticated User" }}
diff --git a/packages/auth-server/stores/prividiumAuth.ts b/packages/auth-server/stores/prividiumAuth.ts index 9bce8782..4ec97b00 100644 --- a/packages/auth-server/stores/prividiumAuth.ts +++ b/packages/auth-server/stores/prividiumAuth.ts @@ -20,9 +20,9 @@ export const usePrividiumAuthStore = defineStore("prividiumAuth", () => { if (!runtimeConfig.public.prividiumMode) return null; if (!prividiumInstance) { - const { clientId, rpcUrl, authBaseUrl, permissionsApiBaseUrl } = runtimeConfig.public.prividium || {}; + const { clientId, authBaseUrl, apiBaseUrl } = runtimeConfig.public.prividium || {}; - if (!clientId || !rpcUrl || !authBaseUrl || !permissionsApiBaseUrl) { + if (!clientId || !authBaseUrl || !apiBaseUrl) { error.value = "Prividium configuration is incomplete"; return null; } @@ -30,9 +30,8 @@ export const usePrividiumAuthStore = defineStore("prividiumAuth", () => { prividiumInstance = createPrividiumChain({ clientId, chain: defaultChain, - rpcUrl, authBaseUrl, - permissionsApiBaseUrl: permissionsApiBaseUrl, + prividiumApiBaseUrl: apiBaseUrl, redirectUrl: `${window.location.origin}/callback`, onAuthExpiry: () => { isAuthenticated.value = false; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eeffc9a6..68729ea3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -132,7 +132,7 @@ importers: version: 0.5.7(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(magicast@0.3.5)(rollup@4.30.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@22.8.0)(sass@1.80.4)(terser@5.36.0)) '@nuxtjs/tailwindcss': specifier: ^6.12.0 - version: 6.12.2(magicast@0.3.5)(rollup@4.30.1)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@24.3.3)(typescript@5.6.2)) + version: 6.12.2(magicast@0.3.5)(rollup@4.30.1)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@22.15.33)(typescript@5.6.2)) '@playwright/test': specifier: ^1.47.2 version: 1.48.1 @@ -165,28 +165,28 @@ importers: version: 3.2.0(magicast@0.3.5)(rollup@4.30.1) '@nuxtjs/seo': specifier: 2.0.0-rc.23 - version: 2.0.0-rc.23(h3@1.13.0)(magicast@0.3.5)(rollup@4.30.1)(unhead@1.11.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) + version: 2.0.0-rc.23(h3@1.13.0)(magicast@0.3.5)(rollup@4.30.1)(unhead@1.11.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) '@openzeppelin/contracts': specifier: 4.9.6 version: 4.9.6 '@pinia/nuxt': specifier: ^0.5.5 - version: 0.5.5(magicast@0.3.5)(rollup@4.30.1)(typescript@5.6.2)(vue@3.5.26(typescript@5.6.2)) + version: 0.5.5(magicast@0.3.5)(rollup@4.30.1)(typescript@5.6.2)(vue@3.5.29(typescript@5.6.2)) '@vueuse/core': specifier: ^11.1.0 - version: 11.1.0(vue@3.5.26(typescript@5.6.2)) + version: 11.1.0(vue@3.5.29(typescript@5.6.2)) '@vueuse/motion': specifier: ^2.2.6 - version: 2.2.6(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + version: 2.2.6(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) '@vueuse/nuxt': specifier: ^11.1.0 - version: 11.1.0(magicast@0.3.5)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@22.15.33)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)))(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + version: 11.1.0(magicast@0.3.5)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@22.15.33)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)))(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) '@wagmi/core': specifier: ^2.16.4 version: 2.18.0(@tanstack/query-core@5.59.16)(@types/react@19.1.8)(immer@10.0.2)(react@18.3.1)(typescript@5.6.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)) '@web3modal/wagmi': specifier: ^5.1.11 - version: 5.1.11(7r3jp5w7bspyekhb2cox26f4gq) + version: 5.1.11(xp4rkhafxdlo4dioubhgwrdguq) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -207,10 +207,10 @@ importers: version: 3.0.2(magicast@0.3.5)(rollup@4.30.1) pinia: specifier: ^2.1.7 - version: 2.2.4(typescript@5.6.2)(vue@3.5.26(typescript@5.6.2)) + version: 2.2.4(typescript@5.6.2)(vue@3.5.29(typescript@5.6.2)) radix-vue: specifier: ^1.9.6 - version: 1.9.7(vue@3.5.26(typescript@5.6.2)) + version: 1.9.7(vue@3.5.29(typescript@5.6.2)) sass: specifier: ^1.77.6 version: 1.80.4 @@ -225,13 +225,13 @@ importers: version: 2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1) vue: specifier: latest - version: 3.5.26(typescript@5.6.2) + version: 3.5.29(typescript@5.6.2) vue-load-image: specifier: ^1.1.0 - version: 1.1.0(vue@3.5.26(typescript@5.6.2)) + version: 1.1.0(vue@3.5.29(typescript@5.6.2)) vue-router: specifier: latest - version: 4.6.4(vue@3.5.26(typescript@5.6.2)) + version: 5.0.3(@vue/compiler-sfc@3.5.29)(pinia@2.2.4(typescript@5.6.2)(vue@3.5.29(typescript@5.6.2)))(vue@3.5.29(typescript@5.6.2)) zksync-ethers: specifier: ^6.15.0 version: 6.15.0(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) @@ -301,7 +301,7 @@ importers: dependencies: '@heroicons/vue': specifier: ^2.1.5 - version: 2.1.5(vue@3.5.26(typescript@5.6.2)) + version: 2.1.5(vue@3.5.29(typescript@5.6.2)) '@nuxt/eslint': specifier: ^0.5.7 version: 0.5.7(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(magicast@0.3.5)(rollup@4.30.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)) @@ -316,7 +316,7 @@ importers: version: 6.12.2(magicast@0.3.5)(rollup@4.30.1)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@24.3.3)(typescript@5.6.2)) '@pinia/nuxt': specifier: ^0.5.1 - version: 0.5.5(magicast@0.3.5)(rollup@4.30.1)(typescript@5.6.2)(vue@3.5.26(typescript@5.6.2)) + version: 0.5.5(magicast@0.3.5)(rollup@4.30.1)(typescript@5.6.2)(vue@3.5.29(typescript@5.6.2)) '@reown/appkit': specifier: ^1.7.0 version: 1.7.0(@types/react@19.1.8)(bufferutil@4.0.8)(ioredis@5.4.1)(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1) @@ -328,22 +328,22 @@ importers: version: 1.2.1(bufferutil@4.0.8)(ioredis@5.4.1)(utf-8-validate@5.0.10) '@tanstack/vue-query': specifier: ^5.59.16 - version: 5.59.16(vue@3.5.26(typescript@5.6.2)) + version: 5.59.16(vue@3.5.29(typescript@5.6.2)) '@vue/devtools-api': specifier: ^7.7.1 version: 7.7.1 '@vueuse/core': specifier: ^11.1.0 - version: 11.1.0(vue@3.5.26(typescript@5.6.2)) + version: 11.1.0(vue@3.5.29(typescript@5.6.2)) '@vueuse/nuxt': specifier: ^11.1.0 - version: 11.1.0(magicast@0.3.5)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@24.3.3)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)))(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + version: 11.1.0(magicast@0.3.5)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@24.3.3)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)))(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) '@wagmi/core': specifier: ^2.13.3 version: 2.16.7(@tanstack/query-core@5.59.16)(@types/react@19.1.8)(immer@10.0.2)(react@18.3.1)(typescript@5.6.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)) '@wagmi/vue': specifier: ^0.1.14 - version: 0.1.15(@tanstack/query-core@5.59.16)(@tanstack/vue-query@5.59.16(vue@3.5.26(typescript@5.6.2)))(@types/react@19.1.8)(bufferutil@4.0.8)(immer@10.0.2)(ioredis@5.4.1)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@24.3.3)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)))(react@18.3.1)(typescript@5.6.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1))(vue@3.5.26(typescript@5.6.2))(zod@3.24.1) + version: 0.1.15(@tanstack/query-core@5.59.16)(@tanstack/vue-query@5.59.16(vue@3.5.29(typescript@5.6.2)))(@types/react@19.1.8)(bufferutil@4.0.8)(immer@10.0.2)(ioredis@5.4.1)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@24.3.3)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)))(react@18.3.1)(typescript@5.6.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1))(vue@3.5.29(typescript@5.6.2))(zod@3.24.1) '@walletconnect/core': specifier: ^2.19.0 version: 2.19.0(bufferutil@4.0.8)(ioredis@5.4.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1) @@ -364,16 +364,16 @@ importers: version: 3.7.3(magicast@0.3.5)(prettier@3.3.3)(rollup@4.30.1) pinia: specifier: ^2.1.7 - version: 2.2.4(typescript@5.6.2)(vue@3.5.26(typescript@5.6.2)) + version: 2.2.4(typescript@5.6.2)(vue@3.5.29(typescript@5.6.2)) prettier: specifier: ^2.5.x || 3.x version: 3.3.3 prividium: - specifier: ^0.1.5 - version: 0.1.5(@fastify/swagger@9.6.1)(bufferutil@4.0.8)(openapi-types@12.1.3)(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)) + specifier: ^0.7.0 + version: 0.7.0(@fastify/swagger@9.6.1)(bufferutil@4.0.8)(openapi-types@12.1.3)(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)) radix-vue: specifier: ^1.9.6 - version: 1.9.7(vue@3.5.26(typescript@5.6.2)) + version: 1.9.7(vue@3.5.29(typescript@5.6.2)) sass: specifier: ^1.77.6 version: 1.80.4 @@ -388,13 +388,13 @@ importers: version: 2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1) vue: specifier: latest - version: 3.5.26(typescript@5.6.2) + version: 3.5.29(typescript@5.6.2) wagmi: specifier: ^2.12.17 version: 2.14.15(@tanstack/query-core@5.59.16)(@tanstack/react-query@5.59.16(react@18.3.1))(@types/react@19.1.8)(bufferutil@4.0.8)(immer@10.0.2)(ioredis@5.4.1)(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1))(zod@3.24.1) web3-avatar-vue: specifier: ^1.0.5 - version: 1.0.5(vue@3.5.26(typescript@5.6.2)) + version: 1.0.5(vue@3.5.29(typescript@5.6.2)) zksync-sso-4337: specifier: workspace:* version: link:../sdk-4337 @@ -444,6 +444,9 @@ importers: express-rate-limit: specifier: ^7.5.0 version: 7.5.1(express@4.21.2) + prividium: + specifier: ^0.7.0 + version: 0.7.0(@fastify/swagger@9.6.1)(bufferutil@4.0.8)(openapi-types@12.1.3)(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)) viem: specifier: 2.30.0 version: 2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1) @@ -781,7 +784,7 @@ importers: devDependencies: '@types/bun': specifier: latest - version: 1.3.5 + version: 1.3.9 '@types/cors': specifier: ^2.8.17 version: 2.8.19 @@ -989,6 +992,10 @@ packages: resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} engines: {node: '>=6.9.0'} + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} @@ -1102,6 +1109,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} @@ -1546,6 +1558,10 @@ packages: resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + '@balena/dockerignore@1.0.2': resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} @@ -2979,6 +2995,9 @@ packages: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -5358,8 +5377,8 @@ packages: '@types/body-parser@1.19.6': resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} - '@types/bun@1.3.5': - resolution: {integrity: sha512-RnygCqNrd3srIPEWBd5LFeUYG7plCoH2Yw9WaZGyNmdTEei+gWaHqydbaIRkIkcbXwhBT94q78QljxN0Sk838w==} + '@types/bun@1.3.9': + resolution: {integrity: sha512-KQ571yULOdWJiMH+RIWIOZ7B2RXQGpL1YQrBtLIV3FqDcCu6FsbFUBwhdKUlCKUpS3PJDsHlJ1QKlpxoVR+xtw==} '@types/chai-as-promised@7.1.8': resolution: {integrity: sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==} @@ -5920,6 +5939,15 @@ packages: vue: optional: true + '@vue-macros/common@3.1.2': + resolution: {integrity: sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==} + engines: {node: '>=20.19.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true + '@vue/babel-helper-vue-transform-on@1.2.5': resolution: {integrity: sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==} @@ -5939,45 +5967,48 @@ packages: '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - '@vue/compiler-core@3.5.24': - resolution: {integrity: sha512-eDl5H57AOpNakGNAkFDH+y7kTqrQpJkZFXhWZQGyx/5Wh7B1uQYvcWkvZi11BDhscPgj8N7XV3oRwiPnx1Vrig==} - '@vue/compiler-core@3.5.26': resolution: {integrity: sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==} + '@vue/compiler-core@3.5.29': + resolution: {integrity: sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw==} + '@vue/compiler-dom@3.5.13': resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - '@vue/compiler-dom@3.5.24': - resolution: {integrity: sha512-1QHGAvs53gXkWdd3ZMGYuvQFXHW4ksKWPG8HP8/2BscrbZ0brw183q2oNWjMrSWImYLHxHrx1ItBQr50I/q2zw==} - '@vue/compiler-dom@3.5.26': resolution: {integrity: sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==} + '@vue/compiler-dom@3.5.29': + resolution: {integrity: sha512-n0G5o7R3uBVmVxjTIYcz7ovr8sy7QObFG8OQJ3xGCDNhbG60biP/P5KnyY8NLd81OuT1WJflG7N4KWYHaeeaIg==} + '@vue/compiler-sfc@3.5.13': resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} - '@vue/compiler-sfc@3.5.24': - resolution: {integrity: sha512-8EG5YPRgmTB+YxYBM3VXy8zHD9SWHUJLIGPhDovo3Z8VOgvP+O7UP5vl0J4BBPWYD9vxtBabzW1EuEZ+Cqs14g==} - '@vue/compiler-sfc@3.5.26': resolution: {integrity: sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==} + '@vue/compiler-sfc@3.5.29': + resolution: {integrity: sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA==} + '@vue/compiler-ssr@3.5.13': resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} - '@vue/compiler-ssr@3.5.24': - resolution: {integrity: sha512-trOvMWNBMQ/odMRHW7Ae1CdfYx+7MuiQu62Jtu36gMLXcaoqKvAyh+P73sYG9ll+6jLB6QPovqoKGGZROzkFFg==} - '@vue/compiler-ssr@3.5.26': resolution: {integrity: sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==} + '@vue/compiler-ssr@3.5.29': + resolution: {integrity: sha512-Y/ARJZE6fpjzL5GH/phJmsFwx3g6t2KmHKHx5q+MLl2kencADKIrhH5MLF6HHpRMmlRAYBRSvv347Mepf1zVNw==} + '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} '@vue/devtools-api@7.7.1': resolution: {integrity: sha512-Cexc8GimowoDkJ6eNelOPdYIzsu2mgNyp0scOQ3tiaYSb9iok6LOESSsJvHaI+ib3joRfqRJNLkHFjhNuWA5dg==} + '@vue/devtools-api@8.0.6': + resolution: {integrity: sha512-+lGBI+WTvJmnU2FZqHhEB8J1DXcvNlDeEalz77iYgOdY1jTj1ipSBaKj3sRhYcy+kqA8v/BSuvOz1XJucfQmUA==} + '@vue/devtools-core@7.4.4': resolution: {integrity: sha512-DLxgA3DfeADkRzhAfm3G2Rw/cWxub64SdP5b+s5dwL30+whOGj+QNhmyFpwZ8ZTrHDFRIPj0RqNzJ8IRR1pz7w==} peerDependencies: @@ -5989,30 +6020,45 @@ packages: '@vue/devtools-kit@7.7.1': resolution: {integrity: sha512-yhZ4NPnK/tmxGtLNQxmll90jIIXdb2jAhPF76anvn5M/UkZCiLJy28bYgPIACKZ7FCosyKoaope89/RsFJll1w==} + '@vue/devtools-kit@8.0.6': + resolution: {integrity: sha512-9zXZPTJW72OteDXeSa5RVML3zWDCRcO5t77aJqSs228mdopYj5AiTpihozbsfFJ0IodfNs7pSgOGO3qfCuxDtw==} + '@vue/devtools-shared@7.5.4': resolution: {integrity: sha512-dwuq4YmwTyLc7eBOqX63s3JB8il7qnKsNgENglSMkUPwiItHkVAYYfPESN1rxSdYkl1RCux1l5TBidYqfUDNAA==} '@vue/devtools-shared@7.7.1': resolution: {integrity: sha512-BtgF7kHq4BHG23Lezc/3W2UhK2ga7a8ohAIAGJMBr4BkxUFzhqntQtCiuL1ijo2ztWnmusymkirgqUrXoQKumA==} + '@vue/devtools-shared@8.0.6': + resolution: {integrity: sha512-Pp1JylTqlgMJvxW6MGyfTF8vGvlBSCAvMFaDCYa82Mgw7TT5eE5kkHgDvmOGHWeJE4zIDfCpCxHapsK2LtIAJg==} + '@vue/reactivity@3.5.13': resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} '@vue/reactivity@3.5.26': resolution: {integrity: sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==} + '@vue/reactivity@3.5.29': + resolution: {integrity: sha512-zcrANcrRdcLtmGZETBxWqIkoQei8HaFpZWx/GHKxx79JZsiZ8j1du0VUJtu4eJjgFvU/iKL5lRXFXksVmI+5DA==} + '@vue/runtime-core@3.5.13': resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} '@vue/runtime-core@3.5.26': resolution: {integrity: sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==} + '@vue/runtime-core@3.5.29': + resolution: {integrity: sha512-8DpW2QfdwIWOLqtsNcds4s+QgwSaHSJY/SUe04LptianUQ/0xi6KVsu/pYVh+HO3NTVvVJjIPL2t6GdeKbS4Lg==} + '@vue/runtime-dom@3.5.13': resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} '@vue/runtime-dom@3.5.26': resolution: {integrity: sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==} + '@vue/runtime-dom@3.5.29': + resolution: {integrity: sha512-AHvvJEtcY9tw/uk+s/YRLSlxxQnqnAkjqvK25ZiM4CllCZWzElRAoQnCM42m9AHRLNJ6oe2kC5DCgD4AUdlvXg==} + '@vue/server-renderer@3.5.13': resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} peerDependencies: @@ -6023,18 +6069,23 @@ packages: peerDependencies: vue: 3.5.26 + '@vue/server-renderer@3.5.29': + resolution: {integrity: sha512-G/1k6WK5MusLlbxSE2YTcqAAezS+VuwHhOvLx2KnQU7G2zCH6KIb+5Wyt6UjMq7a3qPzNEjJXs1hvAxDclQH+g==} + peerDependencies: + vue: 3.5.29 + '@vue/shared@3.5.12': resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - '@vue/shared@3.5.24': - resolution: {integrity: sha512-9cwHL2EsJBdi8NY22pngYYWzkTDhld6fAD6jlaeloNGciNSJL6bLpbxVgXl96X00Jtc6YWQv96YA/0sxex/k1A==} - '@vue/shared@3.5.26': resolution: {integrity: sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==} + '@vue/shared@3.5.29': + resolution: {integrity: sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==} + '@vueuse/core@10.11.1': resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} @@ -6695,10 +6746,18 @@ packages: resolution: {integrity: sha512-MdJqjpodkS5J149zN0Po+HPshkTdUyrvF7CKTafUgv69vBSPtncrj+3IiUgqdd7ElIEkbeXCsEouBUwLrw9Ilg==} engines: {node: '>=16.14.0'} + ast-kit@2.2.0: + resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==} + engines: {node: '>=20.19.0'} + ast-walker-scope@0.6.2: resolution: {integrity: sha512-1UWOyC50xI3QZkRuDj6PqDtpm1oHWtYs+NQGwqL/2R11eN3Q81PHAHPM0SWW3BNQm53UDwS//Jv8L4CCVLM1bQ==} engines: {node: '>=16.14.0'} + ast-walker-scope@0.8.3: + resolution: {integrity: sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==} + engines: {node: '>=20.19.0'} + astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -6856,6 +6915,9 @@ packages: birpc@0.2.19: resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + birpc@2.9.0: + resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + bl@1.2.3: resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} @@ -6977,8 +7039,8 @@ packages: resolution: {integrity: sha512-lDsx2BzkKe7gkCYiT5Acj02DpTwDznl/VNN7Psn7M3USPG7Vs/BaClZJJTAG+ufAR9++N1/NiUTdaFBWDIl5TQ==} engines: {node: '>=12'} - bun-types@1.3.5: - resolution: {integrity: sha512-inmAYe2PFLs0SUbFOWSVD24sg1jFlMPxOjOSSCYqUgn4Hsc3rDc7dFvfVYjFPNHtov6kgUeulV4SxbuIV/stPw==} + bun-types@1.3.9: + resolution: {integrity: sha512-+UBWWOakIP4Tswh0Bt0QD0alpTY8cb5hvgiYeWCMet9YukHbzuruIEeXC2D7nMJPB12kbh8C7XJykSexEqGKJg==} bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} @@ -7130,6 +7192,10 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -7356,6 +7422,9 @@ packages: confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + confbox@0.2.4: + resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -7417,6 +7486,10 @@ packages: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} + copy-anything@4.0.5: + resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} + engines: {node: '>=18'} + core-js-compat@3.38.1: resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} @@ -7989,6 +8062,10 @@ packages: resolution: {integrity: sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -8388,6 +8465,9 @@ packages: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + extension-port-stream@3.0.0: resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} engines: {node: '>=12.0.0'} @@ -8486,8 +8566,8 @@ packages: fastify@4.29.1: resolution: {integrity: sha512-m2kMNHIG92tSNWv+Z3UeTR9AWLLuo7KctC7mlFPtMEVrfjIhmQhkQnT9v15qA/BfVq3vvj134Y0jl9SBje3jXQ==} - fastify@5.6.2: - resolution: {integrity: sha512-dPugdGnsvYkBlENLhCgX8yhyGCsCPrpA8lFWbTNU428l+YOnLgYHR69hzV8HWPC79n536EqzqQtvhtdaCE0dKg==} + fastify@5.7.4: + resolution: {integrity: sha512-e6l5NsRdaEP8rdD8VR0ErJASeyaRbzXYpmkrpr2SuvuMq6Si3lvsaVy5C+7gLanEkvjpMDzBXWE5HPeb/hgTxA==} fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} @@ -8500,6 +8580,15 @@ packages: picomatch: optional: true + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + ffjavascript@0.3.0: resolution: {integrity: sha512-l7sR5kmU3gRwDy8g0Z2tYBXy5ttmafRPFOqY7S6af5cq51JqJWt5eQ/lSR/rs2wQNbDYaYlQr5O+OSUf/oMLoQ==} @@ -8797,29 +8886,31 @@ packages: glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@11.1.0: resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} engines: {node: 20 || >=22} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@5.0.15: resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me global-directory@4.0.1: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} @@ -9318,6 +9409,10 @@ packages: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} engines: {node: '>=12.13'} + is-what@5.5.0: + resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} + engines: {node: '>=18'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -9649,6 +9744,10 @@ packages: resolution: {integrity: sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==} engines: {node: '>=14'} + local-pkg@1.1.2: + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -9773,6 +9872,10 @@ packages: resolution: {integrity: sha512-ub9iytsEbT7Yw/Pd29mSo/cNQpaEu67zR1VVcXDiYjSFwzeBxNdTd0FMnSslLQXiRj8uGPzwsaoefrMD5XAmdw==} engines: {node: '>=16.14.0'} + magic-string-ast@1.0.3: + resolution: {integrity: sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==} + engines: {node: '>=20.19.0'} + magic-string@0.30.12: resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} @@ -9999,6 +10102,9 @@ packages: mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + mnemonist@0.38.5: resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} @@ -10037,6 +10143,9 @@ packages: msgpackr@1.11.5: resolution: {integrity: sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==} + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + multiformats@9.9.0: resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} @@ -10593,6 +10702,9 @@ packages: perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + perfect-debounce@2.1.0: + resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==} + pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} @@ -10706,6 +10818,9 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + playwright-core@1.48.1: resolution: {integrity: sha512-Yw/t4VAFX/bBr1OzwCuOMZkY1Cnb4z/doAFSwf4huqAGWmf9eMNjmK7NiOljCdLmxeRYcGPPmcDgU0zOlzP0YA==} engines: {node: '>=18'} @@ -11033,8 +11148,8 @@ packages: resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} engines: {node: '>=18'} - prividium@0.1.5: - resolution: {integrity: sha512-DoaTXFmHZSPQABsQBQw9WxjnxirHL5/ZRpV6Wg8VN0KOTCO4n2KqZ9Tg4gCRNT2pvj+wKkOtiZLmlP1hNmZ8bA==} + prividium@0.7.0: + resolution: {integrity: sha512-9oyFTkxmK8CCds4EDQ5KwiIin7BvsswXo/zYQG5/0Y5ek+T/6Djx1/G9E40CoFgHvCrSip3iZr2LS+VJqnvEZA==} hasBin: true peerDependencies: viem: '>=2.0.0' @@ -11133,6 +11248,9 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + query-string@7.1.3: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} engines: {node: '>=6'} @@ -11217,6 +11335,10 @@ packages: resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} engines: {node: '>= 14.16.0'} + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + real-require@0.1.0: resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} engines: {node: '>= 12.13.0'} @@ -11874,6 +11996,10 @@ packages: resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} engines: {node: '>=16'} + superjson@2.2.6: + resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==} + engines: {node: '>=16'} + superstruct@1.0.4: resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} engines: {node: '>=14.0.0'} @@ -11972,6 +12098,7 @@ packages: tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me tdigest@0.1.2: resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==} @@ -12036,6 +12163,10 @@ packages: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tinyglobby@0.2.6: resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==} engines: {node: '>=12.0.0'} @@ -12280,6 +12411,9 @@ packages: ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + ufo@1.6.3: + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} + uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -12396,6 +12530,10 @@ packages: resolution: {integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==} engines: {node: '>=18.12.0'} + unplugin-utils@0.3.1: + resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} + engines: {node: '>=20.19.0'} + unplugin-vue-router@0.10.8: resolution: {integrity: sha512-xi+eLweYAqolIoTRSmumbi6Yx0z5M0PLvl+NFNVWHJgmE2ByJG1SZbrn+TqyuDtIyln20KKgq8tqmL7aLoiFjw==} peerDependencies: @@ -12413,10 +12551,6 @@ packages: webpack-sources: optional: true - unplugin@1.16.0: - resolution: {integrity: sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==} - engines: {node: '>=14.0.0'} - unplugin@1.16.1: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} @@ -12425,6 +12559,10 @@ packages: resolution: {integrity: sha512-Q3LU0e4zxKfRko1wMV2HmP8lB9KWislY7hxXpxd+lGx0PRInE4vhMBVEZwpdVYHvtqzhSrzuIfErsob6bQfCzw==} engines: {node: '>=18.12.0'} + unplugin@3.0.0: + resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} + engines: {node: ^20.19.0 || >=22.12.0} + unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} @@ -12823,10 +12961,20 @@ packages: peerDependencies: vue: ^3.2.0 - vue-router@4.6.4: - resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==} + vue-router@5.0.3: + resolution: {integrity: sha512-nG1c7aAFac7NYj8Hluo68WyWfc41xkEjaR0ViLHCa3oDvTQ/nIuLJlXJX1NUPw/DXzx/8+OKMng045HHQKQKWw==} peerDependencies: + '@pinia/colada': '>=0.21.2' + '@vue/compiler-sfc': ^3.5.17 + pinia: ^3.0.4 vue: ^3.5.0 + peerDependenciesMeta: + '@pinia/colada': + optional: true + '@vue/compiler-sfc': + optional: true + pinia: + optional: true vue@3.5.13: resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} @@ -12844,6 +12992,14 @@ packages: typescript: optional: true + vue@3.5.29: + resolution: {integrity: sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + wagmi@2.14.15: resolution: {integrity: sha512-sRa7FsEmgph1KsIK93wCS2MhZgUae18jI/+Ger+INSxytJbhzNkukpHxWlNfV/Skl8zxDAQfxucotZLi8UadZQ==} peerDependencies: @@ -13088,6 +13244,11 @@ packages: engines: {node: '>= 14'} hasBin: true + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -13299,6 +13460,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.0.2 + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.0.2 + '@babel/helper-annotate-as-pure@7.25.9': dependencies: '@babel/types': 7.26.0 @@ -13443,6 +13612,10 @@ snapshots: dependencies: '@babel/types': 7.28.5 + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -13983,7 +14156,7 @@ snapshots: '@babel/traverse@7.25.9': dependencies: '@babel/code-frame': 7.26.0 - '@babel/generator': 7.26.0 + '@babel/generator': 7.28.5 '@babel/parser': 7.26.0 '@babel/template': 7.25.9 '@babel/types': 7.26.0 @@ -14007,6 +14180,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@balena/dockerignore@1.0.2': {} '@clack/core@0.5.0': @@ -15366,7 +15544,7 @@ snapshots: dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) - fast-uri: 3.0.3 + fast-uri: 3.1.0 '@fastify/busboy@2.1.1': {} @@ -15440,7 +15618,7 @@ snapshots: json-schema-resolver: 3.0.0 openapi-types: 12.1.3 rfdc: 1.4.1 - yaml: 2.6.0 + yaml: 2.8.2 transitivePeerDependencies: - supports-color @@ -15464,11 +15642,11 @@ snapshots: '@floating-ui/utils@0.2.8': {} - '@floating-ui/vue@1.1.5(vue@3.5.26(typescript@5.6.2))': + '@floating-ui/vue@1.1.5(vue@3.5.29(typescript@5.6.2))': dependencies: '@floating-ui/dom': 1.6.11 '@floating-ui/utils': 0.2.8 - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -15485,9 +15663,9 @@ snapshots: protobufjs: 7.5.4 yargs: 17.7.2 - '@heroicons/vue@2.1.5(vue@3.5.26(typescript@5.6.2))': + '@heroicons/vue@2.1.5(vue@3.5.29(typescript@5.6.2))': dependencies: - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) '@hexagon/base64@1.1.28': {} @@ -15552,14 +15730,19 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.0': {} @@ -16280,7 +16463,7 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 '@types/debug': 4.1.12 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 pony-cause: 2.1.11 semver: 7.7.3 uuid: 9.0.1 @@ -16296,7 +16479,7 @@ snapshots: '@types/debug': 4.1.12 debug: 4.3.7(supports-color@8.1.1) pony-cause: 2.1.11 - semver: 7.6.3 + semver: 7.7.3 uuid: 9.0.1 transitivePeerDependencies: - supports-color @@ -17391,7 +17574,7 @@ snapshots: dependencies: consola: 3.4.0 defu: 6.1.4 - pathe: 2.0.2 + pathe: 2.0.3 std-env: 3.8.0 '@nuxt/telemetry@2.6.0(magicast@0.3.5)(rollup@4.30.1)': @@ -17678,14 +17861,14 @@ snapshots: - rollup - supports-color - '@nuxtjs/robots@4.1.11(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2))': + '@nuxtjs/robots@4.1.11(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2))': dependencies: '@nuxt/devtools-kit': 1.6.0(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)) '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) consola: 3.4.0 defu: 6.1.4 - nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) pathe: 1.1.2 pkg-types: 1.3.1 sirv: 3.0.2 @@ -17699,18 +17882,18 @@ snapshots: - vue - webpack-sources - '@nuxtjs/seo@2.0.0-rc.23(h3@1.13.0)(magicast@0.3.5)(rollup@4.30.1)(unhead@1.11.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2))': + '@nuxtjs/seo@2.0.0-rc.23(h3@1.13.0)(magicast@0.3.5)(rollup@4.30.1)(unhead@1.11.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2))': dependencies: '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) - '@nuxtjs/robots': 4.1.11(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - '@nuxtjs/sitemap': 6.1.5(h3@1.13.0)(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) + '@nuxtjs/robots': 4.1.11(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + '@nuxtjs/sitemap': 6.1.5(h3@1.13.0)(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) defu: 6.1.4 - nuxt-link-checker: 3.2.0(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-og-image: 3.1.1(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-schema-org: 3.5.0(magicast@0.3.5)(rollup@4.30.1)(unhead@1.11.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-seo-experiments: 4.0.1(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + nuxt-link-checker: 3.2.0(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-og-image: 3.1.1(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-schema-org: 3.5.0(magicast@0.3.5)(rollup@4.30.1)(unhead@1.11.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-seo-experiments: 4.0.1(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) pkg-types: 1.3.1 ufo: 1.5.4 transitivePeerDependencies: @@ -17725,22 +17908,22 @@ snapshots: - vue - webpack-sources - '@nuxtjs/sitemap@6.1.5(h3@1.13.0)(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2))': + '@nuxtjs/sitemap@6.1.5(h3@1.13.0)(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2))': dependencies: '@nuxt/devtools-kit': 1.6.0(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)) '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) chalk: 5.4.1 defu: 6.1.4 h3-compression: 0.3.2(h3@1.13.0) - nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) ofetch: 1.4.1 pathe: 1.1.2 pkg-types: 1.3.1 radix3: 1.1.2 semver: 7.6.3 sirv: 3.0.2 - site-config-stack: 2.2.21(vue@3.5.26(typescript@5.6.2)) + site-config-stack: 2.2.21(vue@3.5.29(typescript@5.6.2)) ufo: 1.5.4 transitivePeerDependencies: - h3 @@ -17762,7 +17945,7 @@ snapshots: pathe: 1.1.2 postcss: 8.4.47 postcss-nesting: 13.0.1(postcss@8.4.47) - tailwind-config-viewer: 2.0.4(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@22.15.33)(typescript@5.6.2))) + tailwind-config-viewer: 2.0.4(tailwindcss@3.4.14) tailwindcss: 3.4.14(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@22.15.33)(typescript@5.6.2)) ufo: 1.5.4 unctx: 2.3.1 @@ -18389,7 +18572,7 @@ snapshots: '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 forwarded-parse: 2.1.2 - semver: 7.6.3 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -18550,7 +18733,7 @@ snapshots: '@types/shimmer': 1.2.0 import-in-the-middle: 1.7.1 require-in-the-middle: 7.5.2 - semver: 7.6.3 + semver: 7.7.3 shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -18562,7 +18745,7 @@ snapshots: '@types/shimmer': 1.2.0 import-in-the-middle: 1.14.4 require-in-the-middle: 7.5.2 - semver: 7.6.3 + semver: 7.7.3 shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -18574,7 +18757,7 @@ snapshots: '@types/shimmer': 1.2.0 import-in-the-middle: 1.14.4 require-in-the-middle: 7.5.2 - semver: 7.6.3 + semver: 7.7.3 shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -18683,7 +18866,7 @@ snapshots: '@opentelemetry/propagator-b3': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/propagator-jaeger': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - semver: 7.6.3 + semver: 7.7.3 '@opentelemetry/semantic-conventions@1.25.1': {} @@ -18994,10 +19177,10 @@ snapshots: - '@opentelemetry/api' - supports-color - '@pinia/nuxt@0.5.5(magicast@0.3.5)(rollup@4.30.1)(typescript@5.6.2)(vue@3.5.26(typescript@5.6.2))': + '@pinia/nuxt@0.5.5(magicast@0.3.5)(rollup@4.30.1)(typescript@5.6.2)(vue@3.5.29(typescript@5.6.2))': dependencies: '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) - pinia: 2.2.4(typescript@5.6.2)(vue@3.5.26(typescript@5.6.2)) + pinia: 2.2.4(typescript@5.6.2)(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - magicast @@ -19358,7 +19541,7 @@ snapshots: estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 - magic-string: 0.30.19 + magic-string: 0.30.21 optionalDependencies: rollup: 4.30.1 @@ -19366,7 +19549,7 @@ snapshots: dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.30.1) estree-walker: 2.0.2 - magic-string: 0.30.19 + magic-string: 0.30.21 optionalDependencies: rollup: 4.30.1 @@ -19389,7 +19572,7 @@ snapshots: '@rollup/plugin-replace@5.0.7(rollup@4.30.1)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.30.1) - magic-string: 0.30.19 + magic-string: 0.30.21 optionalDependencies: rollup: 4.30.1 @@ -19423,7 +19606,7 @@ snapshots: dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: rollup: 4.30.1 @@ -19823,7 +20006,7 @@ snapshots: eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 - picomatch: 4.0.2 + picomatch: 4.0.3 transitivePeerDependencies: - supports-color - typescript @@ -20015,18 +20198,18 @@ snapshots: '@tanstack/virtual-core@3.10.8': {} - '@tanstack/vue-query@5.59.16(vue@3.5.26(typescript@5.6.2))': + '@tanstack/vue-query@5.59.16(vue@3.5.29(typescript@5.6.2))': dependencies: '@tanstack/match-sorter-utils': 8.19.4 '@tanstack/query-core': 5.59.16 '@vue/devtools-api': 6.6.4 - vue: 3.5.26(typescript@5.6.2) - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + vue: 3.5.29(typescript@5.6.2) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) - '@tanstack/vue-virtual@3.10.8(vue@3.5.26(typescript@5.6.2))': + '@tanstack/vue-virtual@3.10.8(vue@3.5.29(typescript@5.6.2))': dependencies: '@tanstack/virtual-core': 3.10.8 - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) '@trysound/sax@0.2.0': {} @@ -20083,9 +20266,9 @@ snapshots: '@types/connect': 3.4.38 '@types/node': 22.15.33 - '@types/bun@1.3.5': + '@types/bun@1.3.9': dependencies: - bun-types: 1.3.5 + bun-types: 1.3.9 '@types/chai-as-promised@7.1.8': dependencies: @@ -20358,7 +20541,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.47.0(typescript@5.6.2) '@typescript-eslint/types': 8.47.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 typescript: 5.6.2 transitivePeerDependencies: - supports-color @@ -20399,7 +20582,7 @@ snapshots: '@typescript-eslint/types': 8.47.0 '@typescript-eslint/typescript-estree': 8.47.0(typescript@5.6.2) '@typescript-eslint/utils': 8.47.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.6.2) - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 eslint: 9.11.1(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.6.2) typescript: 5.6.2 @@ -20812,15 +20995,25 @@ snapshots: dependencies: '@babel/types': 7.26.0 '@rollup/pluginutils': 5.1.3(rollup@4.30.1) - '@vue/compiler-sfc': 3.5.24 + '@vue/compiler-sfc': 3.5.26 ast-kit: 1.3.0 - local-pkg: 0.5.0 + local-pkg: 0.5.1 magic-string-ast: 0.6.2 optionalDependencies: vue: 3.5.26(typescript@5.6.2) transitivePeerDependencies: - rollup + '@vue-macros/common@3.1.2(vue@3.5.29(typescript@5.6.2))': + dependencies: + '@vue/compiler-sfc': 3.5.26 + ast-kit: 2.2.0 + local-pkg: 1.1.2 + magic-string-ast: 1.0.3 + unplugin-utils: 0.3.1 + optionalDependencies: + vue: 3.5.29(typescript@5.6.2) + '@vue/babel-helper-vue-transform-on@1.2.5': {} '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.26.0)': @@ -20847,7 +21040,7 @@ snapshots: '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/parser': 7.28.5 - '@vue/compiler-sfc': 3.5.24 + '@vue/compiler-sfc': 3.5.26 transitivePeerDependencies: - supports-color @@ -20859,19 +21052,19 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-core@3.5.24': + '@vue/compiler-core@3.5.26': dependencies: '@babel/parser': 7.28.5 - '@vue/shared': 3.5.24 - entities: 4.5.0 + '@vue/shared': 3.5.26 + entities: 7.0.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-core@3.5.26': + '@vue/compiler-core@3.5.29': dependencies: - '@babel/parser': 7.28.5 - '@vue/shared': 3.5.26 - entities: 7.0.0 + '@babel/parser': 7.29.0 + '@vue/shared': 3.5.29 + entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 @@ -20880,16 +21073,16 @@ snapshots: '@vue/compiler-core': 3.5.13 '@vue/shared': 3.5.13 - '@vue/compiler-dom@3.5.24': - dependencies: - '@vue/compiler-core': 3.5.24 - '@vue/shared': 3.5.24 - '@vue/compiler-dom@3.5.26': dependencies: '@vue/compiler-core': 3.5.26 '@vue/shared': 3.5.26 + '@vue/compiler-dom@3.5.29': + dependencies: + '@vue/compiler-core': 3.5.29 + '@vue/shared': 3.5.29 + '@vue/compiler-sfc@3.5.13': dependencies: '@babel/parser': 7.26.0 @@ -20902,25 +21095,25 @@ snapshots: postcss: 8.4.49 source-map-js: 1.2.1 - '@vue/compiler-sfc@3.5.24': + '@vue/compiler-sfc@3.5.26': dependencies: '@babel/parser': 7.28.5 - '@vue/compiler-core': 3.5.24 - '@vue/compiler-dom': 3.5.24 - '@vue/compiler-ssr': 3.5.24 - '@vue/shared': 3.5.24 + '@vue/compiler-core': 3.5.26 + '@vue/compiler-dom': 3.5.26 + '@vue/compiler-ssr': 3.5.26 + '@vue/shared': 3.5.26 estree-walker: 2.0.2 magic-string: 0.30.21 postcss: 8.5.6 source-map-js: 1.2.1 - '@vue/compiler-sfc@3.5.26': + '@vue/compiler-sfc@3.5.29': dependencies: - '@babel/parser': 7.28.5 - '@vue/compiler-core': 3.5.26 - '@vue/compiler-dom': 3.5.26 - '@vue/compiler-ssr': 3.5.26 - '@vue/shared': 3.5.26 + '@babel/parser': 7.29.0 + '@vue/compiler-core': 3.5.29 + '@vue/compiler-dom': 3.5.29 + '@vue/compiler-ssr': 3.5.29 + '@vue/shared': 3.5.29 estree-walker: 2.0.2 magic-string: 0.30.21 postcss: 8.5.6 @@ -20931,22 +21124,26 @@ snapshots: '@vue/compiler-dom': 3.5.13 '@vue/shared': 3.5.13 - '@vue/compiler-ssr@3.5.24': - dependencies: - '@vue/compiler-dom': 3.5.24 - '@vue/shared': 3.5.24 - '@vue/compiler-ssr@3.5.26': dependencies: '@vue/compiler-dom': 3.5.26 '@vue/shared': 3.5.26 + '@vue/compiler-ssr@3.5.29': + dependencies: + '@vue/compiler-dom': 3.5.29 + '@vue/shared': 3.5.29 + '@vue/devtools-api@6.6.4': {} '@vue/devtools-api@7.7.1': dependencies: '@vue/devtools-kit': 7.7.1 + '@vue/devtools-api@8.0.6': + dependencies: + '@vue/devtools-kit': 8.0.6 + '@vue/devtools-core@7.4.4(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2))': dependencies: '@vue/devtools-kit': 7.4.4 @@ -21003,6 +21200,16 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.1 + '@vue/devtools-kit@8.0.6': + dependencies: + '@vue/devtools-shared': 8.0.6 + birpc: 2.9.0 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 2.1.0 + speakingurl: 14.0.1 + superjson: 2.2.6 + '@vue/devtools-shared@7.5.4': dependencies: rfdc: 1.4.1 @@ -21011,6 +21218,10 @@ snapshots: dependencies: rfdc: 1.4.1 + '@vue/devtools-shared@8.0.6': + dependencies: + rfdc: 1.4.1 + '@vue/reactivity@3.5.13': dependencies: '@vue/shared': 3.5.13 @@ -21019,6 +21230,10 @@ snapshots: dependencies: '@vue/shared': 3.5.26 + '@vue/reactivity@3.5.29': + dependencies: + '@vue/shared': 3.5.29 + '@vue/runtime-core@3.5.13': dependencies: '@vue/reactivity': 3.5.13 @@ -21029,6 +21244,11 @@ snapshots: '@vue/reactivity': 3.5.26 '@vue/shared': 3.5.26 + '@vue/runtime-core@3.5.29': + dependencies: + '@vue/reactivity': 3.5.29 + '@vue/shared': 3.5.29 + '@vue/runtime-dom@3.5.13': dependencies: '@vue/reactivity': 3.5.13 @@ -21043,6 +21263,13 @@ snapshots: '@vue/shared': 3.5.26 csstype: 3.2.3 + '@vue/runtime-dom@3.5.29': + dependencies: + '@vue/reactivity': 3.5.29 + '@vue/runtime-core': 3.5.29 + '@vue/shared': 3.5.29 + csstype: 3.2.3 + '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.6.2))': dependencies: '@vue/compiler-ssr': 3.5.13 @@ -21055,40 +21282,46 @@ snapshots: '@vue/shared': 3.5.26 vue: 3.5.26(typescript@5.6.2) + '@vue/server-renderer@3.5.29(vue@3.5.29(typescript@5.6.2))': + dependencies: + '@vue/compiler-ssr': 3.5.29 + '@vue/shared': 3.5.29 + vue: 3.5.29(typescript@5.6.2) + '@vue/shared@3.5.12': {} '@vue/shared@3.5.13': {} - '@vue/shared@3.5.24': {} - '@vue/shared@3.5.26': {} - '@vueuse/core@10.11.1(vue@3.5.26(typescript@5.6.2))': + '@vue/shared@3.5.29': {} + + '@vueuse/core@10.11.1(vue@3.5.29(typescript@5.6.2))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.11.1 - '@vueuse/shared': 10.11.1(vue@3.5.26(typescript@5.6.2)) - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + '@vueuse/shared': 10.11.1(vue@3.5.29(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/core@11.1.0(vue@3.5.26(typescript@5.6.2))': + '@vueuse/core@11.1.0(vue@3.5.29(typescript@5.6.2))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 11.1.0 - '@vueuse/shared': 11.1.0(vue@3.5.26(typescript@5.6.2)) - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + '@vueuse/shared': 11.1.0(vue@3.5.29(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/core@11.3.0(vue@3.5.26(typescript@5.6.2))': + '@vueuse/core@11.3.0(vue@3.5.29(typescript@5.6.2))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 11.3.0 - '@vueuse/shared': 11.3.0(vue@3.5.26(typescript@5.6.2)) - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + '@vueuse/shared': 11.3.0(vue@3.5.29(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -21099,15 +21332,15 @@ snapshots: '@vueuse/metadata@11.3.0': {} - '@vueuse/motion@2.2.6(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2))': + '@vueuse/motion@2.2.6(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2))': dependencies: - '@vueuse/core': 10.11.1(vue@3.5.26(typescript@5.6.2)) - '@vueuse/shared': 10.11.1(vue@3.5.26(typescript@5.6.2)) + '@vueuse/core': 10.11.1(vue@3.5.29(typescript@5.6.2)) + '@vueuse/shared': 10.11.1(vue@3.5.29(typescript@5.6.2)) csstype: 3.1.3 framesync: 6.1.2 popmotion: 11.0.5 style-value-types: 5.1.2 - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) optionalDependencies: '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) transitivePeerDependencies: @@ -21116,14 +21349,14 @@ snapshots: - rollup - supports-color - '@vueuse/nuxt@11.1.0(magicast@0.3.5)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@22.15.33)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)))(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2))': + '@vueuse/nuxt@11.1.0(magicast@0.3.5)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@22.15.33)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)))(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2))': dependencies: '@nuxt/kit': 3.13.2(magicast@0.3.5)(rollup@4.30.1) - '@vueuse/core': 11.1.0(vue@3.5.26(typescript@5.6.2)) + '@vueuse/core': 11.1.0(vue@3.5.29(typescript@5.6.2)) '@vueuse/metadata': 11.1.0 local-pkg: 0.5.0 nuxt: 3.13.2(@parcel/watcher@2.4.1)(@types/node@22.15.33)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)) - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - magicast @@ -21132,14 +21365,14 @@ snapshots: - vue - webpack-sources - '@vueuse/nuxt@11.1.0(magicast@0.3.5)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@24.3.3)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)))(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2))': + '@vueuse/nuxt@11.1.0(magicast@0.3.5)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@24.3.3)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)))(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2))': dependencies: '@nuxt/kit': 3.13.2(magicast@0.3.5)(rollup@4.30.1) - '@vueuse/core': 11.1.0(vue@3.5.26(typescript@5.6.2)) + '@vueuse/core': 11.1.0(vue@3.5.29(typescript@5.6.2)) '@vueuse/metadata': 11.1.0 local-pkg: 0.5.0 nuxt: 3.13.2(@parcel/watcher@2.4.1)(@types/node@24.3.3)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)) - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - magicast @@ -21148,23 +21381,23 @@ snapshots: - vue - webpack-sources - '@vueuse/shared@10.11.1(vue@3.5.26(typescript@5.6.2))': + '@vueuse/shared@10.11.1(vue@3.5.29(typescript@5.6.2))': dependencies: - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@11.1.0(vue@3.5.26(typescript@5.6.2))': + '@vueuse/shared@11.1.0(vue@3.5.29(typescript@5.6.2))': dependencies: - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@11.3.0(vue@3.5.26(typescript@5.6.2))': + '@vueuse/shared@11.3.0(vue@3.5.29(typescript@5.6.2))': dependencies: - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -21355,13 +21588,13 @@ snapshots: - react - use-sync-external-store - '@wagmi/vue@0.1.15(@tanstack/query-core@5.59.16)(@tanstack/vue-query@5.59.16(vue@3.5.26(typescript@5.6.2)))(@types/react@19.1.8)(bufferutil@4.0.8)(immer@10.0.2)(ioredis@5.4.1)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@24.3.3)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)))(react@18.3.1)(typescript@5.6.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1))(vue@3.5.26(typescript@5.6.2))(zod@3.24.1)': + '@wagmi/vue@0.1.15(@tanstack/query-core@5.59.16)(@tanstack/vue-query@5.59.16(vue@3.5.29(typescript@5.6.2)))(@types/react@19.1.8)(bufferutil@4.0.8)(immer@10.0.2)(ioredis@5.4.1)(nuxt@3.13.2(@parcel/watcher@2.4.1)(@types/node@24.3.3)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)))(react@18.3.1)(typescript@5.6.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1))(vue@3.5.29(typescript@5.6.2))(zod@3.24.1)': dependencies: - '@tanstack/vue-query': 5.59.16(vue@3.5.26(typescript@5.6.2)) + '@tanstack/vue-query': 5.59.16(vue@3.5.29(typescript@5.6.2)) '@wagmi/connectors': 5.7.12(@types/react@19.1.8)(@wagmi/core@2.16.7(@tanstack/query-core@5.59.16)(@types/react@19.1.8)(immer@10.0.2)(react@18.3.1)(typescript@5.6.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)))(bufferutil@4.0.8)(ioredis@5.4.1)(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1))(zod@3.24.1) '@wagmi/core': 2.16.7(@tanstack/query-core@5.59.16)(@types/react@19.1.8)(immer@10.0.2)(react@18.3.1)(typescript@5.6.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)) viem: 2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1) - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) optionalDependencies: nuxt: 3.13.2(@parcel/watcher@2.4.1)(@types/node@24.3.3)(bufferutil@4.0.8)(eslint@9.11.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.30.1)(sass@1.80.4)(terser@5.36.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0)) typescript: 5.6.2 @@ -22700,7 +22933,7 @@ snapshots: lit: 3.1.0 qrcode: 1.5.3 - '@web3modal/wagmi@5.1.11(7r3jp5w7bspyekhb2cox26f4gq)': + '@web3modal/wagmi@5.1.11(xp4rkhafxdlo4dioubhgwrdguq)': dependencies: '@wagmi/connectors': 5.7.12(@types/react@19.1.8)(@wagmi/core@2.18.0(@tanstack/query-core@5.59.16)(@types/react@19.1.8)(immer@10.0.2)(react@18.3.1)(typescript@5.6.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)))(bufferutil@4.0.8)(ioredis@5.4.1)(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1))(zod@3.24.1) '@wagmi/core': 2.18.0(@tanstack/query-core@5.59.16)(@types/react@19.1.8)(immer@10.0.2)(react@18.3.1)(typescript@5.6.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)) @@ -22716,7 +22949,7 @@ snapshots: wagmi: 2.14.15(@tanstack/query-core@5.59.16)(@tanstack/react-query@5.59.16(react@18.3.1))(@types/react@19.1.8)(bufferutil@4.0.8)(immer@10.0.2)(ioredis@5.4.1)(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1))(zod@3.24.1) optionalDependencies: react: 18.3.1 - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -22821,9 +23054,9 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-assertions@1.9.0(acorn@8.14.0): + acorn-import-assertions@1.9.0(acorn@8.15.0): dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-import-attributes@1.9.5(acorn@8.12.1): dependencies: @@ -22867,7 +23100,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -23037,11 +23270,21 @@ snapshots: '@babel/parser': 7.28.5 pathe: 2.0.3 + ast-kit@2.2.0: + dependencies: + '@babel/parser': 7.28.5 + pathe: 2.0.3 + ast-walker-scope@0.6.2: dependencies: '@babel/parser': 7.26.0 ast-kit: 1.3.0 + ast-walker-scope@0.8.3: + dependencies: + '@babel/parser': 7.28.5 + ast-kit: 2.2.0 + astral-regex@2.0.0: {} async-mutex@0.2.6: @@ -23230,6 +23473,8 @@ snapshots: birpc@0.2.19: {} + birpc@2.9.0: {} + bl@1.2.3: dependencies: readable-stream: 2.3.8 @@ -23399,7 +23644,7 @@ snapshots: transitivePeerDependencies: - supports-color - bun-types@1.3.5: + bun-types@1.3.9: dependencies: '@types/node': 22.15.33 @@ -23594,6 +23839,10 @@ snapshots: dependencies: readdirp: 4.0.2 + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + chownr@1.1.4: {} chownr@2.0.0: {} @@ -23808,6 +24057,8 @@ snapshots: confbox@0.1.8: {} + confbox@0.2.4: {} + consola@3.2.3: {} consola@3.4.0: {} @@ -23856,6 +24107,10 @@ snapshots: dependencies: is-what: 4.1.16 + copy-anything@4.0.5: + dependencies: + is-what: 5.5.0 + core-js-compat@3.38.1: dependencies: browserslist: 4.24.2 @@ -24295,7 +24550,7 @@ snapshots: docker-modem@5.0.3: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 readable-stream: 3.6.2 split-ca: 1.0.1 ssh2: 1.16.0 @@ -24475,6 +24730,8 @@ snapshots: entities@7.0.0: {} + entities@7.0.1: {} + env-paths@2.2.1: {} env-paths@3.0.0: {} @@ -24721,7 +24978,7 @@ snapshots: get-tsconfig: 4.13.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 + semver: 7.7.3 stable-hash: 0.0.4 tslib: 2.8.0 transitivePeerDependencies: @@ -24739,7 +24996,7 @@ snapshots: espree: 10.2.0 esquery: 1.6.0 parse-imports: 2.2.1 - semver: 7.6.3 + semver: 7.7.3 spdx-expression-parse: 4.0.0 synckit: 0.9.2 transitivePeerDependencies: @@ -24804,7 +25061,7 @@ snapshots: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.6.3 + semver: 7.7.3 strip-indent: 3.0.0 eslint-plugin-unicorn@56.0.1(eslint@9.11.1(jiti@2.4.2)): @@ -24835,7 +25092,7 @@ snapshots: natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 - semver: 7.6.3 + semver: 7.7.3 vue-eslint-parser: 9.4.3(eslint@9.11.1(jiti@2.4.2)) xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -25292,6 +25549,8 @@ snapshots: transitivePeerDependencies: - supports-color + exsolve@1.0.8: {} + extension-port-stream@3.0.0: dependencies: readable-stream: 4.5.2 @@ -25361,7 +25620,7 @@ snapshots: '@fastify/merge-json-schemas': 0.2.1 ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) - fast-uri: 3.0.3 + fast-uri: 3.1.0 json-schema-ref-resolver: 3.0.0 rfdc: 1.4.1 @@ -25389,11 +25648,11 @@ snapshots: fastify-plugin@5.1.0: {} - fastify-type-provider-zod@6.1.0(@fastify/swagger@9.6.1)(fastify@5.6.2)(openapi-types@12.1.3)(zod@4.2.1): + fastify-type-provider-zod@6.1.0(@fastify/swagger@9.6.1)(fastify@5.7.4)(openapi-types@12.1.3)(zod@4.2.1): dependencies: '@fastify/error': 4.2.0 '@fastify/swagger': 9.6.1 - fastify: 5.6.2 + fastify: 5.7.4 openapi-types: 12.1.3 zod: 4.2.1 @@ -25416,7 +25675,7 @@ snapshots: semver: 7.6.3 toad-cache: 3.7.0 - fastify@5.6.2: + fastify@5.7.4: dependencies: '@fastify/ajv-compiler': 4.0.5 '@fastify/error': 4.2.0 @@ -25442,6 +25701,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + ffjavascript@0.3.0: dependencies: wasmbuilder: 0.0.16 @@ -26293,8 +26556,8 @@ snapshots: import-in-the-middle@1.7.1: dependencies: - acorn: 8.14.0 - acorn-import-assertions: 1.9.0(acorn@8.14.0) + acorn: 8.15.0 + acorn-import-assertions: 1.9.0(acorn@8.15.0) cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 @@ -26460,6 +26723,8 @@ snapshots: is-what@4.1.16: {} + is-what@5.5.0: {} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -26859,6 +27124,12 @@ snapshots: mlly: 1.7.4 pkg-types: 1.3.1 + local-pkg@1.1.2: + dependencies: + mlly: 1.8.0 + pkg-types: 2.3.0 + quansync: 0.2.11 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -26961,6 +27232,10 @@ snapshots: dependencies: magic-string: 0.30.21 + magic-string-ast@1.0.3: + dependencies: + magic-string: 0.30.21 + magic-string@0.30.12: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -27161,6 +27436,13 @@ snapshots: pkg-types: 1.3.1 ufo: 1.5.4 + mlly@1.8.0: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.3 + mnemonist@0.38.5: dependencies: obliterator: 2.0.4 @@ -27225,6 +27507,8 @@ snapshots: optionalDependencies: msgpackr-extract: 3.0.3 + muggle-string@0.4.1: {} + multiformats@9.9.0: {} mz@2.7.0: @@ -27462,23 +27746,23 @@ snapshots: - supports-color - webpack-sources - nuxt-link-checker@3.2.0(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)): + nuxt-link-checker@3.2.0(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)): dependencies: '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)) '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) - '@vueuse/core': 11.3.0(vue@3.5.26(typescript@5.6.2)) + '@vueuse/core': 11.3.0(vue@3.5.29(typescript@5.6.2)) chalk: 5.4.1 cheerio: 1.0.0 diff: 7.0.0 fuse.js: 7.1.0 magic-string: 0.30.21 - nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) pathe: 1.1.2 pkg-types: 1.3.1 radix3: 1.1.2 sirv: 3.0.2 - site-config-stack: 2.2.21(vue@3.5.26(typescript@5.6.2)) + site-config-stack: 2.2.21(vue@3.5.29(typescript@5.6.2)) ufo: 1.5.4 transitivePeerDependencies: - '@vue/composition-api' @@ -27489,7 +27773,7 @@ snapshots: - vue - webpack-sources - nuxt-og-image@3.1.1(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)): + nuxt-og-image@3.1.1(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)): dependencies: '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)) '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) @@ -27502,8 +27786,8 @@ snapshots: execa: 9.6.0 image-size: 1.2.1 magic-string: 0.30.21 - nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) nypm: 0.3.12 ofetch: 1.4.1 ohash: 1.1.4 @@ -27528,13 +27812,13 @@ snapshots: - vue - webpack-sources - nuxt-schema-org@3.5.0(magicast@0.3.5)(rollup@4.30.1)(unhead@1.11.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)): + nuxt-schema-org@3.5.0(magicast@0.3.5)(rollup@4.30.1)(unhead@1.11.10)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)): dependencies: '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)) '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) '@unhead/schema-org': 1.11.20(unhead@1.11.10) - nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) pathe: 1.1.2 sirv: 3.0.2 transitivePeerDependencies: @@ -27547,7 +27831,7 @@ snapshots: - vue - webpack-sources - nuxt-seo-experiments@4.0.1(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)): + nuxt-seo-experiments@4.0.1(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)): dependencies: '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) '@unhead/addons': 1.11.20(rollup@4.30.1) @@ -27555,8 +27839,8 @@ snapshots: escape-string-regexp: 5.0.0 fast-glob: 3.3.3 image-size: 1.2.1 - nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)) - nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + nuxt-site-config: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)) + nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) pathe: 1.1.2 ufo: 1.5.4 transitivePeerDependencies: @@ -27567,12 +27851,12 @@ snapshots: - vue - webpack-sources - nuxt-site-config-kit@2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)): + nuxt-site-config-kit@2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)): dependencies: '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) '@nuxt/schema': 3.15.2 pkg-types: 1.3.1 - site-config-stack: 2.2.21(vue@3.5.26(typescript@5.6.2)) + site-config-stack: 2.2.21(vue@3.5.29(typescript@5.6.2)) std-env: 3.8.0 ufo: 1.5.4 transitivePeerDependencies: @@ -27581,16 +27865,16 @@ snapshots: - supports-color - vue - nuxt-site-config@2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.26(typescript@5.6.2)): + nuxt-site-config@2.2.21(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0))(vue@3.5.29(typescript@5.6.2)): dependencies: '@nuxt/devtools-kit': 1.6.0(magicast@0.3.5)(rollup@4.30.1)(vite@5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0)) '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.30.1) '@nuxt/schema': 3.15.2 - nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.26(typescript@5.6.2)) + nuxt-site-config-kit: 2.2.21(magicast@0.3.5)(rollup@4.30.1)(vue@3.5.29(typescript@5.6.2)) pathe: 1.1.2 pkg-types: 1.3.1 sirv: 3.0.2 - site-config-stack: 2.2.21(vue@3.5.26(typescript@5.6.2)) + site-config-stack: 2.2.21(vue@3.5.29(typescript@5.6.2)) ufo: 1.5.4 transitivePeerDependencies: - magicast @@ -28020,7 +28304,7 @@ snapshots: vue: 3.5.26(typescript@5.6.2) vue-bundle-renderer: 2.1.1 vue-devtools-stub: 0.1.0 - vue-router: 4.4.5(vue@3.5.26(typescript@5.6.2)) + vue-router: 4.4.5(vue@3.5.29(typescript@5.6.2)) optionalDependencies: '@parcel/watcher': 2.4.1 '@types/node': 24.3.3 @@ -28654,6 +28938,8 @@ snapshots: perfect-debounce@1.0.0: {} + perfect-debounce@2.1.0: {} + pg-int8@1.0.1: {} pg-protocol@1.10.3: {} @@ -28684,11 +28970,11 @@ snapshots: pify@5.0.0: {} - pinia@2.2.4(typescript@5.6.2)(vue@3.5.26(typescript@5.6.2)): + pinia@2.2.4(typescript@5.6.2)(vue@3.5.29(typescript@5.6.2)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.26(typescript@5.6.2) - vue-demi: 0.14.10(vue@3.5.26(typescript@5.6.2)) + vue: 3.5.29(typescript@5.6.2) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.6.2)) optionalDependencies: typescript: 5.6.2 @@ -28812,6 +29098,12 @@ snapshots: mlly: 1.7.4 pathe: 2.0.2 + pkg-types@2.3.0: + dependencies: + confbox: 0.2.4 + exsolve: 1.0.8 + pathe: 2.0.3 + playwright-core@1.48.1: {} playwright-core@1.56.1: {} @@ -29112,14 +29404,15 @@ snapshots: dependencies: parse-ms: 4.0.0 - prividium@0.1.5(@fastify/swagger@9.6.1)(bufferutil@4.0.8)(openapi-types@12.1.3)(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)): + prividium@0.7.0(@fastify/swagger@9.6.1)(bufferutil@4.0.8)(openapi-types@12.1.3)(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1)): dependencies: '@clack/prompts': 0.11.0 '@fastify/http-proxy': 11.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@fastify/static': 8.3.0 appdirsjs: 1.2.7 - fastify: 5.6.2 - fastify-type-provider-zod: 6.1.0(@fastify/swagger@9.6.1)(fastify@5.6.2)(openapi-types@12.1.3)(zod@4.2.1) + date-fns: 4.1.0 + fastify: 5.7.4 + fastify-type-provider-zod: 6.1.0(@fastify/swagger@9.6.1)(fastify@5.7.4)(openapi-types@12.1.3)(zod@4.2.1) kleur: 4.1.5 open: 10.1.0 viem: 2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1) @@ -29234,6 +29527,8 @@ snapshots: dependencies: side-channel: 1.0.6 + quansync@0.2.11: {} + query-string@7.1.3: dependencies: decode-uri-component: 0.2.2 @@ -29258,20 +29553,20 @@ snapshots: fastfile: 0.0.20 ffjavascript: 0.3.0 - radix-vue@1.9.7(vue@3.5.26(typescript@5.6.2)): + radix-vue@1.9.7(vue@3.5.29(typescript@5.6.2)): dependencies: '@floating-ui/dom': 1.6.11 - '@floating-ui/vue': 1.1.5(vue@3.5.26(typescript@5.6.2)) + '@floating-ui/vue': 1.1.5(vue@3.5.29(typescript@5.6.2)) '@internationalized/date': 3.5.6 '@internationalized/number': 3.5.4 - '@tanstack/vue-virtual': 3.10.8(vue@3.5.26(typescript@5.6.2)) - '@vueuse/core': 10.11.1(vue@3.5.26(typescript@5.6.2)) - '@vueuse/shared': 10.11.1(vue@3.5.26(typescript@5.6.2)) + '@tanstack/vue-virtual': 3.10.8(vue@3.5.29(typescript@5.6.2)) + '@vueuse/core': 10.11.1(vue@3.5.29(typescript@5.6.2)) + '@vueuse/shared': 10.11.1(vue@3.5.29(typescript@5.6.2)) aria-hidden: 1.2.4 defu: 6.1.4 fast-deep-equal: 3.1.3 nanoid: 5.0.7 - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) transitivePeerDependencies: - '@vue/composition-api' @@ -29359,6 +29654,8 @@ snapshots: readdirp@4.0.2: {} + readdirp@5.0.0: {} + real-require@0.1.0: {} real-require@0.2.0: {} @@ -29445,7 +29742,7 @@ snapshots: require-in-the-middle@7.5.2: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 module-details-from-path: 1.0.4 resolve: 1.22.8 transitivePeerDependencies: @@ -29780,10 +30077,10 @@ snapshots: sisteransi@1.0.5: {} - site-config-stack@2.2.21(vue@3.5.26(typescript@5.6.2)): + site-config-stack@2.2.21(vue@3.5.29(typescript@5.6.2)): dependencies: ufo: 1.5.4 - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) slash@3.0.0: {} @@ -30097,6 +30394,10 @@ snapshots: dependencies: copy-anything: 3.0.5 + superjson@2.2.6: + dependencies: + copy-anything: 4.0.5 + superstruct@1.0.4: {} supports-color@3.2.3: @@ -30163,7 +30464,7 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - tailwind-config-viewer@2.0.4(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@22.15.33)(typescript@5.6.2))): + tailwind-config-viewer@2.0.4(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@24.3.3)(typescript@5.6.2))): dependencies: '@koa/router': 12.0.2 commander: 6.2.1 @@ -30173,11 +30474,11 @@ snapshots: open: 7.4.2 portfinder: 1.0.32 replace-in-file: 6.3.5 - tailwindcss: 3.4.14(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@22.15.33)(typescript@5.6.2)) + tailwindcss: 3.4.14(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@24.3.3)(typescript@5.6.2)) transitivePeerDependencies: - supports-color - tailwind-config-viewer@2.0.4(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@24.3.3)(typescript@5.6.2))): + tailwind-config-viewer@2.0.4(tailwindcss@3.4.14): dependencies: '@koa/router': 12.0.2 commander: 6.2.1 @@ -30187,7 +30488,7 @@ snapshots: open: 7.4.2 portfinder: 1.0.32 replace-in-file: 6.3.5 - tailwindcss: 3.4.14(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@24.3.3)(typescript@5.6.2)) + tailwindcss: 3.4.14(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.13))(@swc/wasm@1.15.2)(@types/node@22.15.33)(typescript@5.6.2)) transitivePeerDependencies: - supports-color @@ -30303,7 +30604,7 @@ snapshots: terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.14.0 + acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -30369,6 +30670,11 @@ snapshots: fdir: 6.4.2(picomatch@4.0.2) picomatch: 4.0.2 + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + tinyglobby@0.2.6: dependencies: fdir: 6.4.2(picomatch@4.0.2) @@ -30647,6 +30953,8 @@ snapshots: ufo@1.5.4: {} + ufo@1.6.3: {} + uglify-js@3.19.3: optional: true @@ -30671,7 +30979,7 @@ snapshots: dependencies: acorn: 8.14.0 estree-walker: 3.0.3 - magic-string: 0.30.19 + magic-string: 0.30.21 unplugin: 2.1.2 underscore@1.12.1: {} @@ -30755,15 +31063,15 @@ snapshots: escape-string-regexp: 5.0.0 estree-walker: 3.0.3 local-pkg: 0.5.1 - magic-string: 0.30.19 + magic-string: 0.30.21 mlly: 1.7.4 pathe: 1.1.2 - picomatch: 4.0.2 + picomatch: 4.0.3 pkg-types: 1.2.1 scule: 1.3.0 strip-literal: 2.1.1 tinyglobby: 0.2.10 - unplugin: 1.16.0 + unplugin: 1.16.1 transitivePeerDependencies: - rollup @@ -30810,6 +31118,11 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.3 + unplugin-utils@0.3.1: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.3 + unplugin-vue-router@0.10.8(rollup@4.30.1)(vue-router@4.4.5(vue@3.5.26(typescript@5.6.2)))(vue@3.5.26(typescript@5.6.2)): dependencies: '@babel/types': 7.26.0 @@ -30827,7 +31140,7 @@ snapshots: unplugin: 1.14.1 yaml: 2.6.0 optionalDependencies: - vue-router: 4.4.5(vue@3.5.26(typescript@5.6.2)) + vue-router: 4.4.5(vue@3.5.29(typescript@5.6.2)) transitivePeerDependencies: - rollup - vue @@ -30838,19 +31151,20 @@ snapshots: acorn: 8.12.1 webpack-virtual-modules: 0.6.2 - unplugin@1.16.0: + unplugin@1.16.1: dependencies: acorn: 8.14.0 webpack-virtual-modules: 0.6.2 - unplugin@1.16.1: + unplugin@2.1.2: dependencies: - acorn: 8.14.0 + acorn: 8.15.0 webpack-virtual-modules: 0.6.2 - unplugin@2.1.2: + unplugin@3.0.0: dependencies: - acorn: 8.14.0 + '@jridgewell/remapping': 2.3.5 + picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 unrs-resolver@1.11.1: @@ -30929,13 +31243,11 @@ snapshots: unwasm@0.3.9: dependencies: knitwork: 1.1.0 - magic-string: 0.30.19 + magic-string: 0.30.21 mlly: 1.7.4 pathe: 1.1.2 pkg-types: 1.2.1 - unplugin: 1.14.1 - transitivePeerDependencies: - - webpack-sources + unplugin: 1.16.1 update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: @@ -31389,9 +31701,9 @@ snapshots: '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) - '@vue/compiler-dom': 3.5.24 + '@vue/compiler-dom': 3.5.26 kolorist: 1.8.0 - magic-string: 0.30.19 + magic-string: 0.30.21 vite: 5.4.10(@types/node@22.15.33)(sass@1.80.4)(terser@5.36.0) transitivePeerDependencies: - supports-color @@ -31404,9 +31716,9 @@ snapshots: '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) - '@vue/compiler-dom': 3.5.24 + '@vue/compiler-dom': 3.5.26 kolorist: 1.8.0 - magic-string: 0.30.19 + magic-string: 0.30.21 vite: 5.4.10(@types/node@22.8.0)(sass@1.80.4)(terser@5.36.0) transitivePeerDependencies: - supports-color @@ -31419,9 +31731,9 @@ snapshots: '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) - '@vue/compiler-dom': 3.5.24 + '@vue/compiler-dom': 3.5.26 kolorist: 1.8.0 - magic-string: 0.30.19 + magic-string: 0.30.21 vite: 5.4.10(@types/node@24.3.3)(sass@1.80.4)(terser@5.36.0) transitivePeerDependencies: - supports-color @@ -31644,9 +31956,9 @@ snapshots: dependencies: ufo: 1.5.4 - vue-demi@0.14.10(vue@3.5.26(typescript@5.6.2)): + vue-demi@0.14.10(vue@3.5.29(typescript@5.6.2)): dependencies: - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) vue-devtools-stub@0.1.0: {} @@ -31659,23 +31971,47 @@ snapshots: espree: 9.6.1 esquery: 1.6.0 lodash: 4.17.21 - semver: 7.6.3 + semver: 7.7.3 transitivePeerDependencies: - supports-color - vue-load-image@1.1.0(vue@3.5.26(typescript@5.6.2)): + vue-load-image@1.1.0(vue@3.5.29(typescript@5.6.2)): dependencies: - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) vue-router@4.4.5(vue@3.5.26(typescript@5.6.2)): dependencies: '@vue/devtools-api': 6.6.4 vue: 3.5.26(typescript@5.6.2) - vue-router@4.6.4(vue@3.5.26(typescript@5.6.2)): + vue-router@4.4.5(vue@3.5.29(typescript@5.6.2)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) + + vue-router@5.0.3(@vue/compiler-sfc@3.5.29)(pinia@2.2.4(typescript@5.6.2)(vue@3.5.29(typescript@5.6.2)))(vue@3.5.29(typescript@5.6.2)): + dependencies: + '@babel/generator': 7.29.1 + '@vue-macros/common': 3.1.2(vue@3.5.29(typescript@5.6.2)) + '@vue/devtools-api': 8.0.6 + ast-walker-scope: 0.8.3 + chokidar: 5.0.0 + json5: 2.2.3 + local-pkg: 1.1.2 + magic-string: 0.30.21 + mlly: 1.8.0 + muggle-string: 0.4.1 + pathe: 2.0.3 + picomatch: 4.0.3 + scule: 1.3.0 + tinyglobby: 0.2.15 + unplugin: 3.0.0 + unplugin-utils: 0.3.1 + vue: 3.5.29(typescript@5.6.2) + yaml: 2.8.2 + optionalDependencies: + '@vue/compiler-sfc': 3.5.29 + pinia: 2.2.4(typescript@5.6.2)(vue@3.5.29(typescript@5.6.2)) vue@3.5.13(typescript@5.6.2): dependencies: @@ -31697,6 +32033,16 @@ snapshots: optionalDependencies: typescript: 5.6.2 + vue@3.5.29(typescript@5.6.2): + dependencies: + '@vue/compiler-dom': 3.5.29 + '@vue/compiler-sfc': 3.5.29 + '@vue/runtime-dom': 3.5.29 + '@vue/server-renderer': 3.5.29(vue@3.5.29(typescript@5.6.2)) + '@vue/shared': 3.5.29 + optionalDependencies: + typescript: 5.6.2 + wagmi@2.14.15(@tanstack/query-core@5.59.16)(@tanstack/react-query@5.59.16(react@18.3.1))(@types/react@19.1.8)(bufferutil@4.0.8)(immer@10.0.2)(ioredis@5.4.1)(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.30.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.24.1))(zod@3.24.1): dependencies: '@tanstack/react-query': 5.59.16(react@18.3.1) @@ -31749,9 +32095,9 @@ snapshots: web-worker@1.2.0: {} - web3-avatar-vue@1.0.5(vue@3.5.26(typescript@5.6.2)): + web3-avatar-vue@1.0.5(vue@3.5.29(typescript@5.6.2)): dependencies: - vue: 3.5.26(typescript@5.6.2) + vue: 3.5.29(typescript@5.6.2) web3-avatar: 1.0.5 web3-avatar@1.0.5: {} @@ -31912,6 +32258,8 @@ snapshots: yaml@2.6.0: {} + yaml@2.8.2: {} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1