From 60b0998a4a889dbeafad4507746a41f189ab683d Mon Sep 17 00:00:00 2001 From: Jack Hamer Date: Thu, 26 Feb 2026 16:42:04 +0200 Subject: [PATCH 1/8] feat: new version of prividium --- packages/auth-server-api/.env.example | 17 + packages/auth-server-api/package.json | 1 + packages/auth-server-api/src/config.ts | 139 ++- .../src/handlers/deploy-account.ts | 38 +- .../src/middleware/prividium-auth.ts | 2 +- .../services/prividium/address-association.ts | 20 +- .../src/services/prividium/admin-auth.ts | 157 +--- .../services/prividium/contract-whitelist.ts | 12 +- .../src/services/prividium/index.ts | 1 - .../src/services/prividium/proxy-client.ts | 19 - .../src/services/prividium/user-auth.ts | 6 +- pnpm-lock.yaml | 845 +++++++++++++----- 12 files changed, 818 insertions(+), 439 deletions(-) delete mode 100644 packages/auth-server-api/src/services/prividium/proxy-client.ts diff --git a/packages/auth-server-api/.env.example b/packages/auth-server-api/.env.example index 01644550..b42055b4 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 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 diff --git a/packages/auth-server-api/package.json b/packages/auth-server-api/package.json index 6cfa8f34..5dce765a 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.6.0", "viem": "2.30.0", "zksync-sso-4337": "workspace:*", "zod": "^3.24.1" diff --git a/packages/auth-server-api/src/config.ts b/packages/auth-server-api/src/config.ts index 834b249d..55b55250 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,94 @@ 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`]; + + // Validate required fields + if (!chainIdStr) { + console.error(`CHAIN_${chainIndex}_ID is required but not provided`); + process.exit(1); + } + if (!rpcUrl) { + 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 + 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], + }, + }, + }); + + 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 +192,20 @@ 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: env.SSO_AUTH_SERVER_BASE_URL ? new URL(env.SSO_AUTH_SERVER_BASE_URL).host : "", }; // 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..6786524f 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,13 @@ 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(); + const adminAuth = getAdminAuthService(prividiumConfig, chain); + await adminAuth.initialize(); + adminSdk = adminAuth.getSdkInstance(); } catch (error) { console.error("Admin authentication failed:", error); res.status(500).json({ @@ -49,9 +51,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 transport with auto-auth! : http(env.RPC_URL); // Create clients @@ -166,14 +168,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 +200,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/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..f7c20dcd 100644 --- a/packages/auth-server-api/src/services/prividium/admin-auth.ts +++ b/packages/auth-server-api/src/services/prividium/admin-auth.ts @@ -1,133 +1,58 @@ -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; + + constructor(private config: PrividiumConfig, chain: Chain) { + 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). + * Ensures admin is authenticated. + * Call this 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; } } @@ -137,9 +62,9 @@ let adminAuthServiceInstance: AdminAuthService | null = null; /** * Gets or creates the singleton AdminAuthService instance. */ -export function getAdminAuthService(config: PrividiumConfig): AdminAuthService { +export function getAdminAuthService(config: PrividiumConfig, chain: Chain): AdminAuthService { if (!adminAuthServiceInstance) { - adminAuthServiceInstance = new AdminAuthService(config); + adminAuthServiceInstance = new AdminAuthService(config, chain); } 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/pnpm-lock.yaml b/pnpm-lock.yaml index eeffc9a6..6d70485f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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,7 +364,7 @@ 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 @@ -373,7 +373,7 @@ importers: 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)) 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.6.0 + version: 0.6.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'} @@ -8489,6 +8569,9 @@ packages: 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 +8583,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 +8889,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 +9412,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 +9747,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 +9875,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 +10105,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 +10146,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 +10705,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 +10821,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'} @@ -11039,6 +11157,12 @@ packages: peerDependencies: viem: '>=2.0.0' + prividium@0.6.0: + resolution: {integrity: sha512-d41Y9P3UsxiR1/lUg7KfdTS7rLtqvXeK/un2POXW/2FixUxSRAc2ClSgSRiaKKQBC6LXtV91gwXAUUEpPJaJUQ==} + hasBin: true + peerDependencies: + viem: '>=2.0.0' + proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -11133,6 +11257,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 +11344,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 +12005,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 +12107,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 +12172,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 +12420,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 +12539,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 +12560,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 +12568,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 +12970,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 +13001,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 +13253,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 +13469,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 +13621,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 +14165,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 +14189,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 +15553,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 +15627,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 +15651,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 +15672,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 +15739,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': {} @@ -17391,7 +17583,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 +17870,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 +17891,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 +17917,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 @@ -18994,10 +19186,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 +19550,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 +19558,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 +19581,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 +19615,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 +20015,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 +20207,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 +20275,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: @@ -20812,15 +21004,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 +21049,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 +21061,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 +21082,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 +21104,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 +21133,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 +21209,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 +21227,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 +21239,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 +21253,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 +21272,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 +21291,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 +21341,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 +21358,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 +21374,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 +21390,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 +21597,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 +22942,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 +22958,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 +23063,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: @@ -23037,11 +23279,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 +23482,8 @@ snapshots: birpc@0.2.19: {} + birpc@2.9.0: {} + bl@1.2.3: dependencies: readable-stream: 2.3.8 @@ -23399,7 +23653,7 @@ snapshots: transitivePeerDependencies: - supports-color - bun-types@1.3.5: + bun-types@1.3.9: dependencies: '@types/node': 22.15.33 @@ -23594,6 +23848,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 +24066,8 @@ snapshots: confbox@0.1.8: {} + confbox@0.2.4: {} + consola@3.2.3: {} consola@3.4.0: {} @@ -23856,6 +24116,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 @@ -24475,6 +24739,8 @@ snapshots: entities@7.0.0: {} + entities@7.0.1: {} + env-paths@2.2.1: {} env-paths@3.0.0: {} @@ -24721,7 +24987,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 +25005,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 +25070,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 +25101,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 +25558,8 @@ snapshots: transitivePeerDependencies: - supports-color + exsolve@1.0.8: {} + extension-port-stream@3.0.0: dependencies: readable-stream: 4.5.2 @@ -25361,7 +25629,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 @@ -25397,6 +25665,14 @@ snapshots: 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.7.4 + openapi-types: 12.1.3 + zod: 4.2.1 + fastify@4.29.1: dependencies: '@fastify/ajv-compiler': 3.6.0 @@ -25434,6 +25710,24 @@ snapshots: semver: 7.7.3 toad-cache: 3.7.0 + fastify@5.7.4: + dependencies: + '@fastify/ajv-compiler': 4.0.5 + '@fastify/error': 4.2.0 + '@fastify/fast-json-stringify-compiler': 5.0.3 + '@fastify/proxy-addr': 5.1.0 + abstract-logging: 2.0.1 + avvio: 9.1.0 + fast-json-stringify: 6.1.1 + find-my-way: 9.3.0 + light-my-request: 6.6.0 + pino: 10.1.0 + process-warning: 5.0.0 + rfdc: 1.4.1 + secure-json-parse: 4.1.0 + semver: 7.7.3 + toad-cache: 3.7.0 + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -25442,6 +25736,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 +26591,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 +26758,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 +27159,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 +27267,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 +27471,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 +27542,8 @@ snapshots: optionalDependencies: msgpackr-extract: 3.0.3 + muggle-string@0.4.1: {} + multiformats@9.9.0: {} mz@2.7.0: @@ -27462,23 +27781,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 +27808,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 +27821,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 +27847,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 +27866,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 +27874,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 +27886,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 +27900,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 @@ -28654,6 +28973,8 @@ snapshots: perfect-debounce@1.0.0: {} + perfect-debounce@2.1.0: {} + pg-int8@1.0.1: {} pg-protocol@1.10.3: {} @@ -28684,11 +29005,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 +29133,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: {} @@ -29131,6 +29458,26 @@ snapshots: - openapi-types - utf-8-validate + prividium@0.6.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 + 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) + yargs: 18.0.0 + zod: 4.2.1 + transitivePeerDependencies: + - '@fastify/swagger' + - bufferutil + - openapi-types + - utf-8-validate + proc-log@3.0.0: {} process-nextick-args@2.0.1: {} @@ -29234,6 +29581,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 +29607,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 +29708,8 @@ snapshots: readdirp@4.0.2: {} + readdirp@5.0.0: {} + real-require@0.1.0: {} real-require@0.2.0: {} @@ -29780,10 +30131,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 +30448,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: @@ -30303,7 +30658,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 +30724,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 +31007,8 @@ snapshots: ufo@1.5.4: {} + ufo@1.6.3: {} + uglify-js@3.19.3: optional: true @@ -30671,7 +31033,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 +31117,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 +31172,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 @@ -30838,19 +31205,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 +31297,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 +31755,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 +31770,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 +31785,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 +32010,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 +32025,42 @@ 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@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: - '@vue/devtools-api': 6.6.4 - vue: 3.5.26(typescript@5.6.2) + '@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 +32082,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 +32144,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 +32307,8 @@ snapshots: yaml@2.6.0: {} + yaml@2.8.2: {} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 From 27a165b1ed06b3e18bb0d9a88ced2db123278508 Mon Sep 17 00:00:00 2001 From: Jack Hamer Date: Thu, 26 Feb 2026 17:08:31 +0200 Subject: [PATCH 2/8] fix: updates --- packages/auth-server-api/src/config.ts | 17 +++++---- .../src/handlers/deploy-account.ts | 6 ++-- packages/auth-server-api/src/index.ts | 36 ++++++++++++++----- .../src/services/prividium/admin-auth.ts | 25 +++++++++---- 4 files changed, 57 insertions(+), 27 deletions(-) diff --git a/packages/auth-server-api/src/config.ts b/packages/auth-server-api/src/config.ts index 55b55250..dc1d4034 100644 --- a/packages/auth-server-api/src/config.ts +++ b/packages/auth-server-api/src/config.ts @@ -114,15 +114,10 @@ function parseSupportedChains(): Chain[] { // Keep discovering chains until CHAIN_N_ID doesn't exist while (process.env[`CHAIN_${chainIndex}_ID`]) { - const chainIdStr = 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`]; - // Validate required fields - if (!chainIdStr) { - console.error(`CHAIN_${chainIndex}_ID is required but not provided`); - process.exit(1); - } if (!rpcUrl) { console.error(`CHAIN_${chainIndex}_RPC_URL is required but not provided`); process.exit(1); @@ -205,7 +200,15 @@ const prividiumConfig: PrividiumConfig = { adminPrivateKey: env.PRIVIDIUM_ADMIN_PRIVATE_KEY || "", templateKey: env.PRIVIDIUM_TEMPLATE_KEY || "", ssoAuthServerBaseUrl: env.SSO_AUTH_SERVER_BASE_URL || "", - domain: env.SSO_AUTH_SERVER_BASE_URL ? new URL(env.SSO_AUTH_SERVER_BASE_URL).host : "", + 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 6786524f..290fef5d 100644 --- a/packages/auth-server-api/src/handlers/deploy-account.ts +++ b/packages/auth-server-api/src/handlers/deploy-account.ts @@ -39,9 +39,7 @@ export const deployAccountHandler = async (req: Request, res: Response): Promise let adminSdk: PrividiumSiweChain | undefined; if (prividiumConfig.enabled && req.prividiumUser) { try { - const adminAuth = getAdminAuthService(prividiumConfig, chain); - await adminAuth.initialize(); - adminSdk = adminAuth.getSdkInstance(); + adminSdk = getAdminAuthService().getSdkInstance(); } catch (error) { console.error("Admin authentication failed:", error); res.status(500).json({ @@ -53,7 +51,7 @@ export const deployAccountHandler = async (req: Request, res: Response): Promise // Create transport - use SDK transport if enabled, otherwise direct RPC const transport = adminSdk - ? adminSdk.transport // SDK transport with auto-auth! + ? adminSdk.transport // SDK provides authenticated transport : http(env.RPC_URL); // Create clients 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/services/prividium/admin-auth.ts b/packages/auth-server-api/src/services/prividium/admin-auth.ts index f7c20dcd..5a308bb8 100644 --- a/packages/auth-server-api/src/services/prividium/admin-auth.ts +++ b/packages/auth-server-api/src/services/prividium/admin-auth.ts @@ -10,8 +10,10 @@ import type { PrividiumConfig } from "../../config.js"; */ export class AdminAuthService { private sdkInstance: PrividiumSiweChain; + readonly chainId: number; - constructor(private config: PrividiumConfig, chain: Chain) { + constructor(config: PrividiumConfig, chain: Chain) { + this.chainId = chain.id; const account = privateKeyToAccount(config.adminPrivateKey as Hex); // Initialize SDK - it handles everything @@ -35,8 +37,7 @@ export class AdminAuthService { } /** - * Ensures admin is authenticated. - * Call this once at startup. + * Authenticates admin with Prividium. Call once at startup. */ async initialize(): Promise { if (!this.sdkInstance.isAuthorized()) { @@ -56,15 +57,25 @@ export class AdminAuthService { } } -// 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 function getAdminAuthService(config: PrividiumConfig, chain: Chain): AdminAuthService { +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(): AdminAuthService { if (!adminAuthServiceInstance) { - adminAuthServiceInstance = new AdminAuthService(config, chain); + throw new Error("AdminAuthService not initialized. Call initAdminAuthService() at startup first."); } return adminAuthServiceInstance; } From c91ea28a155db831126743b8fbd15680dfa75a8c Mon Sep 17 00:00:00 2001 From: Jack Hamer Date: Thu, 26 Feb 2026 17:43:36 +0200 Subject: [PATCH 3/8] fix: support * cors --- packages/auth-server-api/src/app.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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")); From 960853ab5e3c80b6e8848b829b4c6a5adf77bf9c Mon Sep 17 00:00:00 2001 From: Jack Hamer Date: Thu, 26 Feb 2026 17:55:15 +0200 Subject: [PATCH 4/8] fix: do not use CHAIN_N_RPC_URL in prividium mode --- packages/auth-server-api/.env.example | 7 +++---- packages/auth-server-api/src/config.ts | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/packages/auth-server-api/.env.example b/packages/auth-server-api/.env.example index b42055b4..a256fe3b 100644 --- a/packages/auth-server-api/.env.example +++ b/packages/auth-server-api/.env.example @@ -19,7 +19,7 @@ RPC_URL=http://127.0.0.1:8545 # # Required per chain: # CHAIN_N_ID - Chain ID (positive integer) -# CHAIN_N_RPC_URL - RPC endpoint URL +# 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) @@ -41,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/src/config.ts b/packages/auth-server-api/src/config.ts index dc1d4034..963e413c 100644 --- a/packages/auth-server-api/src/config.ts +++ b/packages/auth-server-api/src/config.ts @@ -118,7 +118,8 @@ function parseSupportedChains(): Chain[] { const rpcUrl = process.env[`CHAIN_${chainIndex}_RPC_URL`]; const decimalsStr = process.env[`CHAIN_${chainIndex}_BASE_TOKEN_DECIMALS`]; - if (!rpcUrl) { + // 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); } @@ -140,12 +141,14 @@ function parseSupportedChains(): Chain[] { } } - // Validate RPC URL format - try { - new URL(rpcUrl); - } catch { - console.error(`CHAIN_${chainIndex}_RPC_URL is not a valid URL: ${rpcUrl}`); - 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 @@ -159,7 +162,7 @@ function parseSupportedChains(): Chain[] { }, rpcUrls: { default: { - http: [rpcUrl], + http: rpcUrl ? [rpcUrl] : [], }, }, }); From c8cf7e6033a639a543302956161782597d05381e Mon Sep 17 00:00:00 2001 From: Jack Hamer Date: Fri, 27 Feb 2026 16:59:33 +0200 Subject: [PATCH 5/8] fix: ci --- .github/workflows/ci.yml | 3 +++ cspell-config/cspell-misc.txt | 1 + 2 files changed, 4 insertions(+) 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..ff3e3132 100644 --- a/cspell-config/cspell-misc.txt +++ b/cspell-config/cspell-misc.txt @@ -14,6 +14,7 @@ ethereum sepolia foundryup unpermitted +reauthenticate // auth-server oidc From 56da6eeccf611540f400c635f119a355d8c3f82b Mon Sep 17 00:00:00 2001 From: Jack Hamer Date: Fri, 27 Feb 2026 17:01:57 +0200 Subject: [PATCH 6/8] chore: cspell --- cspell-config/cspell-misc.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cspell-config/cspell-misc.txt b/cspell-config/cspell-misc.txt index ff3e3132..5543b54e 100644 --- a/cspell-config/cspell-misc.txt +++ b/cspell-config/cspell-misc.txt @@ -14,7 +14,7 @@ ethereum sepolia foundryup unpermitted -reauthenticate +reauthentication // auth-server oidc From 6cc7a3bf42afc4c60b846e84c9895bb4fff142d6 Mon Sep 17 00:00:00 2001 From: Jack Hamer Date: Fri, 27 Feb 2026 19:21:31 +0200 Subject: [PATCH 7/8] fix: auth server on new prividium --- package.json | 5 + packages/auth-server/.env.example | 3 +- .../auth-server/components/PrividiumLogin.vue | 2 +- .../views/confirmation/RequestAccounts.vue | 2 +- .../views/confirmation/RequestSession.vue | 4 +- .../usePrividiumAddressAssociation.ts | 68 ------------ packages/auth-server/nuxt.config.ts | 4 +- packages/auth-server/package.json | 2 +- .../auth-server/pages/dashboard/index.vue | 2 +- packages/auth-server/stores/prividiumAuth.ts | 7 +- patches/prividium@0.6.0.patch | 12 +++ pnpm-lock.yaml | 100 +++++------------- 12 files changed, 56 insertions(+), 155 deletions(-) delete mode 100644 packages/auth-server/composables/usePrividiumAddressAssociation.ts create mode 100644 patches/prividium@0.6.0.patch diff --git a/package.json b/package.json index a23066b6..5e75e729 100644 --- a/package.json +++ b/package.json @@ -57,5 +57,10 @@ "dependencies": { "prettier-plugin-solidity": "^1.4.1", "snarkjs": "^0.7.5" + }, + "pnpm": { + "patchedDependencies": { + "prividium@0.6.0": "patches/prividium@0.6.0.patch" + } } } 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/patches/prividium@0.6.0.patch b/patches/prividium@0.6.0.patch new file mode 100644 index 00000000..e166e50e --- /dev/null +++ b/patches/prividium@0.6.0.patch @@ -0,0 +1,12 @@ +diff --git a/package.json b/package.json +index d9e06431ede9c94d3512c90fd10dbd769144c5c7..8f735a90d37742bad4205f956bb90feb97c892c8 100644 +--- a/package.json ++++ b/package.json +@@ -1,6 +1,7 @@ + { + "name": "prividium", + "version": "0.6.0", ++ "type": "module", + "bin": { + "prividium": "bin/cli.js" + }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6d70485f..a93e18ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,11 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +patchedDependencies: + prividium@0.6.0: + hash: 57a3xuxokuqz63tltzfoqdjada + path: patches/prividium@0.6.0.patch + importers: .: @@ -132,7 +137,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 @@ -369,8 +374,8 @@ importers: 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.6.0 + version: 0.6.0(patch_hash=57a3xuxokuqz63tltzfoqdjada)(@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.29(typescript@5.6.2)) @@ -446,7 +451,7 @@ importers: version: 7.5.1(express@4.21.2) prividium: specifier: ^0.6.0 - version: 0.6.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)) + version: 0.6.0(patch_hash=57a3xuxokuqz63tltzfoqdjada)(@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) @@ -8566,9 +8571,6 @@ 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==} @@ -11151,12 +11153,6 @@ packages: resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} engines: {node: '>=18'} - prividium@0.1.5: - resolution: {integrity: sha512-DoaTXFmHZSPQABsQBQw9WxjnxirHL5/ZRpV6Wg8VN0KOTCO4n2KqZ9Tg4gCRNT2pvj+wKkOtiZLmlP1hNmZ8bA==} - hasBin: true - peerDependencies: - viem: '>=2.0.0' - prividium@0.6.0: resolution: {integrity: sha512-d41Y9P3UsxiR1/lUg7KfdTS7rLtqvXeK/un2POXW/2FixUxSRAc2ClSgSRiaKKQBC6LXtV91gwXAUUEpPJaJUQ==} hasBin: true @@ -16472,7 +16468,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 @@ -17954,7 +17950,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 @@ -20550,7 +20546,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 @@ -20591,7 +20587,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 @@ -23109,7 +23105,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -24559,7 +24555,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 @@ -25657,14 +25653,6 @@ 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): - dependencies: - '@fastify/error': 4.2.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 @@ -25692,24 +25680,6 @@ snapshots: semver: 7.6.3 toad-cache: 3.7.0 - fastify@5.6.2: - dependencies: - '@fastify/ajv-compiler': 4.0.5 - '@fastify/error': 4.2.0 - '@fastify/fast-json-stringify-compiler': 5.0.3 - '@fastify/proxy-addr': 5.1.0 - abstract-logging: 2.0.1 - avvio: 9.1.0 - fast-json-stringify: 6.1.1 - find-my-way: 9.3.0 - light-my-request: 6.6.0 - pino: 10.1.0 - process-warning: 5.0.0 - rfdc: 1.4.1 - secure-json-parse: 4.1.0 - semver: 7.7.3 - toad-cache: 3.7.0 - fastify@5.7.4: dependencies: '@fastify/ajv-compiler': 4.0.5 @@ -28339,7 +28309,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 @@ -29439,26 +29409,7 @@ 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)): - 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) - 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) - yargs: 18.0.0 - zod: 4.2.1 - transitivePeerDependencies: - - '@fastify/swagger' - - bufferutil - - openapi-types - - utf-8-validate - - prividium@0.6.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)): + prividium@0.6.0(patch_hash=57a3xuxokuqz63tltzfoqdjada)(@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) @@ -29796,7 +29747,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: @@ -30518,7 +30469,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 @@ -30528,11 +30479,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 @@ -30542,7 +30493,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 @@ -31194,7 +31145,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 @@ -32038,6 +31989,11 @@ snapshots: '@vue/devtools-api': 6.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.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 From 6a86b2a5836fdc7533f2bc0aa124a0478e47cb36 Mon Sep 17 00:00:00 2001 From: Jack Hamer Date: Fri, 27 Feb 2026 21:30:12 +0200 Subject: [PATCH 8/8] fix: update prividium sdk --- package.json | 6 +----- packages/auth-server-api/package.json | 2 +- packages/auth-server/package.json | 2 +- patches/prividium@0.6.0.patch | 12 ----------- pnpm-lock.yaml | 31 +++++++++++---------------- 5 files changed, 16 insertions(+), 37 deletions(-) delete mode 100644 patches/prividium@0.6.0.patch diff --git a/package.json b/package.json index 5e75e729..a84eadfa 100644 --- a/package.json +++ b/package.json @@ -58,9 +58,5 @@ "prettier-plugin-solidity": "^1.4.1", "snarkjs": "^0.7.5" }, - "pnpm": { - "patchedDependencies": { - "prividium@0.6.0": "patches/prividium@0.6.0.patch" - } - } + "pnpm": {} } diff --git a/packages/auth-server-api/package.json b/packages/auth-server-api/package.json index 5dce765a..90ed5d1b 100644 --- a/packages/auth-server-api/package.json +++ b/packages/auth-server-api/package.json @@ -15,7 +15,7 @@ "dotenv": "^16.4.7", "express": "^4.21.2", "express-rate-limit": "^7.5.0", - "prividium": "^0.6.0", + "prividium": "^0.7.0", "viem": "2.30.0", "zksync-sso-4337": "workspace:*", "zod": "^3.24.1" diff --git a/packages/auth-server/package.json b/packages/auth-server/package.json index ee9603ae..8000d046 100644 --- a/packages/auth-server/package.json +++ b/packages/auth-server/package.json @@ -30,7 +30,7 @@ "nuxt-typed-router": "3.7.3", "pinia": "^2.1.7", "prettier": "^2.5.x || 3.x", - "prividium": "^0.6.0", + "prividium": "^0.7.0", "radix-vue": "^1.9.6", "sass": "^1.77.6", "snarkjs": "^0.7.5", diff --git a/patches/prividium@0.6.0.patch b/patches/prividium@0.6.0.patch deleted file mode 100644 index e166e50e..00000000 --- a/patches/prividium@0.6.0.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/package.json b/package.json -index d9e06431ede9c94d3512c90fd10dbd769144c5c7..8f735a90d37742bad4205f956bb90feb97c892c8 100644 ---- a/package.json -+++ b/package.json -@@ -1,6 +1,7 @@ - { - "name": "prividium", - "version": "0.6.0", -+ "type": "module", - "bin": { - "prividium": "bin/cli.js" - }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a93e18ae..68729ea3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,11 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -patchedDependencies: - prividium@0.6.0: - hash: 57a3xuxokuqz63tltzfoqdjada - path: patches/prividium@0.6.0.patch - importers: .: @@ -374,8 +369,8 @@ importers: specifier: ^2.5.x || 3.x version: 3.3.3 prividium: - specifier: ^0.6.0 - version: 0.6.0(patch_hash=57a3xuxokuqz63tltzfoqdjada)(@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.29(typescript@5.6.2)) @@ -450,8 +445,8 @@ importers: specifier: ^7.5.0 version: 7.5.1(express@4.21.2) prividium: - specifier: ^0.6.0 - version: 0.6.0(patch_hash=57a3xuxokuqz63tltzfoqdjada)(@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)) 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) @@ -11153,8 +11148,8 @@ packages: resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} engines: {node: '>=18'} - prividium@0.6.0: - resolution: {integrity: sha512-d41Y9P3UsxiR1/lUg7KfdTS7rLtqvXeK/un2POXW/2FixUxSRAc2ClSgSRiaKKQBC6LXtV91gwXAUUEpPJaJUQ==} + prividium@0.7.0: + resolution: {integrity: sha512-9oyFTkxmK8CCds4EDQ5KwiIin7BvsswXo/zYQG5/0Y5ek+T/6Djx1/G9E40CoFgHvCrSip3iZr2LS+VJqnvEZA==} hasBin: true peerDependencies: viem: '>=2.0.0' @@ -16484,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 @@ -18577,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 @@ -18738,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 @@ -18750,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 @@ -18762,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 @@ -18871,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': {} @@ -29409,7 +29404,7 @@ snapshots: dependencies: parse-ms: 4.0.0 - prividium@0.6.0(patch_hash=57a3xuxokuqz63tltzfoqdjada)(@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)