diff --git a/Dockerfile b/Dockerfile index eab3c4419..02b6f740a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ VOLUME /appdata # Enable homarr cli COPY --from=builder /app/packages/cli/cli.cjs /app/apps/cli/cli.cjs -RUN echo $'#!/bin/bash\ncd /app/apps/cli && node ./cli.cjs "$@"' > /usr/bin/homarr +RUN echo $'#!/bin/bash\nexport DISABLE_REDIS_LOGS=true\ncd /app/apps/cli && exec node ./cli.cjs "$@"' > /usr/bin/homarr RUN chmod +x /usr/bin/homarr # Don't run production as root diff --git a/packages/cli/package.json b/packages/cli/package.json index 6811f7a37..75623b138 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -15,7 +15,7 @@ } }, "scripts": { - "build": "esbuild src/index.ts --bundle --platform=node --outfile=cli.cjs --external:bcrypt --external:cpu-features --loader:.html=text --loader:.node=text", + "build": "esbuild src/index.ts --bundle --platform=node --outfile=cli.cjs --external:bcrypt --external:cpu-features --external:better-sqlite3 --external:mysql2 --external:pg --loader:.html=text --loader:.node=text", "clean": "rm -rf .turbo node_modules", "format": "prettier --check . --ignore-path ../../.gitignore", "lint": "eslint", @@ -25,12 +25,16 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@drizzle-team/brocli": "catalog:", "@homarr/auth": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0", + "@homarr/core": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "dotenv": "catalog:" + "better-sqlite3": "catalog:", + "dotenv": "catalog:", + "drizzle-orm": "catalog:", + "mysql2": "catalog:", + "pg": "catalog:" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/cli/src/cli-db.ts b/packages/cli/src/cli-db.ts new file mode 100644 index 000000000..229268efe --- /dev/null +++ b/packages/cli/src/cli-db.ts @@ -0,0 +1,127 @@ +import Database from "better-sqlite3"; +import { drizzle as drizzleSqlite } from "drizzle-orm/better-sqlite3"; +import { drizzle as drizzleMysql } from "drizzle-orm/mysql2"; +import { drizzle as drizzlePostgres } from "drizzle-orm/node-postgres"; +import mysql from "mysql2"; +import type { Pool as MysqlPool } from "mysql2"; +import { Pool as PostgresPool } from "pg"; + +import { DB_CASING } from "@homarr/core/infrastructure/db/constants"; +import { dbEnv } from "@homarr/core/infrastructure/db/env"; +import { schema } from "@homarr/db/schema"; + +const CONNECT_TIMEOUT_MS = 10_000; + +const dbConfig = { + schema, + casing: DB_CASING, +}; + +export type CliDatabase = ReturnType>; + +type CliConnection = + | { driver: "better-sqlite3"; raw: Database.Database; db: CliDatabase } + | { driver: "mysql2"; raw: MysqlPool; db: CliDatabase } + | { driver: "node-postgres"; raw: PostgresPool; db: CliDatabase }; + +let connection: CliConnection | null = null; + +const createMysqlPool = () => { + const poolOptions = { + maxIdle: 0, + idleTimeout: 60000, + enableKeepAlive: true, + connectTimeout: CONNECT_TIMEOUT_MS, + }; + + if (!dbEnv.HOST) { + return mysql.createPool({ ...poolOptions, uri: dbEnv.URL }); + } + + return mysql.createPool({ + ...poolOptions, + host: dbEnv.HOST, + port: dbEnv.PORT, + database: dbEnv.NAME, + user: dbEnv.USER, + password: dbEnv.PASSWORD, + }); +}; + +const createPostgresPool = () => { + const poolOptions = { + max: 1, + idleTimeoutMillis: 60000, + connectionTimeoutMillis: CONNECT_TIMEOUT_MS, + allowExitOnIdle: true, + }; + + if (!dbEnv.HOST) { + return new PostgresPool({ + ...poolOptions, + connectionString: dbEnv.URL, + }); + } + + return new PostgresPool({ + ...poolOptions, + host: dbEnv.HOST, + port: dbEnv.PORT, + database: dbEnv.NAME, + user: dbEnv.USER, + password: dbEnv.PASSWORD, + }); +}; + +const connectionFactories = { + "better-sqlite3": (): CliConnection => { + const raw = new Database(dbEnv.URL); + const db = drizzleSqlite(raw, dbConfig); + return { driver: "better-sqlite3", raw, db }; + }, + mysql2: (): CliConnection => { + const raw = createMysqlPool(); + const db = drizzleMysql(raw, { ...dbConfig, mode: "default" }) as unknown as CliDatabase; + return { driver: "mysql2", raw, db }; + }, + "node-postgres": (): CliConnection => { + const raw = createPostgresPool(); + const db = drizzlePostgres({ ...dbConfig, client: raw }) as unknown as CliDatabase; + return { driver: "node-postgres", raw, db }; + }, +}; + +const closeHandlers: Record Promise> = { + "better-sqlite3": async (entry) => { + (entry as Extract).raw.close(); + }, + mysql2: (entry) => { + const pool = (entry as Extract).raw; + return new Promise((resolve, reject) => { + pool.end((err) => (err ? reject(err) : resolve())); + }); + }, + "node-postgres": async (entry) => { + await (entry as Extract).raw.end(); + }, +}; + +export const getCliDb = (): CliDatabase => { + if (connection) { + return connection.db; + } + + const driver = dbEnv.DRIVER ?? "better-sqlite3"; + connection = connectionFactories[driver](); + return connection.db; +}; + +export const closeCliDbAsync = async (): Promise => { + if (!connection) { + return; + } + + const current = connection; + connection = null; + await closeHandlers[current.driver](current); +}; diff --git a/packages/cli/src/commands/fix-usernames.ts b/packages/cli/src/commands/fix-usernames.ts index 0f242c44d..5d5ef28d9 100644 --- a/packages/cli/src/commands/fix-usernames.ts +++ b/packages/cli/src/commands/fix-usernames.ts @@ -1,36 +1,35 @@ -import { command } from "@drizzle-team/brocli"; +import { eq } from "drizzle-orm"; -import { db, eq } from "@homarr/db"; +import { getCliDb } from "../cli-db"; +import { requireCredentialsProvider } from "../errors"; import { users } from "@homarr/db/schema"; -export const fixUsernames = command({ - name: "fix-usernames", - desc: "Changes all credentials usernames to lowercase", - // eslint-disable-next-line no-restricted-syntax - handler: async () => { - if (!process.env.AUTH_PROVIDERS?.toLowerCase().includes("credentials")) { - console.error("Credentials provider is not enabled"); - return; +export async function fixUsernamesHandler(): Promise { + requireCredentialsProvider(); + + const db = getCliDb(); + const credentialUsers = await db.query.users.findMany({ + where: eq(users.provider, "credentials"), + }); + + for (const user of credentialUsers) { + if (!user.name) { + continue; + } + if (user.name === user.name.toLowerCase()) { + continue; } - const credentialUsers = await db.query.users.findMany({ - where: eq(users.provider, "credentials"), - }); + await db + .update(users) + .set({ + name: user.name.toLowerCase(), + }) + .where(eq(users.id, user.id)); - for (const user of credentialUsers) { - if (!user.name) continue; - if (user.name === user.name.toLowerCase()) continue; + console.log(`Changed username from ${user.name} to ${user.name.toLowerCase()}`); + } - await db - .update(users) - .set({ - name: user.name.toLowerCase(), - }) - .where(eq(users.id, user.id)); - - console.log(`Changed username from ${user.name} to ${user.name.toLowerCase()}`); - } - - console.log("All usernames have been fixed"); - }, -}); + console.log("All usernames have been fixed"); + return 0; +} diff --git a/packages/cli/src/commands/integrations-delete.ts b/packages/cli/src/commands/integrations-delete.ts index 47ff12c22..227ce8bec 100644 --- a/packages/cli/src/commands/integrations-delete.ts +++ b/packages/cli/src/commands/integrations-delete.ts @@ -1,39 +1,50 @@ -import { command, string } from "@drizzle-team/brocli"; +import { parseArgs } from "node:util"; -import { db, eq } from "@homarr/db"; +import { eq } from "drizzle-orm"; + +import type { CliDatabase } from "../cli-db"; +import { getCliDb } from "../cli-db"; +import { CliError } from "../errors"; import { integrations } from "@homarr/db/schema"; -export const integrationsDelete = command({ - name: "delete", - desc: "Delete an integration by id or name", - options: { - id: string("id").alias("i").desc("ID of the integration"), - name: string("name").alias("n").desc("Name of the integration"), - }, - // eslint-disable-next-line no-restricted-syntax - handler: async (options) => { - if (!options.id && !options.name) { - console.error("Either --id or --name must be provided"); - return; - } +const integrationLookup: Record< + "id" | "name", + (db: CliDatabase, value: string) => Promise<{ id: string; name: string } | undefined> +> = { + id: (db, value) => + db.query.integrations.findFirst({ + where: eq(integrations.id, value), + }), + name: (db, value) => + db.query.integrations.findFirst({ + where: eq(integrations.name, value), + }), +}; - let entry; - if (options.id) { - entry = await db.query.integrations.findFirst({ - where: eq(integrations.id, options.id), - }); - } else if (options.name) { - entry = await db.query.integrations.findFirst({ - where: eq(integrations.name, options.name), - }); - } +export async function integrationsDeleteHandler(args: string[]): Promise { + const { values } = parseArgs({ + args, + options: { + id: { type: "string", short: "i" }, + name: { type: "string", short: "n" }, + }, + }); - if (!entry) { - console.error("Integration not found"); - return; - } + const lookupKey = values.id ? "id" : values.name ? "name" : null; + const lookupValue = values.id ?? values.name; - await db.delete(integrations).where(eq(integrations.id, entry.id)); - console.log(`Integration ${entry.name} (${entry.id}) deleted`); - }, -}); + if (!lookupKey || !lookupValue) { + throw new CliError("Either --id or --name must be provided", 2); + } + + const db = getCliDb(); + const entry = await integrationLookup[lookupKey](db, lookupValue); + + if (!entry) { + throw new CliError("Integration not found"); + } + + await db.delete(integrations).where(eq(integrations.id, entry.id)); + console.log(`Integration ${entry.name} (${entry.id}) deleted`); + return 0; +} diff --git a/packages/cli/src/commands/integrations-list.ts b/packages/cli/src/commands/integrations-list.ts index 3899ba5b9..b3308adea 100644 --- a/packages/cli/src/commands/integrations-list.ts +++ b/packages/cli/src/commands/integrations-list.ts @@ -1,21 +1,35 @@ -import { command } from "@drizzle-team/brocli"; +import { parseArgs } from "node:util"; -import { db } from "@homarr/db"; +import { getCliDb } from "../cli-db"; +import { printTable } from "../utils"; -export const integrationsList = command({ - name: "list", - desc: "List all integrations (id and name)", - // eslint-disable-next-line no-restricted-syntax - handler: async () => { - const all = await db.query.integrations.findMany(); - if (all.length === 0) { - console.log("No integrations found"); - return; - } +export async function integrationsListHandler(args: string[] = []): Promise { + const { values } = parseArgs({ + args, + options: { + json: { type: "boolean", default: false }, + }, + strict: false, + }); - console.log("ID\t\t\t\tName"); - for (const i of all) { - console.log(`${i.id}\t${i.name}`); - } - }, -}); + const db = getCliDb(); + const all = await db.query.integrations.findMany(); + + if (values.json) { + const output = all.map((i) => ({ id: i.id, name: i.name, kind: i.kind, url: i.url })); + console.log(JSON.stringify(output, null, 2)); + return 0; + } + + if (all.length === 0) { + console.log("No integrations found"); + return 0; + } + + printTable( + ["ID", "Name", "Kind", "URL"], + all.map((i) => [i.id, i.name, i.kind, i.url]), + ); + console.log(`\n${all.length} integration(s) total`); + return 0; +} diff --git a/packages/cli/src/commands/integrations.ts b/packages/cli/src/commands/integrations.ts deleted file mode 100644 index cef6cd910..000000000 --- a/packages/cli/src/commands/integrations.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { command } from "@drizzle-team/brocli"; - -import { integrationsDelete } from "./integrations-delete"; -import { integrationsList } from "./integrations-list"; - -export const integrationsRoot = command({ - name: "integrations", - desc: "Group of commands to manage integrations", - subcommands: [integrationsList, integrationsDelete], -}); diff --git a/packages/cli/src/commands/recreate-admin.ts b/packages/cli/src/commands/recreate-admin.ts index 5734d9c9d..8209b84a7 100644 --- a/packages/cli/src/commands/recreate-admin.ts +++ b/packages/cli/src/commands/recreate-admin.ts @@ -1,94 +1,98 @@ -import { command, string } from "@drizzle-team/brocli"; +import { parseArgs } from "node:util"; -import { hashPasswordAsync } from "@homarr/auth"; +import { hashPasswordAsync } from "@homarr/auth/security"; import { createId } from "@homarr/common"; -import { generateSecureRandomToken } from "@homarr/common/server"; -import { and, count, db, eq } from "@homarr/db"; -import { getMaxGroupPositionAsync } from "@homarr/db/queries"; +import { generateSecureRandomToken } from "../utils"; +import { and, count, eq, max } from "drizzle-orm"; + +import { getCliDb } from "../cli-db"; +import { CliError, requireCredentialsProvider } from "../errors"; import { groupMembers, groupPermissions, groups, users } from "@homarr/db/schema"; import { usernameSchema } from "@homarr/validation/user"; -export const recreateAdmin = command({ - name: "recreate-admin", - desc: "Recreate credentials admin user if none exists anymore", - options: { - username: string("username").required().alias("u").desc("Name of the admin"), - }, - // eslint-disable-next-line no-restricted-syntax - handler: async (options) => { - if (!process.env.AUTH_PROVIDERS?.toLowerCase().includes("credentials")) { - console.error("Credentials provider is not enabled"); - return; - } +export async function recreateAdminHandler(args: string[]): Promise { + requireCredentialsProvider(); - const result = await usernameSchema.safeParseAsync(options.username); + const { values } = parseArgs({ + args, + options: { + username: { type: "string", short: "u" }, + }, + }); - if (!result.success) { - console.error("Invalid username:"); - console.error(result.error.issues.map((error) => `- ${error.message}`).join("\n")); - return; - } + if (!values.username) { + throw new CliError("Missing required option: --username / -u", 2); + } - const totalCount = await db - .select({ - count: count(), - }) - .from(groupPermissions) - .leftJoin(groupMembers, eq(groupMembers.groupId, groupPermissions.groupId)) - .leftJoin(users, eq(users.id, groupMembers.userId)) - .where(and(eq(groupPermissions.permission, "admin"), eq(users.provider, "credentials"))) - .then((rows) => rows.at(0)?.count ?? 0); + const result = await usernameSchema.safeParseAsync(values.username); + if (!result.success) { + const messages = result.error.issues.map((issue) => `- ${issue.message}`).join("\n"); + throw new CliError(`Invalid username:\n${messages}`, 2); + } - if (totalCount > 0) { - console.error("Credentials admin user exists"); - return; - } + const db = getCliDb(); - const existingUser = await db.query.users.findFirst({ - where: eq(users.name, result.data), - }); + const totalCount = await db + .select({ + count: count(), + }) + .from(groupPermissions) + .leftJoin(groupMembers, eq(groupMembers.groupId, groupPermissions.groupId)) + .leftJoin(users, eq(users.id, groupMembers.userId)) + .where(and(eq(groupPermissions.permission, "admin"), eq(users.provider, "credentials"))) + .then((rows: { count: number }[]) => rows.at(0)?.count ?? 0); - if (existingUser) { - console.error("User with this name already exists"); - return; - } + if (totalCount > 0) { + throw new CliError("Credentials admin user exists"); + } - const temporaryGroupId = createId(); + const existingUser = await db.query.users.findFirst({ + where: eq(users.name, result.data), + }); - const maxPosition = await getMaxGroupPositionAsync(db); - await db.insert(groups).values({ - id: temporaryGroupId, - name: temporaryGroupId, - position: maxPosition + 1, - }); + if (existingUser) { + throw new CliError("User with this name already exists"); + } - await db.insert(groupPermissions).values({ - groupId: temporaryGroupId, - permission: "admin", - }); + const temporaryGroupId = createId(); + const maxPosition = await db + .select({ value: max(groups.position) }) + .from(groups) + .then((result: { value: number | null }[]) => result[0]?.value ?? 1); - const password = generateSecureRandomToken(24); - const hashedPassword = await hashPasswordAsync(password); + await db.insert(groups).values({ + id: temporaryGroupId, + name: temporaryGroupId, + position: maxPosition + 1, + }); - const userId = createId(); - await db.insert(users).values({ - id: userId, - name: result.data, - provider: "credentials", - password: hashedPassword, - }); + await db.insert(groupPermissions).values({ + groupId: temporaryGroupId, + permission: "admin", + }); - await db.insert(groupMembers).values({ - groupId: temporaryGroupId, - userId, - }); + const password = generateSecureRandomToken(24); + const hashedPassword = await hashPasswordAsync(password); + const userId = createId(); - console.log( - "We created a new admin user for you. Please keep in mind, that the admin group of it has a temporary name. You should change it to something more meaningful.", - ); - console.log(`\tUsername: ${result.data}`); - console.log(`\tPassword: ${password}`); - console.log(`\tGroup: ${temporaryGroupId}`); - console.log(""); // Empty line for better readability - }, -}); + await db.insert(users).values({ + id: userId, + name: result.data, + provider: "credentials", + password: hashedPassword, + }); + + await db.insert(groupMembers).values({ + groupId: temporaryGroupId, + userId, + }); + + console.log( + "We created a new admin user for you. Please keep in mind, that the admin group of it has a temporary name. You should change it to something more meaningful.", + ); + console.log(`\tUsername: ${result.data}`); + console.log(`\tPassword: ${password}`); + console.log(`\tGroup: ${temporaryGroupId}`); + console.log(""); + return 0; +} diff --git a/packages/cli/src/commands/reset-password.ts b/packages/cli/src/commands/reset-password.ts index 1c10734d7..b65dcfae9 100644 --- a/packages/cli/src/commands/reset-password.ts +++ b/packages/cli/src/commands/reset-password.ts @@ -1,46 +1,48 @@ -import { command, string } from "@drizzle-team/brocli"; +import { parseArgs } from "node:util"; -import { hashPasswordAsync } from "@homarr/auth"; -import { generateSecureRandomToken } from "@homarr/common/server"; -import { and, db, eq } from "@homarr/db"; +import { hashPasswordAsync } from "@homarr/auth/security"; +import { generateSecureRandomToken } from "../utils"; +import { and, eq } from "drizzle-orm"; + +import { getCliDb } from "../cli-db"; +import { CliError, requireCredentialsProvider } from "../errors"; import { sessions, users } from "@homarr/db/schema"; -export const resetPassword = command({ - name: "reset-password", - desc: "Reset password for a user", - options: { - username: string("username").required().alias("u").desc("Name of the user"), - }, - // eslint-disable-next-line no-restricted-syntax - handler: async (options) => { - if (!process.env.AUTH_PROVIDERS?.toLowerCase().includes("credentials")) { - console.error("Credentials provider is not enabled"); - return; - } +export async function resetPasswordHandler(args: string[]): Promise { + requireCredentialsProvider(); - const user = await db.query.users.findFirst({ - where: and(eq(users.name, options.username), eq(users.provider, "credentials")), - }); + const { values } = parseArgs({ + args, + options: { + username: { type: "string", short: "u" }, + }, + }); - if (!user?.password) { - console.error(`User ${options.username} not found`); - return; - } + if (!values.username) { + throw new CliError("Missing required option: --username / -u", 2); + } - // Generates a new password with 48 characters - const newPassword = generateSecureRandomToken(24); + const db = getCliDb(); + const user = await db.query.users.findFirst({ + where: and(eq(users.name, values.username), eq(users.provider, "credentials")), + }); - await db - .update(users) - .set({ - password: await hashPasswordAsync(newPassword), - }) - .where(eq(users.id, user.id)); + if (!user?.password) { + throw new CliError(`User ${values.username} not found`); + } - await db.delete(sessions).where(eq(sessions.userId, user.id)); - console.log(`All sessions for user ${options.username} have been deleted`); + const newPassword = generateSecureRandomToken(24); - console.log("You can now login with the new password"); - console.log(`New password for user ${options.username}: ${newPassword}`); - }, -}); + await db + .update(users) + .set({ + password: await hashPasswordAsync(newPassword), + }) + .where(eq(users.id, user.id)); + + await db.delete(sessions).where(eq(sessions.userId, user.id)); + console.log(`All sessions for user ${values.username} have been deleted`); + console.log("You can now login with the new password"); + console.log(`New password for user ${values.username}: ${newPassword}`); + return 0; +} diff --git a/packages/cli/src/commands/users-delete.ts b/packages/cli/src/commands/users-delete.ts index 8e0cc5799..5b453a2bf 100644 --- a/packages/cli/src/commands/users-delete.ts +++ b/packages/cli/src/commands/users-delete.ts @@ -1,39 +1,47 @@ -import { command, string } from "@drizzle-team/brocli"; +import { parseArgs } from "node:util"; -import { db, eq } from "@homarr/db"; +import { eq } from "drizzle-orm"; + +import type { CliDatabase } from "../cli-db"; +import { getCliDb } from "../cli-db"; +import { CliError } from "../errors"; import { users } from "@homarr/db/schema"; -export const usersDelete = command({ - name: "delete", - desc: "Delete a user by id or username", - options: { - id: string("id").alias("i").desc("ID of the user"), - username: string("username").alias("u").desc("Name of the user"), - }, - // eslint-disable-next-line no-restricted-syntax - handler: async (options) => { - if (!options.id && !options.username) { - console.error("Either --id or --username must be provided"); - return; - } +const userLookup: Record<"id" | "username", (db: CliDatabase, value: string) => Promise<{ id: string; name: string | null } | undefined>> = { + id: (db, value) => + db.query.users.findFirst({ + where: eq(users.id, value), + }), + username: (db, value) => + db.query.users.findFirst({ + where: eq(users.name, value), + }), +}; - let user; - if (options.id) { - user = await db.query.users.findFirst({ - where: eq(users.id, options.id), - }); - } else if (options.username) { - user = await db.query.users.findFirst({ - where: eq(users.name, options.username), - }); - } +export async function usersDeleteHandler(args: string[]): Promise { + const { values } = parseArgs({ + args, + options: { + id: { type: "string", short: "i" }, + username: { type: "string", short: "u" }, + }, + }); - if (!user) { - console.error("User not found"); - return; - } + const lookupKey = values.id ? "id" : values.username ? "username" : null; + const lookupValue = values.id ?? values.username; - await db.delete(users).where(eq(users.id, user.id)); - console.log(`User ${user.name ?? user.id} (${user.id}) deleted`); - }, -}); + if (!lookupKey || !lookupValue) { + throw new CliError("Either --id or --username must be provided", 2); + } + + const db = getCliDb(); + const user = await userLookup[lookupKey](db, lookupValue); + + if (!user) { + throw new CliError("User not found"); + } + + await db.delete(users).where(eq(users.id, user.id)); + console.log(`User ${user.name ?? user.id} (${user.id}) deleted`); + return 0; +} diff --git a/packages/cli/src/commands/users-list.ts b/packages/cli/src/commands/users-list.ts index 74ac50c2b..614716fce 100644 --- a/packages/cli/src/commands/users-list.ts +++ b/packages/cli/src/commands/users-list.ts @@ -1,22 +1,35 @@ -import { command } from "@drizzle-team/brocli"; +import { parseArgs } from "node:util"; -import { db } from "@homarr/db"; +import { getCliDb } from "../cli-db"; +import { printTable } from "../utils"; -export const usersList = command({ - name: "list", - desc: "List all users (id, username, email)", - // eslint-disable-next-line no-restricted-syntax - handler: async () => { - const allUsers = await db.query.users.findMany(); +export async function usersListHandler(args: string[] = []): Promise { + const { values } = parseArgs({ + args, + options: { + json: { type: "boolean", default: false }, + }, + strict: false, + }); - if (allUsers.length === 0) { - console.log("No users found"); - return; - } + const db = getCliDb(); + const allUsers = await db.query.users.findMany(); - console.log("ID\t\t\t\tUsername\tEmail"); - for (const user of allUsers) { - console.log(`${user.id}\t${user.name ?? ""}\t${user.email ?? ""}`); - } - }, -}); + if (values.json) { + const output = allUsers.map((u) => ({ id: u.id, name: u.name, email: u.email, provider: u.provider })); + console.log(JSON.stringify(output, null, 2)); + return 0; + } + + if (allUsers.length === 0) { + console.log("No users found"); + return 0; + } + + printTable( + ["ID", "Username", "Email", "Provider"], + allUsers.map((u) => [u.id, u.name ?? "", u.email ?? "", u.provider]), + ); + console.log(`\n${allUsers.length} user(s) total`); + return 0; +} diff --git a/packages/cli/src/commands/users-update-password.ts b/packages/cli/src/commands/users-update-password.ts index 2db3342b1..ad6cbf9c1 100644 --- a/packages/cli/src/commands/users-update-password.ts +++ b/packages/cli/src/commands/users-update-password.ts @@ -1,50 +1,66 @@ -import { command, string } from "@drizzle-team/brocli"; +import { parseArgs } from "node:util"; -import { hashPasswordAsync } from "@homarr/auth"; -import { db, eq } from "@homarr/db"; +import { hashPasswordAsync } from "@homarr/auth/security"; +import { eq } from "drizzle-orm"; + +import type { CliDatabase } from "../cli-db"; +import { getCliDb } from "../cli-db"; +import { CliError, requireCredentialsProvider } from "../errors"; import { sessions, users } from "@homarr/db/schema"; -export const usersUpdatePassword = command({ - name: "update-password", - desc: "Update the password for a user (credentials provider only)", - options: { - id: string("id").alias("i").desc("ID of the user"), - username: string("username").alias("u").desc("Name of the user"), - password: string("password").alias("p").required().desc("New password"), - }, - // eslint-disable-next-line no-restricted-syntax - handler: async (options) => { - if (!process.env.AUTH_PROVIDERS?.toLowerCase().includes("credentials")) { - console.error("Credentials provider is not enabled"); - return; - } +const userLookup: Record< + "id" | "username", + (db: CliDatabase, value: string) => Promise<{ id: string; name: string | null; password: string | null } | undefined> +> = { + id: (db, value) => + db.query.users.findFirst({ + where: eq(users.id, value), + }), + username: (db, value) => + db.query.users.findFirst({ + where: eq(users.name, value), + }), +}; - if (!options.id && !options.username) { - console.error("Either --id or --username must be provided"); - return; - } +export async function usersUpdatePasswordHandler(args: string[]): Promise { + requireCredentialsProvider(); - const user = await db.query.users.findFirst({ - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - where: options.id ? eq(users.id, options.id) : eq(users.name, options.username!), - }); + const { values } = parseArgs({ + args, + options: { + id: { type: "string", short: "i" }, + username: { type: "string", short: "u" }, + password: { type: "string", short: "p" }, + }, + }); - if (!user?.password) { - console.error("User not found or has no credentials record"); - return; - } + const lookupKey = values.id ? "id" : values.username ? "username" : null; + const lookupValue = values.id ?? values.username; - await db - .update(users) - .set({ - password: await hashPasswordAsync(options.password), - }) - .where(eq(users.id, user.id)); + if (!lookupKey || !lookupValue) { + throw new CliError("Either --id or --username must be provided", 2); + } - // invalidate existing sessions - await db.delete(sessions).where(eq(sessions.userId, user.id)); - console.log(`All sessions for user ${user.name ?? user.id} have been deleted`); + if (!values.password) { + throw new CliError("Missing required option: --password / -p", 2); + } - console.log("Password updated successfully"); - }, -}); + const db = getCliDb(); + const user = await userLookup[lookupKey](db, lookupValue); + + if (!user?.password) { + throw new CliError("User not found or has no credentials record"); + } + + await db + .update(users) + .set({ + password: await hashPasswordAsync(values.password), + }) + .where(eq(users.id, user.id)); + + await db.delete(sessions).where(eq(sessions.userId, user.id)); + console.log(`All sessions for user ${user.name ?? user.id} have been deleted`); + console.log("Password updated successfully"); + return 0; +} diff --git a/packages/cli/src/commands/users.ts b/packages/cli/src/commands/users.ts deleted file mode 100644 index 26655931f..000000000 --- a/packages/cli/src/commands/users.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { command } from "@drizzle-team/brocli"; - -import { usersDelete } from "./users-delete"; -import { usersList } from "./users-list"; -import { usersUpdatePassword } from "./users-update-password"; - -export const usersRoot = command({ - name: "users", - desc: "Group of commands to manage users", - subcommands: [usersList, usersDelete, usersUpdatePassword], -}); diff --git a/packages/cli/src/errors.ts b/packages/cli/src/errors.ts new file mode 100644 index 000000000..f54852b3c --- /dev/null +++ b/packages/cli/src/errors.ts @@ -0,0 +1,16 @@ +export class CliError extends Error { + constructor( + message: string, + readonly exitCode: 1 | 2 = 1, + ) { + super(message); + this.name = "CliError"; + } +} + +export const requireCredentialsProvider = () => { + const enabled = process.env.AUTH_PROVIDERS?.toLowerCase().includes("credentials") ?? false; + if (!enabled) { + throw new CliError("Credentials provider is not enabled"); + } +}; diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index f1b0c658d..136d95764 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -1,14 +1,41 @@ -import { run } from "@drizzle-team/brocli"; +import { closeCliDbAsync } from "./cli-db"; +import { CliError } from "./errors"; +import { runCliAsync } from "./router"; -import { fixUsernames } from "./commands/fix-usernames"; -import { integrationsRoot } from "./commands/integrations"; -import { recreateAdmin } from "./commands/recreate-admin"; -import { resetPassword } from "./commands/reset-password"; -import { usersRoot } from "./commands/users"; +const mainAsync = async (): Promise => { + const argv = process.argv.slice(2); + const start = performance.now(); -const commands = [usersRoot, integrationsRoot, resetPassword, fixUsernames, recreateAdmin]; + try { + const code = await runCliAsync(argv); + if (code === 0) { + const elapsed = Math.round(performance.now() - start); + console.error(`\nDone in ${elapsed}ms`); + } + return code; + } catch (error) { + if (error instanceof CliError) { + console.error(error.message); + return error.exitCode; + } -void run(commands, { - name: "homarr-cli", - version: "1.0.0", -}); + if (error instanceof TypeError && error.message.startsWith("Unknown option")) { + console.error(error.message); + return 2; + } + + console.error(error instanceof Error ? error.message : error); + return 1; + } +}; + +mainAsync() + .then(async (code) => { + await closeCliDbAsync(); + process.exit(code); + }) + .catch(async (error) => { + console.error(error instanceof Error ? error.message : error); + await closeCliDbAsync(); + process.exit(1); + }); diff --git a/packages/cli/src/router.ts b/packages/cli/src/router.ts new file mode 100644 index 000000000..900228fef --- /dev/null +++ b/packages/cli/src/router.ts @@ -0,0 +1,167 @@ +import { fixUsernamesHandler } from "./commands/fix-usernames"; +import { integrationsDeleteHandler } from "./commands/integrations-delete"; +import { integrationsListHandler } from "./commands/integrations-list"; +import { recreateAdminHandler } from "./commands/recreate-admin"; +import { resetPasswordHandler } from "./commands/reset-password"; +import { usersDeleteHandler } from "./commands/users-delete"; +import { usersListHandler } from "./commands/users-list"; +import { usersUpdatePasswordHandler } from "./commands/users-update-password"; +import { CliError } from "./errors"; + +const VERSION = "1.0.0"; + +type CommandHandler = (args: string[]) => Promise; + +interface CommandDef { + handler: CommandHandler; + desc: string; + usage: string; +} + +type CommandGroup = Record; + +const topLevelCommands: Record = { + "reset-password": { + handler: resetPasswordHandler, + desc: "Reset password for a credentials user", + usage: "homarr reset-password -u ", + }, + "fix-usernames": { + handler: (args) => fixUsernamesHandler(), + desc: "Lowercase all credentials usernames", + usage: "homarr fix-usernames", + }, + "recreate-admin": { + handler: recreateAdminHandler, + desc: "Create credentials admin if none exists", + usage: "homarr recreate-admin -u ", + }, +}; + +const commandGroups: Record = { + users: { + list: { + handler: (args) => usersListHandler(args), + desc: "List all users", + usage: "homarr users list [--json]", + }, + delete: { + handler: usersDeleteHandler, + desc: "Delete a user by id or username", + usage: "homarr users delete --id | --username ", + }, + "update-password": { + handler: usersUpdatePasswordHandler, + desc: "Set password for a credentials user", + usage: "homarr users update-password (--id | --username ) --password ", + }, + }, + integrations: { + list: { + handler: (args) => integrationsListHandler(args), + desc: "List all integrations", + usage: "homarr integrations list [--json]", + }, + delete: { + handler: integrationsDeleteHandler, + desc: "Delete an integration by id or name", + usage: "homarr integrations delete --id | --name ", + }, + }, +}; + +const HELP_TEXT = `homarr-cli ${VERSION} + +Usage: + homarr [options] + +Commands: + reset-password Reset password for a credentials user + recreate-admin Create credentials admin if none exists + fix-usernames Lowercase all credentials usernames + users list List all users + users delete Delete a user by id or username + users update-password Set password for a credentials user + integrations list List all integrations + integrations delete Delete an integration by id or name + +Global Options: + -h, --help Show help (use after a command for command-specific help) + -v, --version Show CLI version +`; + +const printHelp = () => { + console.log(HELP_TEXT); +}; + +const printCommandHelp = (def: CommandDef) => { + console.log(`${def.desc}\n`); + console.log(`Usage:\n ${def.usage}\n`); +}; + +const resolveHandler = (argv: string[]): { handler: CommandHandler; args: string[] } => { + const [command, subcommand, ...rest] = argv; + + if (!command) { + throw new CliError("Missing command", 2); + } + + const group = commandGroups[command]; + if (group) { + if (!subcommand || subcommand === "--help" || subcommand === "-h") { + const subcommands = Object.entries(group) + .map(([name, def]) => ` ${name.padEnd(18)} ${def.desc}`) + .join("\n"); + console.log(`Usage:\n homarr ${command} [options]\n\nSubcommands:\n${subcommands}\n`); + return { handler: async () => subcommand ? 0 : 2, args: [] }; + } + + const def = group[subcommand]; + if (!def) { + throw new CliError(`Unknown subcommand "${subcommand}" for "${command}"`, 2); + } + + if (hasFlag(rest, "--help", "-h")) { + printCommandHelp(def); + return { handler: async () => 0, args: [] }; + } + + return { handler: def.handler, args: rest }; + } + + const def = topLevelCommands[command]; + if (!def) { + throw new CliError(`Unknown command "${command}"`, 2); + } + + const args = argv.slice(1); + if (hasFlag(args, "--help", "-h")) { + printCommandHelp(def); + return { handler: async () => 0, args: [] }; + } + + return { handler: def.handler, args }; +}; + +const hasFlag = (argv: string[], flag: string, short: string) => + argv.some((arg) => arg === flag || arg === short); + +export const runCliAsync = async (argv: string[]): Promise => { + if (hasFlag(argv, "--help", "-h") && argv.length === 1) { + printHelp(); + return 0; + } + + if (hasFlag(argv, "--version", "-v")) { + console.log(VERSION); + return 0; + } + + if (argv.length === 0) { + printHelp(); + return 2; + } + + const { handler, args } = resolveHandler(argv); + return handler(args); +}; diff --git a/packages/cli/src/utils.ts b/packages/cli/src/utils.ts new file mode 100644 index 000000000..0d885c488 --- /dev/null +++ b/packages/cli/src/utils.ts @@ -0,0 +1,18 @@ +import { randomBytes } from "node:crypto"; + +export const generateSecureRandomToken = (size: number) => randomBytes(size).toString("hex"); + +export const printTable = (headers: string[], rows: string[][]) => { + const widths = headers.map((h, i) => + Math.max(h.length, ...rows.map((r) => (r[i] ?? "").length)), + ); + + const formatRow = (cells: string[]) => + cells.map((cell, i) => cell.padEnd(widths[i]!)).join(" "); + + console.log(formatRow(headers)); + console.log(widths.map((w) => "─".repeat(w)).join(" ")); + for (const row of rows) { + console.log(formatRow(row)); + } +}; diff --git a/packages/core/package.json b/packages/core/package.json index 19e7f473b..86ee3f161 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -14,6 +14,7 @@ "./infrastructure/db": "./src/infrastructure/db/index.ts", "./infrastructure/db/env": "./src/infrastructure/db/env.ts", "./infrastructure/db/constants": "./src/infrastructure/db/constants.ts", + "./infrastructure/db/mapping": "./src/infrastructure/db/mapping.ts", "./infrastructure/certificates": "./src/infrastructure/certificates/index.ts", "./infrastructure/certificates/hostnames/db/sqlite": "./src/infrastructure/certificates/hostnames/db/sqlite.ts", "./infrastructure/certificates/hostnames/db/mysql": "./src/infrastructure/certificates/hostnames/db/mysql.ts", diff --git a/packages/db/schema/index.ts b/packages/db/schema/index.ts index 9929ccb86..7e457d97c 100644 --- a/packages/db/schema/index.ts +++ b/packages/db/schema/index.ts @@ -1,6 +1,6 @@ import type { InferSelectModel } from "drizzle-orm"; -import { createSchema } from "@homarr/core/infrastructure/db"; +import { createDbMapping as createSchema } from "@homarr/core/infrastructure/db/mapping"; import * as mysqlSchema from "./mysql"; import * as pgSchema from "./postgresql"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 20ad25153..793045e19 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,9 +33,6 @@ catalogs: '@dnd-kit/utilities': specifier: ^3.2.2 version: 3.2.2 - '@drizzle-team/brocli': - specifier: ^0.12.0 - version: 0.12.0 '@eslint/js': specifier: 10.0.1 version: 10.0.1 @@ -119,28 +116,28 @@ catalogs: version: 10.0.1 '@semantic-release/github': specifier: ^12.0.6 - version: 12.0.6 + version: 12.0.8 '@semantic-release/npm': specifier: ^13.1.5 version: 13.1.5 '@semantic-release/release-notes-generator': specifier: ^14.1.0 - version: 14.1.0 + version: 14.1.1 '@t3-oss/env-nextjs': specifier: ^0.13.11 version: 0.13.11 '@tabler/icons-react': specifier: ^3.41.1 - version: 3.41.1 + version: 3.44.0 '@tanstack/react-query': specifier: ^5.100.9 - version: 5.100.9 + version: 5.100.10 '@tanstack/react-query-devtools': specifier: ^5.100.9 - version: 5.100.9 + version: 5.100.10 '@tanstack/react-query-next-experimental': specifier: ^5.100.9 - version: 5.100.9 + version: 5.100.10 '@testcontainers/mysql': specifier: ^11.14.0 version: 11.14.0 @@ -161,10 +158,10 @@ catalogs: version: 3.22.5 '@tiptap/extension-link': specifier: ^3.22.5 - version: 3.22.5 + version: 3.23.4 '@tiptap/extension-placeholder': specifier: ^3.22.5 - version: 3.22.5 + version: 3.23.4 '@tiptap/extension-table': specifier: 3.22.5 version: 3.22.5 @@ -194,10 +191,10 @@ catalogs: version: 3.22.5 '@tiptap/react': specifier: ^3.22.5 - version: 3.22.5 + version: 3.23.4 '@tiptap/starter-kit': specifier: ^3.22.5 - version: 3.22.5 + version: 3.23.4 '@trpc/client': specifier: ^11.17.0 version: 11.17.0 @@ -215,7 +212,7 @@ catalogs: version: 11.17.0 '@turbo/gen': specifier: ^2.9.8 - version: 2.9.8 + version: 2.9.14 '@types/adm-zip': specifier: 0.5.8 version: 0.5.8 @@ -242,7 +239,7 @@ catalogs: version: 4.0.1 '@types/node': specifier: ^24.12.2 - version: 24.12.2 + version: 24.12.4 '@types/node-unifi': specifier: ^2.5.1 version: 2.5.1 @@ -278,10 +275,10 @@ catalogs: version: 5.2.0 '@vitest/coverage-v8': specifier: ^4.1.5 - version: 4.1.5 + version: 4.1.6 '@vitest/ui': specifier: ^4.1.5 - version: 4.1.5 + version: 4.1.6 '@xterm/addon-canvas': specifier: ^0.7.0 version: 0.7.0 @@ -302,7 +299,7 @@ catalogs: version: 6.0.0 better-sqlite3: specifier: ^12.9.0 - version: 12.9.0 + version: 12.10.0 chroma-js: specifier: ^3.2.0 version: 3.2.0 @@ -362,13 +359,13 @@ catalogs: version: 0.28.0 eslint: specifier: ^10.3.0 - version: 10.3.0 + version: 10.4.0 eslint-config-prettier: specifier: ^10.1.8 version: 10.1.8 eslint-config-turbo: specifier: ^2.9.8 - version: 2.9.8 + version: 2.9.14 eslint-plugin-import: specifier: ^2.32.0 version: 2.32.0 @@ -383,7 +380,7 @@ catalogs: version: 6.1.1 fast-xml-parser: specifier: ^5.7.2 - version: 5.7.2 + version: 5.8.0 fastify: specifier: ^5.8.5 version: 5.8.5 @@ -401,10 +398,10 @@ catalogs: version: 5.10.1 isomorphic-dompurify: specifier: ^3.12.0 - version: 3.12.0 + version: 3.13.0 jotai: specifier: ^2.19.1 - version: 2.19.1 + version: 2.20.0 jsdom: specifier: ^29.1.1 version: 29.1.1 @@ -500,7 +497,7 @@ catalogs: version: 5.3.1 swagger-ui-react: specifier: ^5.32.5 - version: 5.32.5 + version: 5.32.6 testcontainers: specifier: ^11.14.0 version: 11.14.0 @@ -512,19 +509,19 @@ catalogs: version: 3.2.0 tsdav: specifier: ^2.2.0 - version: 2.2.0 + version: 2.2.2 tsx: specifier: 4.20.4 version: 4.20.4 turbo: specifier: ^2.9.8 - version: 2.9.8 + version: 2.9.14 typescript: specifier: ^5.9.3 version: 5.9.3 typescript-eslint: specifier: ^8.58.2 - version: 8.58.2 + version: 8.59.3 undici: specifier: 7.24.6 version: 7.24.6 @@ -539,13 +536,13 @@ catalogs: version: 6.1.1 vitest: specifier: ^4.1.5 - version: 4.1.5 + version: 4.1.6 winston: specifier: 3.19.0 version: 3.19.0 ws: specifier: ^8.20.0 - version: 8.20.0 + version: 8.20.1 xml2js: specifier: ^0.6.2 version: 0.6.2 @@ -609,28 +606,28 @@ importers: version: 10.0.1(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/github': specifier: 'catalog:' - version: 12.0.6(semantic-release@25.0.3(typescript@5.9.3)) + version: 12.0.8(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/npm': specifier: 'catalog:' version: 13.1.5(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/release-notes-generator': specifier: 'catalog:' - version: 14.1.0(semantic-release@25.0.3(typescript@5.9.3)) + version: 14.1.1(semantic-release@25.0.3(typescript@5.9.3)) '@testcontainers/redis': specifier: 'catalog:' version: 11.14.0 '@turbo/gen': specifier: 'catalog:' - version: 2.9.8(@types/node@24.12.2) + version: 2.9.14(@types/node@24.12.4) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.2.0(vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.2.0(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.5(vitest@4.1.5) + version: 4.1.6(vitest@4.1.6) '@vitest/ui': specifier: 'catalog:' - version: 4.1.5(vitest@4.1.5) + version: 4.1.6(vitest@4.1.6) conventional-changelog-conventionalcommits: specifier: 'catalog:' version: 9.3.1 @@ -654,16 +651,16 @@ importers: version: 11.14.0 turbo: specifier: 'catalog:' - version: 2.9.8 + version: 2.9.14 typescript: specifier: 'catalog:' version: 5.9.3 vite-tsconfig-paths: specifier: 'catalog:' - version: 6.1.1(typescript@5.9.3)(vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4)) + version: 6.1.1(typescript@5.9.3)(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.5(@types/node@24.12.2)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(@vitest/ui@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/nextjs: dependencies: @@ -783,31 +780,31 @@ importers: version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@mantine/tiptap': specifier: 'catalog:' - version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tiptap/extension-link@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))(@tiptap/react@3.22.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tiptap/extension-link@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))(@tiptap/react@3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@million/lint': specifier: 'catalog:' - version: 1.0.14(webpack-sources@3.3.4) + version: 1.0.14 '@tabler/icons-react': specifier: 'catalog:' - version: 3.41.1(react@19.2.5) + version: 3.44.0(react@19.2.5) '@tanstack/react-query': specifier: 'catalog:' - version: 5.100.9(react@19.2.5) + version: 5.100.10(react@19.2.5) '@tanstack/react-query-devtools': specifier: 'catalog:' - version: 5.100.9(@tanstack/react-query@5.100.9(react@19.2.5))(react@19.2.5) + version: 5.100.10(@tanstack/react-query@5.100.10(react@19.2.5))(react@19.2.5) '@tanstack/react-query-next-experimental': specifier: 'catalog:' - version: 5.100.9(@tanstack/react-query@5.100.9(react@19.2.5))(next@16.2.4(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5) + version: 5.100.10(@tanstack/react-query@5.100.10(react@19.2.5))(next@16.2.4(@babel/core@7.26.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5) '@trpc/client': specifier: 'catalog:' version: 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/next': specifier: 'catalog:' - version: 11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(next@16.2.4(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + version: 11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(next@16.2.4(@babel/core@7.26.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) '@trpc/react-query': specifier: 'catalog:' - version: 11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3) + version: 11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3) '@trpc/server': specifier: 'catalog:' version: 11.17.0(typescript@5.9.3) @@ -843,16 +840,16 @@ importers: version: 13.0.6 isomorphic-dompurify: specifier: 'catalog:' - version: 3.12.0(@noble/hashes@2.0.1) + version: 3.13.0(@noble/hashes@2.0.1) jotai: specifier: 'catalog:' - version: 2.19.1(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.5) + version: 2.20.0(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.5) mantine-react-table: specifier: 'catalog:' - version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tabler/icons-react@3.41.1(react@19.2.5))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tabler/icons-react@3.44.0(react@19.2.5))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.26.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) postcss-preset-mantine: specifier: 'catalog:' version: 1.18.0(postcss@8.5.8) @@ -879,7 +876,7 @@ importers: version: 2.2.6 swagger-ui-react: specifier: 'catalog:' - version: 5.32.5(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 5.32.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) use-deep-compare-effect: specifier: 'catalog:' version: 1.8.1(react@19.2.5) @@ -904,7 +901,7 @@ importers: version: 3.1.2 '@types/node': specifier: 'catalog:' - version: 24.12.2 + version: 24.12.4 '@types/prismjs': specifier: 'catalog:' version: 1.26.6 @@ -922,7 +919,7 @@ importers: version: 9.2.1 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 node-loader: specifier: 'catalog:' version: 2.1.0(webpack@5.94.0) @@ -1016,7 +1013,7 @@ importers: version: link:../../tooling/typescript '@types/node': specifier: 'catalog:' - version: 24.12.2 + version: 24.12.4 dotenv-cli: specifier: 'catalog:' version: 11.0.0 @@ -1025,7 +1022,7 @@ importers: version: 0.28.0 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 prettier: specifier: 'catalog:' version: 3.8.3 @@ -1070,7 +1067,7 @@ importers: version: 4.20.4 ws: specifier: 'catalog:' - version: 8.20.0 + version: 8.20.1 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1089,7 +1086,7 @@ importers: version: 0.28.0 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 prettier: specifier: 'catalog:' version: 3.8.3 @@ -1135,7 +1132,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1204,25 +1201,25 @@ importers: version: 1.4.0 '@tanstack/react-query': specifier: 'catalog:' - version: 5.100.9(react@19.2.5) + version: 5.100.10(react@19.2.5) '@trpc/client': specifier: 'catalog:' version: 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/react-query': specifier: 'catalog:' - version: 11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3) + version: 11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3) '@trpc/server': specifier: 'catalog:' version: 11.17.0(typescript@5.9.3) '@trpc/tanstack-react-query': specifier: 'catalog:' - version: 11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3) + version: 11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3) lodash.clonedeep: specifier: 'catalog:' version: 4.5.0 next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) react: specifier: 'catalog:' version: 19.2.5 @@ -1250,7 +1247,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 prettier: specifier: 'catalog:' version: 3.8.3 @@ -1292,10 +1289,10 @@ importers: version: 8.1.7 next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) next-auth: specifier: 'catalog:' - version: 5.0.0-beta.31(next@16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5) + version: 5.0.0-beta.31(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5) react: specifier: 'catalog:' version: 19.2.5 @@ -1323,7 +1320,7 @@ importers: version: 0.9.2 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 prettier: specifier: 'catalog:' version: 3.8.3 @@ -1354,31 +1351,43 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 packages/cli: dependencies: - '@drizzle-team/brocli': - specifier: 'catalog:' - version: 0.12.0 '@homarr/auth': specifier: workspace:^0.1.0 version: link:../auth '@homarr/common': specifier: workspace:^0.1.0 version: link:../common + '@homarr/core': + specifier: workspace:^0.1.0 + version: link:../core '@homarr/db': specifier: workspace:^0.1.0 version: link:../db '@homarr/validation': specifier: workspace:^0.1.0 version: link:../validation + better-sqlite3: + specifier: 'catalog:' + version: 12.10.0 dotenv: specifier: 'catalog:' version: 17.4.2 + drizzle-orm: + specifier: 'catalog:' + version: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0) + mysql2: + specifier: 'catalog:' + version: 3.22.3(@types/node@24.12.4) + pg: + specifier: 'catalog:' + version: 8.20.0 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1394,7 +1403,7 @@ importers: version: 0.28.0 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1415,7 +1424,7 @@ importers: version: 1.11.20 next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) octokit: specifier: 'catalog:' version: 5.0.5 @@ -1446,7 +1455,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1458,19 +1467,19 @@ importers: version: 0.13.11(arktype@2.1.20)(typescript@5.9.3)(zod@4.4.3) better-sqlite3: specifier: 'catalog:' - version: 12.9.0 + version: 12.10.0 dns-caching: specifier: 'catalog:' version: 0.2.9 drizzle-orm: specifier: 'catalog:' - version: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.9.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.2))(pg@8.20.0) + version: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0) ioredis: specifier: 'catalog:' version: 5.10.1 mysql2: specifier: 'catalog:' - version: 3.22.3(@types/node@24.12.2) + version: 3.22.3(@types/node@24.12.4) pg: specifier: 'catalog:' version: 8.20.0 @@ -1501,7 +1510,7 @@ importers: version: 8.20.0 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1519,7 +1528,7 @@ importers: version: link:../cron-jobs '@tanstack/react-query': specifier: 'catalog:' - version: 5.100.9(react@19.2.5) + version: 5.100.10(react@19.2.5) '@trpc/client': specifier: 'catalog:' version: 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) @@ -1528,7 +1537,7 @@ importers: version: 11.17.0(typescript@5.9.3) '@trpc/tanstack-react-query': specifier: 'catalog:' - version: 11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3) + version: 11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3) react: specifier: 'catalog:' version: 19.2.5 @@ -1550,7 +1559,7 @@ importers: version: 19.2.14 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1572,7 +1581,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1642,7 +1651,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1673,7 +1682,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1697,7 +1706,7 @@ importers: version: link:../server-settings '@mantine/core': specifier: 'catalog:' - version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@paralleldrive/cuid2': specifier: 'catalog:' version: 3.3.0 @@ -1709,7 +1718,7 @@ importers: version: 11.14.0 better-sqlite3: specifier: 'catalog:' - version: 12.9.0 + version: 12.10.0 dotenv: specifier: 'catalog:' version: 17.4.2 @@ -1718,13 +1727,13 @@ importers: version: 0.31.10 drizzle-orm: specifier: 'catalog:' - version: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.9.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.2))(pg@8.20.0) + version: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0) drizzle-zod: specifier: 'catalog:' - version: 0.8.3(drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.9.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.2))(pg@8.20.0))(zod@4.4.3) + version: 0.8.3(drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0))(zod@4.4.3) mysql2: specifier: 'catalog:' - version: 3.22.3(@types/node@24.12.2) + version: 3.22.3(@types/node@24.12.4) pg: specifier: 'catalog:' version: 8.20.0 @@ -1755,7 +1764,7 @@ importers: version: 0.28.0 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 prettier: specifier: 'catalog:' version: 3.8.3 @@ -1773,7 +1782,7 @@ importers: version: link:../common fast-xml-parser: specifier: 'catalog:' - version: 5.7.2 + version: 5.8.0 zod: specifier: 'catalog:' version: 4.4.3 @@ -1789,7 +1798,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 tsx: specifier: 'catalog:' version: 4.20.4 @@ -1823,7 +1832,7 @@ importers: version: 4.0.1 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1841,10 +1850,10 @@ importers: version: link:../validation '@mantine/form': specifier: 'catalog:' - version: 8.3.18(react@19.2.5) + version: 8.3.18(react@19.2.6) mantine-form-zod-resolver: specifier: 'catalog:' - version: 1.3.0(@mantine/form@8.3.18(react@19.2.5))(zod@4.4.3) + version: 1.3.0(@mantine/form@8.3.18(react@19.2.6))(zod@4.4.3) zod: specifier: 'catalog:' version: 4.4.3 @@ -1860,7 +1869,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1893,7 +1902,7 @@ importers: version: link:../validation '@mantine/core': specifier: 'catalog:' - version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.5))(react@19.2.5) react: specifier: 'catalog:' version: 19.2.5 @@ -1912,7 +1921,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1940,7 +1949,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1974,7 +1983,7 @@ importers: version: 6.0.0 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2046,7 +2055,7 @@ importers: version: 2.2.0 tsdav: specifier: 'catalog:' - version: 2.2.0 + version: 2.2.2 undici: specifier: 'catalog:' version: 7.24.6 @@ -2074,7 +2083,7 @@ importers: version: 0.4.14 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2089,7 +2098,7 @@ importers: version: link:../ui '@mantine/core': specifier: 'catalog:' - version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.5))(react@19.2.5) '@mantine/hooks': specifier: 'catalog:' version: 8.3.18(react@19.2.5) @@ -2108,7 +2117,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2153,13 +2162,13 @@ importers: version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@tabler/icons-react': specifier: 'catalog:' - version: 3.41.1(react@19.2.5) + version: 3.44.0(react@19.2.5) dayjs: specifier: 'catalog:' version: 1.11.20 next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) react: specifier: 'catalog:' version: 19.2.5 @@ -2181,7 +2190,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2193,10 +2202,10 @@ importers: version: link:../ui '@mantine/notifications': specifier: 'catalog:' - version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tabler/icons-react': specifier: 'catalog:' - version: 3.41.1(react@19.2.5) + version: 3.44.0(react@19.2.6) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2209,7 +2218,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2260,7 +2269,7 @@ importers: version: 0.5.17 next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) react: specifier: 'catalog:' version: 19.2.5 @@ -2291,7 +2300,7 @@ importers: version: 0.5.8 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2316,7 +2325,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2341,7 +2350,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2378,7 +2387,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2436,7 +2445,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2461,7 +2470,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2479,7 +2488,7 @@ importers: version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) react: specifier: 'catalog:' version: 19.2.5 @@ -2498,7 +2507,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2546,13 +2555,13 @@ importers: version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@tabler/icons-react': specifier: 'catalog:' - version: 3.41.1(react@19.2.5) + version: 3.44.0(react@19.2.5) jotai: specifier: 'catalog:' - version: 2.19.1(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.5) + version: 2.20.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.5) next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) react: specifier: 'catalog:' version: 19.2.5 @@ -2574,7 +2583,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2595,13 +2604,13 @@ importers: version: 4.3.1 mantine-react-table: specifier: 'catalog:' - version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tabler/icons-react@3.41.1(react@19.2.5))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tabler/icons-react@3.44.0(react@19.2.5))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) next-intl: specifier: 'catalog:' - version: 4.11.0(next@16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5)(typescript@5.9.3) + version: 4.11.0(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5)(typescript@5.9.3) react: specifier: 'catalog:' version: 19.2.5 @@ -2620,7 +2629,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2653,16 +2662,16 @@ importers: version: 8.3.18(react@19.2.5) '@tabler/icons-react': specifier: 'catalog:' - version: 3.41.1(react@19.2.5) + version: 3.44.0(react@19.2.5) crypto-js: specifier: 'catalog:' version: 4.2.0 mantine-react-table: specifier: 'catalog:' - version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tabler/icons-react@3.41.1(react@19.2.5))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tabler/icons-react@3.44.0(react@19.2.5))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) react: specifier: 'catalog:' version: 19.2.5 @@ -2690,7 +2699,7 @@ importers: version: 1.0.5 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2721,7 +2730,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2799,7 +2808,7 @@ importers: version: link:../validation '@mantine/charts': specifier: 'catalog:' - version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(recharts@3.8.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react-is@19.2.5)(react@19.2.5)(redux@5.0.1)) + version: 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(recharts@3.8.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react-is@19.2.6)(react@19.2.5)(redux@5.0.1)) '@mantine/core': specifier: 'catalog:' version: 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -2808,55 +2817,55 @@ importers: version: 8.3.18(react@19.2.5) '@tabler/icons-react': specifier: 'catalog:' - version: 3.41.1(react@19.2.5) + version: 3.44.0(react@19.2.5) '@tiptap/extension-color': specifier: 'catalog:' - version: 3.22.5(@tiptap/extension-text-style@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))) + version: 3.22.5(@tiptap/extension-text-style@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))) '@tiptap/extension-highlight': specifier: 'catalog:' - version: 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) + version: 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) '@tiptap/extension-image': specifier: 'catalog:' - version: 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) + version: 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) '@tiptap/extension-link': specifier: 'catalog:' - version: 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + version: 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) '@tiptap/extension-placeholder': specifier: 'catalog:' - version: 3.22.5(@tiptap/extensions@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) + version: 3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-table': specifier: 'catalog:' - version: 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + version: 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) '@tiptap/extension-table-cell': specifier: 'catalog:' - version: 3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) + version: 3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-table-header': specifier: 'catalog:' - version: 3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) + version: 3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-table-row': specifier: 'catalog:' - version: 3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) + version: 3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-task-item': specifier: 'catalog:' - version: 3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) + version: 3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-task-list': specifier: 'catalog:' - version: 3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) + version: 3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) '@tiptap/extension-text-align': specifier: 'catalog:' - version: 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) + version: 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) '@tiptap/extension-text-style': specifier: 'catalog:' - version: 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) + version: 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) '@tiptap/extension-underline': specifier: 'catalog:' - version: 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) + version: 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) '@tiptap/react': specifier: 'catalog:' - version: 3.22.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@tiptap/starter-kit': specifier: 'catalog:' - version: 3.22.5 + version: 3.23.4 clsx: specifier: 'catalog:' version: 2.1.1 @@ -2868,10 +2877,10 @@ importers: version: 1.3.0(@mantine/form@8.3.18(react@19.2.5))(zod@4.4.3) mantine-react-table: specifier: 'catalog:' - version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tabler/icons-react@3.41.1(react@19.2.5))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tabler/icons-react@3.44.0(react@19.2.5))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) next: specifier: 'catalog:' - version: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + version: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) react: specifier: 'catalog:' version: 19.2.5 @@ -2886,7 +2895,7 @@ importers: version: 3.8.3(quill-delta@5.1.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) recharts: specifier: 'catalog:' - version: 3.8.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react-is@19.2.5)(react@19.2.5)(redux@5.0.1) + version: 3.8.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react-is@19.2.6)(react@19.2.5)(redux@5.0.1) video.js: specifier: 'catalog:' version: 8.23.7 @@ -2908,7 +2917,7 @@ importers: version: 7.3.58 eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2920,29 +2929,29 @@ importers: version: 16.2.4 eslint-config-prettier: specifier: 'catalog:' - version: 10.1.8(eslint@10.3.0) + version: 10.1.8(eslint@10.4.0) eslint-config-turbo: specifier: 'catalog:' - version: 2.9.8(eslint@10.3.0)(turbo@2.9.8) + version: 2.9.14(eslint@10.4.0)(turbo@2.9.14) eslint-plugin-import: specifier: 'catalog:' - version: 2.32.0(@typescript-eslint/parser@8.58.2(eslint@10.3.0)(typescript@5.9.3))(eslint@10.3.0) + version: 2.32.0(@typescript-eslint/parser@8.59.3(eslint@10.4.0)(typescript@5.9.3))(eslint@10.4.0) eslint-plugin-jsx-a11y: specifier: 'catalog:' - version: 6.10.2(eslint@10.3.0) + version: 6.10.2(eslint@10.4.0) eslint-plugin-react: specifier: 'catalog:' - version: 7.37.5(eslint@10.3.0) + version: 7.37.5(eslint@10.4.0) eslint-plugin-react-hooks: specifier: 'catalog:' - version: 6.1.1(eslint@10.3.0) + version: 6.1.1(eslint@10.4.0) typescript-eslint: specifier: 'catalog:' - version: 8.58.2(eslint@10.3.0)(typescript@5.9.3) + version: 8.59.3(eslint@10.4.0)(typescript@5.9.3) devDependencies: '@eslint/js': specifier: 'catalog:' - version: 10.0.1(eslint@10.3.0) + version: 10.0.1(eslint@10.4.0) '@homarr/prettier-config': specifier: workspace:^0.1.0 version: link:../prettier @@ -2951,7 +2960,7 @@ importers: version: link:../typescript eslint: specifier: 'catalog:' - version: 10.3.0 + version: 10.4.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -3268,9 +3277,6 @@ packages: '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} - '@drizzle-team/brocli@0.12.0': - resolution: {integrity: sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==} - '@emnapi/runtime@1.9.1': resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} @@ -3767,8 +3773,8 @@ packages: resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.5': - resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} + '@eslint/config-helpers@0.6.0': + resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/core@1.2.1': @@ -3893,30 +3899,30 @@ packages: resolution: {integrity: sha512-Nsh23+aIMzWhHelM7XDGz5B+5ADprOWuPVUyCpEStOgnHQfdC1Wa6z66VkROBeV2ep4a7YgvQV166/OCzP1sgw==} engines: {node: '>=22.0.0'} - '@hono/node-server@1.13.0': - resolution: {integrity: sha512-kz323qIQkNQElEGroo/E9MKPDuIR5pkuk/XEWd50K+cSEKdmdiYx0PKWUdaNY2ecJYngtF+njDMsMKplL6zfEg==} + '@hono/node-server@1.19.14': + resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} engines: {node: '>=18.14.1'} peerDependencies: hono: '>=4.12.16' - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.2': - resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} '@ianvs/prettier-plugin-sort-imports@4.7.1': @@ -4385,9 +4391,121 @@ packages: '@million/lint@1.0.14': resolution: {integrity: sha512-u6/kglVwZRu5+GMmtkNlGLqJVkgTl0TtM+hLa9rBg7pldx+5NG5bk45NvL37uZmAr2Xfa1C6qHb7GrFwfP372g==} - deprecated: This package is no longer maintained hasBin: true + '@napi-rs/nice-android-arm-eabi@1.1.1': + resolution: {integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@napi-rs/nice-android-arm64@1.1.1': + resolution: {integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@napi-rs/nice-darwin-arm64@1.1.1': + resolution: {integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@napi-rs/nice-darwin-x64@1.1.1': + resolution: {integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@napi-rs/nice-freebsd-x64@1.1.1': + resolution: {integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': + resolution: {integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@napi-rs/nice-linux-arm64-gnu@1.1.1': + resolution: {integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-arm64-musl@1.1.1': + resolution: {integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@napi-rs/nice-linux-ppc64-gnu@1.1.1': + resolution: {integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==} + engines: {node: '>= 10'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-riscv64-gnu@1.1.1': + resolution: {integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==} + engines: {node: '>= 10'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-s390x-gnu@1.1.1': + resolution: {integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==} + engines: {node: '>= 10'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-x64-gnu@1.1.1': + resolution: {integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-x64-musl@1.1.1': + resolution: {integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@napi-rs/nice-openharmony-arm64@1.1.1': + resolution: {integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [openharmony] + + '@napi-rs/nice-win32-arm64-msvc@1.1.1': + resolution: {integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/nice-win32-ia32-msvc@1.1.1': + resolution: {integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@napi-rs/nice-win32-x64-msvc@1.1.1': + resolution: {integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@napi-rs/nice@1.1.1': + resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==} + engines: {node: '>= 10'} + '@next/env@16.2.4': resolution: {integrity: sha512-dKkkOzOSwFYe5RX6y26fZgkSpVAlIOJKQHIiydQcrWH6y/97+RceSOAdjZ14Qa3zLduVUy0TXcn+EiM6t4rPgw==} @@ -4673,6 +4791,11 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@playwright/test@1.60.0': + resolution: {integrity: sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==} + engines: {node: '>=18'} + hasBin: true + '@pnpm/config.env-replace@1.1.0': resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} @@ -4736,8 +4859,8 @@ packages: '@rolldown/pluginutils@1.0.0-rc.3': resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} peerDependencies: rollup: '>=4.60.2' @@ -4933,8 +5056,8 @@ packages: peerDependencies: semantic-release: '>=18.0.0' - '@semantic-release/github@12.0.6': - resolution: {integrity: sha512-aYYFkwHW3c6YtHwQF0t0+lAjlU+87NFOZuH2CvWFD0Ylivc7MwhZMiHOJ0FMpIgPpCVib/VUAcOwvrW0KnxQtA==} + '@semantic-release/github@12.0.8': + resolution: {integrity: sha512-tej5AAgK5X9wHRoDmYhecMXEHEkFeGOY1XsEblKxu8pIQwahzf1STYyr7iPU6Lpbg6C5I3N2w/ocXrBo+L7jhw==} engines: {node: ^22.14.0 || >= 24.10.0} peerDependencies: semantic-release: '>=24.1.0' @@ -4945,8 +5068,8 @@ packages: peerDependencies: semantic-release: '>=20.1.0' - '@semantic-release/release-notes-generator@14.1.0': - resolution: {integrity: sha512-CcyDRk7xq+ON/20YNR+1I/jP7BYKICr1uKd1HHpROSnnTdGqOTburi4jcRiTYz0cpfhxSloQO3cGhnoot7IEkA==} + '@semantic-release/release-notes-generator@14.1.1': + resolution: {integrity: sha512-Pbd2e2XRMUD0OxehHpgd5/YghsE76cddkRHSoDvKLK+OCy4Ewxn49rWR631MEUU01lgwF/uyVXvbnVuu6+Z6VA==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -5203,39 +5326,39 @@ packages: zod: optional: true - '@tabler/icons-react@3.41.1': - resolution: {integrity: sha512-kUgweE+DJtAlMZVIns1FTDdcbpRVnkK7ZpUOXmoxy3JAF0rSHj0TcP4VHF14+gMJGnF+psH2Zt26BLT6owetBA==} + '@tabler/icons-react@3.44.0': + resolution: {integrity: sha512-8+rvzBbVm/1Z3sG3x7GUNAaxIKxwgz8xaMhRs23nrCnMTKRFAhEC+82zAIFeAA0seXdrAGX5HFCkaLpGK2rVHg==} peerDependencies: react: '>= 16' - '@tabler/icons@3.41.1': - resolution: {integrity: sha512-OaRnVbRmH2nHtFeg+RmMJ/7m2oBIF9XCJAUD5gQnMrpK9f05ydj8MZrAf3NZQqOXyxGN1UBL0D5IKLLEUfr74Q==} + '@tabler/icons@3.44.0': + resolution: {integrity: sha512-Wn0AOZG9sg0L+bjfMqq4eNhC6pQjIrk94LvvWYNYkY8KH8wC3YILRzQlrnVJc4FUeMxH/AK97QsYCX35H3LndA==} '@tanstack/match-sorter-utils@8.19.4': resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} - '@tanstack/query-core@5.100.9': - resolution: {integrity: sha512-SJSFw1S8+kQ0+knv/XGfrbocWoAlT7vDKsSImtLx3ZPQmEcR46hkDjLSvynSy25N8Ms4tIEini1FuBd5k7IscQ==} + '@tanstack/query-core@5.100.10': + resolution: {integrity: sha512-8UR0yJR+GiQ40m3lPhUr0xbfAupe6GSQiksSBSa9SM2NjezFyxXCIA69/lz8cSoNKZLrw1/PktIyQBJcVeMi3w==} - '@tanstack/query-devtools@5.100.9': - resolution: {integrity: sha512-gqiptrTIhbK2PuCaPRHmWXfJG1NGYVFpAr0HqogEqiSBNB5xDz6fmesQt7w4WgMOqOQPnPHJ3ZDMuhDaXvNO8g==} + '@tanstack/query-devtools@5.100.10': + resolution: {integrity: sha512-3DmJf25hDPus5IpVvp6ujXv6bKV2zPzI9vpbAmpJigsL/H6DPvPjmf7/Q9yVKEke//8fgeQ45abjgnLuyYxAiw==} - '@tanstack/react-query-devtools@5.100.9': - resolution: {integrity: sha512-mM3slaVGXJmz+pOLgXdANj75ikgQCyudyl3kmFvm6brI1JyVeY/+IeD17uDHIvZrD8hfoO2sdZ54RFsHdYAuhA==} + '@tanstack/react-query-devtools@5.100.10': + resolution: {integrity: sha512-zes0+o9ef5rAZXJ9f/SeaLs2nufJaeVkZkl/Or9NGrWVF41kL9Od9ED9nCwtQlgiF2VGtrzhEw5AU/igAO+aAg==} peerDependencies: - '@tanstack/react-query': ^5.100.9 + '@tanstack/react-query': ^5.100.10 react: ^18 || ^19 - '@tanstack/react-query-next-experimental@5.100.9': - resolution: {integrity: sha512-cXkeZW/lEQaVmB3l0eiej5lJUNix4xxWWxOzgIJYC8D4fwgl1Kwf/bb9Av92hm6MKjWyixNCJ1wmjWrhFtuCGA==} + '@tanstack/react-query-next-experimental@5.100.10': + resolution: {integrity: sha512-/f2DlErD06XbR7k4Q62oFHVcx2z5hOVRewRQV85irU7C0SK4CHuo6n8wLhTTn1npzwS4BVMuocXNNp9MiK62jg==} peerDependencies: - '@tanstack/react-query': ^5.100.9 + '@tanstack/react-query': ^5.100.10 next: ^13 || ^14 || ^15 || ^16 react: ^18 || ^19 - '@tanstack/react-query@5.100.9': - resolution: {integrity: sha512-Oa44XkaI3kCNN6ME0KByU3xT3SEUNOMfZpHxL6+wFoTm+OeUFYHKdeYVe0aOXlRDm/f15sgLwEt2HDorIdW8+A==} + '@tanstack/react-query@5.100.10': + resolution: {integrity: sha512-FLaZf2RCrA/Zgp4aiu5tG3TyasTRO7aZ99skxQpr3Hg/zXOhu6yq5FZCYQ/tRaJtM9ylnoK8tFK7PolXQadv6Q==} peerDependencies: react: ^18 || ^19 @@ -5268,116 +5391,116 @@ packages: '@testcontainers/redis@11.14.0': resolution: {integrity: sha512-WX005slz2JMQPw2avbSjf5awVjpmFhOs5xCxeGSYLcV5ia4W1edv/P6MdOw4dZnvDQDuN5LfqNoV/ut3XGb2pA==} - '@tiptap/core@3.22.5': - resolution: {integrity: sha512-L1lhWz6ujGny8LduTJ7MBWYhzigwOvfUJUrJ7IzOJSuy3+OAzisdGDD1GV7LEO/hU0Hr2Mkm1wajRIHExvS9HQ==} + '@tiptap/core@3.23.4': + resolution: {integrity: sha512-ni2LWE52bVeSt3L2HVBSmbBw+elc32ATej9C68EyKzN/8vR5ILxFn6RCdDTKm4asmwZyq2jys12dKmBdWMr9QA==} peerDependencies: - '@tiptap/pm': 3.22.5 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-blockquote@3.22.5': - resolution: {integrity: sha512-ajyP5W8fG5Hrru47T/eF3xMKOpNvWofgNJqBTeNuGl02sYxsy9a4EunyFxudsaZP9WW3VOD4SaIWr5+MqpbnOQ==} + '@tiptap/extension-blockquote@3.23.4': + resolution: {integrity: sha512-7YjSibNlPcy9eGK+tHt5G/Njr7nPxl+rZ3rCC6TwtLIRLSHPnoGDsfFOgTPkXxaQcE1a/VQwemnYfWc3kdIjDQ==} peerDependencies: - '@tiptap/core': 3.22.5 + '@tiptap/core': 3.23.4 - '@tiptap/extension-bold@3.22.5': - resolution: {integrity: sha512-l/uDtpJISiFFyfctvnODNWBN/XPZI1jVZRacTRDDnSn8+x6KQ7G2qgFYueU7KvVJGDFVT39Iio56mcFRG/Pozg==} + '@tiptap/extension-bold@3.23.4': + resolution: {integrity: sha512-3L9tnZ12i+98u5df2nV2zGu/sc3rhI87E3ocn1YYAO8PJUAgZnMwdet8JawCrS1uut5sRKlxo3SXEmdNfRVm/w==} peerDependencies: - '@tiptap/core': 3.22.5 + '@tiptap/core': 3.23.4 - '@tiptap/extension-bubble-menu@3.22.5': - resolution: {integrity: sha512-yrNlFQQJY5MmhBpmD8tnmaSmyUQrEvgyPKa3bzVeWEhDSG1CW4A0ZSMx3hrA9yFO0HWfw3IJmvSCycEZQBalpQ==} + '@tiptap/extension-bubble-menu@3.23.4': + resolution: {integrity: sha512-EPTpL/IFp/aTGZErBq/Mc3dKznj6G/qNEkVYWjueOn1oKApyT0P6WVHGvu/vpMdErhzmoGDuFPPGVS6T8Upx2Q==} peerDependencies: - '@tiptap/core': 3.22.5 - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-bullet-list@3.22.5': - resolution: {integrity: sha512-cf54fG9AybU8NgPMv1TOcoqAkELeRc/VpnSCt/rIJZphWQx9nsFmrtkrlCatrIcCaGtNZYwlHlMnC5LVVMu0uA==} + '@tiptap/extension-bullet-list@3.23.4': + resolution: {integrity: sha512-mXB2KZOz1R+E6VNTZ3vzdAk7ZDGKjPmsJEZIQg1B5qRycTKg49/rCCkLA2QnqAwX6BzS3mLLH1RWE2W0oXD7vg==} peerDependencies: - '@tiptap/extension-list': 3.22.5 + '@tiptap/extension-list': 3.23.4 - '@tiptap/extension-code-block@3.22.5': - resolution: {integrity: sha512-d123kCfLdJTi4fue1m0+TNFztDkmIRSZGZmGu6H9KqwG5Q7IzjT9o8lzRsz+pXxYqHvqgYmXoEpM6srbzXx/Ag==} + '@tiptap/extension-code-block@3.23.4': + resolution: {integrity: sha512-UEU1w/85CSNKktbhESnIRmtjKcH7DeschReZA8err1wAnYLTKzid5ucnJSJ25iRg2V5Fnuws5gnPT5CVgdfXCQ==} peerDependencies: - '@tiptap/core': 3.22.5 - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-code@3.22.5': - resolution: {integrity: sha512-mwDNOJC9rYbDu/JcqrN4dbUQRklJU8Fuk2raxD/IvFw9qUIcPCmxQ2XT9UTKmZz/Ju7Kdy72fss6XpgWv6gLAQ==} + '@tiptap/extension-code@3.23.4': + resolution: {integrity: sha512-C0TeRipMycUEBnV+Mzx6eLp/yZb6Vi/waP3Tkb0lO5/ikg7LWLB7AlmMunjIXEUcR/pJHID/aEh5PfJFpysUDg==} peerDependencies: - '@tiptap/core': 3.22.5 + '@tiptap/core': 3.23.4 '@tiptap/extension-color@3.22.5': resolution: {integrity: sha512-4aTygOUlTFBYCvJy67SeKVdXCQw7du3Rj+N5ZutVnDnrpfzUBWsO7f+I+iDS8eMQFbWxVFLlWxGMcTbjtk1a+Q==} peerDependencies: '@tiptap/extension-text-style': 3.22.5 - '@tiptap/extension-document@3.22.5': - resolution: {integrity: sha512-8NJERd+pCtvSuEP4C4WMGYmRRCV12ePZL7bC+QUdFlbdXg+kNZS0zZ7hh879tYA0Kidbi8rWWD1Tx+H2ezkmMw==} + '@tiptap/extension-document@3.23.4': + resolution: {integrity: sha512-YC4G6VkxT629rlqUTwD6XvOpxjvghn7fxrK4RbyKVJY2C6E1vgmX0won1Ast6v+qTE6iONOMS6f6VyPxSGjg4w==} peerDependencies: - '@tiptap/core': 3.22.5 + '@tiptap/core': 3.23.4 - '@tiptap/extension-dropcursor@3.22.5': - resolution: {integrity: sha512-Mp40DaFrY3sEUVtFqmxrR0BmU4G3k8GCYYNGqNa9OqWv7BrcFDC03V2n3okESDKt4MKkzhQQmypq+ouLy8dLfA==} + '@tiptap/extension-dropcursor@3.23.4': + resolution: {integrity: sha512-ujJQUIENk0RwVFCh5g/TOSEv1a7Pnam/cjHmSUqHWUNZkYS9aOqjm+JfURJPCinRS2oHvo3AARul5mkKgDJYcA==} peerDependencies: - '@tiptap/extensions': 3.22.5 + '@tiptap/extensions': 3.23.4 - '@tiptap/extension-floating-menu@3.22.5': - resolution: {integrity: sha512-dhem4sTPhyQgQ+pFp2Oud4k4FSQz9PVMgeQAC9288SmGwxBkJNveDAw6sKTMrumqDvwkJrtslXIupq9TZYQnzg==} + '@tiptap/extension-floating-menu@3.23.4': + resolution: {integrity: sha512-eAc72bKM26yIPx0jsU8qdjE71vFNVu5R9jGbdItBMFc0SPLS4qY8g+8RJ+iWoLwbcSEpgooLS9D9sLfdAU+Tvw==} peerDependencies: '@floating-ui/dom': ^1.0.0 - '@tiptap/core': 3.22.5 - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-gapcursor@3.22.5': - resolution: {integrity: sha512-4WkMu7qqjbsm8hCQS+8X+la1wjriN0SKoRdvpfKH33qM50MB34tYJuGLAO+y7TTh4MMMco3AZCKPBL5JVMqNIg==} + '@tiptap/extension-gapcursor@3.23.4': + resolution: {integrity: sha512-RuyvOlIGP6UpVOc0Lw0L63jKLtYM49CNhPV2OMSfwwwbBZ3pJGos2/SqpYg71d3sn+qpsAopS4Pfr8iPZog73A==} peerDependencies: - '@tiptap/extensions': 3.22.5 + '@tiptap/extensions': 3.23.4 - '@tiptap/extension-hard-break@3.22.5': - resolution: {integrity: sha512-n0R2mUVYZU2AVbJhg/WcY9+zx690wVwvsItHJf0DrYbf1tCYHx+PRHUt/AoXk6u8BSmnkb8/FDziS8m3mjfpSg==} + '@tiptap/extension-hard-break@3.23.4': + resolution: {integrity: sha512-ODlpZCi7n136BH9luM09EFL8Pg+bbRCd0tzCQM5BKMXRkLitYZA8Gl/f5DLmGJ50wzFsDPXK2Br2g9UvZK7COg==} peerDependencies: - '@tiptap/core': 3.22.5 + '@tiptap/core': 3.23.4 - '@tiptap/extension-heading@3.22.5': - resolution: {integrity: sha512-hjyEG4947PAhMBfP1G6B0QAh6+y9mp2C5BQmNjprA05/lQzDAT7KFZzNh8ZVp3ol6aICKq/N1gFOW9Dc/9FUOw==} + '@tiptap/extension-heading@3.23.4': + resolution: {integrity: sha512-8W9Hqi0J69Xbqg08nPf4xRMJXMccaKFAgUE1tvy5PAWJSQxOMwkKQXgZXxwe+80sOMUnV8qveBqUy/ODMPgAxQ==} peerDependencies: - '@tiptap/core': 3.22.5 + '@tiptap/core': 3.23.4 '@tiptap/extension-highlight@3.22.5': resolution: {integrity: sha512-byWruAOKcqRN0OuzVSKqLLrced3M9AZaR2pD1BV3aUZHzMzeBjLBfByh8s4lExH2Z547xQUdHHnUflBQ572I5A==} peerDependencies: '@tiptap/core': 3.22.5 - '@tiptap/extension-horizontal-rule@3.22.5': - resolution: {integrity: sha512-vUV0/ugIbXOc8SJib0h8UMhgcqZXWu/dkEhlswZN4VVven1o5enkfxEiDw+OyIJHi5rUkrdhsQ/KTxG/Xb7X8A==} + '@tiptap/extension-horizontal-rule@3.23.4': + resolution: {integrity: sha512-EA4kK8ywZ4dQNOdxeZbplmDDs5T5LjMgHpqxRwukj9wwKiILOK5E3fcKm1fCKh9Q02w96jax6YVccHwmgJP3sQ==} peerDependencies: - '@tiptap/core': 3.22.5 - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 '@tiptap/extension-image@3.22.5': resolution: {integrity: sha512-ezMzA6w6UsPesQp6fxTQojI/IkGJLmkwR/VGTimva7sudP3HdSW8k3SGBkjfvp0L2xqUrC/l4nWOchu01A/xtQ==} peerDependencies: '@tiptap/core': 3.22.5 - '@tiptap/extension-italic@3.22.5': - resolution: {integrity: sha512-4T8baSiLkeIymTgEwirxDFt5YgYofkP3m1+MGYdGy2HKcOK+1vpvlPhEO1X5qtZngtJW5S4+njKjinRg52A4PA==} + '@tiptap/extension-italic@3.23.4': + resolution: {integrity: sha512-jUAHi+HZlg47BzgVIy6y/UH5vev7vPQ95jddhB5K3hC122kvWFMXlken7UOnqzbxNcHs2+4Oi/ZJirYMpT4P5w==} peerDependencies: - '@tiptap/core': 3.22.5 + '@tiptap/core': 3.23.4 - '@tiptap/extension-link@3.22.5': - resolution: {integrity: sha512-d671MvF3GPKoS2OVxjIlQ7hIE7MS3hREdR+d4cvnnoiLLD+ZJ6KgDnxmWqF0a1s4qxLWK2KxKRSOIfYGE31QWQ==} + '@tiptap/extension-link@3.23.4': + resolution: {integrity: sha512-XjxltY7MomwfTs6jmN6Bw5bb/upb34lpyqv2RiXppFTK25Br7ipksRjUpWpB4/csZeg30qwrLGVKxCol38ffrw==} peerDependencies: - '@tiptap/core': 3.22.5 - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-list-item@3.22.5': - resolution: {integrity: sha512-W7uTmyKLhlsvuTPLv+8WwnsY+mlikBFIoLSvVcBaFt4MwpsZ+DeB6KQg02Y7tbtaAnG7rXu9Fvw2QORh2P728A==} + '@tiptap/extension-list-item@3.23.4': + resolution: {integrity: sha512-Q/JXosShD5oyDwukE6igdrZD2lb0ZgyoQTHYchk0pzU4frClFbn3RI1wKP+XeqKLhdO6KH2WZ9rERGH7PtDi7Q==} peerDependencies: - '@tiptap/extension-list': 3.22.5 + '@tiptap/extension-list': 3.23.4 - '@tiptap/extension-list-keymap@3.22.5': - resolution: {integrity: sha512-cGUnxJ0y515e1bVHNjUmbx7oWHoEon59w6BA5N2KwV9iW2mZZchlTX4yxJSOX+ixeVRChsa7YwC3Z1jUZ6AMEg==} + '@tiptap/extension-list-keymap@3.23.4': + resolution: {integrity: sha512-9FezifCfuoc0o+5K6l4QNOOfelqxnDGg/f9oL1D/LFZPC54bPxpWWft9QCWOqyqZgyLCLjbCjciAlbgkrFUmmw==} peerDependencies: - '@tiptap/extension-list': 3.22.5 + '@tiptap/extension-list': 3.23.4 '@tiptap/extension-list@3.22.5': resolution: {integrity: sha512-cVO3ZHCgxAWZ4zrFSs81FO2nyCk1wb2EHkpLpW98FzbJLkN9rDkazhW99P3HRWy/CvUldOT+8ecI1YrQtBojMg==} @@ -5385,25 +5508,31 @@ packages: '@tiptap/core': 3.22.5 '@tiptap/pm': 3.22.5 - '@tiptap/extension-ordered-list@3.22.5': - resolution: {integrity: sha512-OXdh4k4CNrukwiSdWdEQ49uvgnqvR0Z9aNSP4HI5/kZQ/Te1NtRtYCpUrzWyO/7CtjcCisXHti0o9C/TV8YMbQ==} + '@tiptap/extension-list@3.23.4': + resolution: {integrity: sha512-yuauDm6qW/7q+ZO0YJBKQEGdnUm6DDTJM8AMp9bMZrT4jRf/zyUtNcZ91QEfFvBcyVuI+10PIOXtNPevhQ741Q==} peerDependencies: - '@tiptap/extension-list': 3.22.5 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-paragraph@3.22.5': - resolution: {integrity: sha512-52KCto4+XKpnBWpIufspWLyq4UWxAWC72ANPdGuIhbi72NRTabiTbTVN40uwGSPkyakeESG0/vKdWJCVvB4f0g==} + '@tiptap/extension-ordered-list@3.23.4': + resolution: {integrity: sha512-+3ofyssYnOTa1+nFWEmCAY1ngn8nAV1xo25JnNNC87NMU9WkSgr93jB7/uUJP0uui1C2dBLlaup3XXm108yarw==} peerDependencies: - '@tiptap/core': 3.22.5 + '@tiptap/extension-list': 3.23.4 - '@tiptap/extension-placeholder@3.22.5': - resolution: {integrity: sha512-MZAohQ3FCS763BkhGXgaWRya6WruZjwRwEAkXP8vkxbERzl2OJRjniS4uXCWzAlRb3ttE103SnY7LMdM8FvsXw==} + '@tiptap/extension-paragraph@3.23.4': + resolution: {integrity: sha512-KbhXjCFzWphvFn5VU7E4dtmYDm+bssI1i0+CnXPWCXkjdaaX88ck68Xp1fKz8/bbI/CqlgiNDO/3TvqgtZ6woQ==} peerDependencies: - '@tiptap/extensions': 3.22.5 + '@tiptap/core': 3.23.4 - '@tiptap/extension-strike@3.22.5': - resolution: {integrity: sha512-42WrrFK5gOom/0znH85x12Mw5IQ/6O6DWdyUWoRIrNA/qJpuHtU8oVU+bIgU2tuomMGHruRjIzgBQv5sBjEtww==} + '@tiptap/extension-placeholder@3.23.4': + resolution: {integrity: sha512-yHtAZkFR9M2AQmCi555w4ns1BBCqwRyYDYMtd10DBvqPX7T3TmGerPdUfI6sLr74GxnZ5zHOnOYdwAbeG5JzNw==} peerDependencies: - '@tiptap/core': 3.22.5 + '@tiptap/extensions': 3.23.4 + + '@tiptap/extension-strike@3.23.4': + resolution: {integrity: sha512-Vnq5vW801zPbu1LtKeA5k4R241jY+hRjXeijYwIPxy15KzIiipY12518HiCf6/8kkRbMxgOfdYg9X4BRV3HV3g==} + peerDependencies: + '@tiptap/core': 3.23.4 '@tiptap/extension-table-cell@3.22.5': resolution: {integrity: sha512-Wn4asCgNLfOPH5EOpiMjzOJXTZvv+TTqUT+gzm2fV69ZkleCGNO0BZwuR/TCIDLGIArbvHzyYy2/lJAfG4UCtg==} @@ -5446,37 +5575,42 @@ packages: peerDependencies: '@tiptap/core': 3.22.5 - '@tiptap/extension-text@3.22.5': - resolution: {integrity: sha512-bzpDOdAEo1JeoVZDIyV0oY0jGXkEG+AzF70SzHoRSjOvFDtKWunyXf9eO1OnOr2/fmMcckT2qwUBNBMQplWBzw==} + '@tiptap/extension-text@3.23.4': + resolution: {integrity: sha512-q9kxver/MR18p66aWZHSPycnr9hcBFyVGeGj8gf+BQCzn5hpvtSYTfLvk1nq8GFhygdQ9/e3f7B5ovrm/jnpvw==} peerDependencies: - '@tiptap/core': 3.22.5 + '@tiptap/core': 3.23.4 '@tiptap/extension-underline@3.22.5': resolution: {integrity: sha512-9ut09rJD0iEbS6sk7yd2j6IwuFDLTNmDEGTDLodvqAfi+bq7ddsTDv0YviXoZaA9sdHAdTEVr2ITy2m6WK5jpA==} peerDependencies: '@tiptap/core': 3.22.5 - '@tiptap/extensions@3.22.5': - resolution: {integrity: sha512-Ifg4MzKCj3uRqe3ieTwYnomu2y4p7EXr2avVSKZYfh12i2dyWe2Gkn1KuZDREANVE+gHqFlQjJRYzhJFwzSCrg==} + '@tiptap/extension-underline@3.23.4': + resolution: {integrity: sha512-F1ocPT10LV+seky25R1TMCRdc/Iof99jLcDSYDGr6mNEDY4ct2RvOeSM8aDdYq6CkH+vXt3i3JDeRwV23KzswQ==} peerDependencies: - '@tiptap/core': 3.22.5 - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4 - '@tiptap/pm@3.22.5': - resolution: {integrity: sha512-Cr9Mv4igxvI2tKMiahw48sZxva3PfDzypErH8IB82N+9qa9n9ygVMt0BOaDg53hLKxEEVeYr2S/wCcJIVFgBTw==} - - '@tiptap/react@3.22.5': - resolution: {integrity: sha512-36WHEs+vPmB//V1ff7Ujcnpz7Ey5g8lhpI/0+hoanSbdiPMTQ7qZVWwMovIkMKDlqWVp2fxBgeYM1861jyFzTw==} + '@tiptap/extensions@3.23.4': + resolution: {integrity: sha512-SlGPXauW8iKWG7wwuwC/0y/smLImp0h6GBIGgNnTBgIP/ThXQnjLMSZH0mW/REO87dQxkku01V3ARRywi+juhg==} peerDependencies: - '@tiptap/core': 3.22.5 - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 + + '@tiptap/pm@3.23.4': + resolution: {integrity: sha512-+C5ngcoza47n3MjtjVBqBEBICPC0McdbwzJ+X6SSCviCLoqnSYanv5mIX9HWG0Q4fJ4BkdNM3VibZUxQaTbKyQ==} + + '@tiptap/react@3.23.4': + resolution: {integrity: sha512-mb5aIY9PuLreOVLExqs+8BAI20I/8+jCUBfEIqheuFY2GRRuBiwczejSlYuADfVDBbPVN5uPw4UMADCaH5wueQ==} + peerDependencies: + '@tiptap/core': 3.23.4 + '@tiptap/pm': 3.23.4 '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 '@types/react-dom': ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tiptap/starter-kit@3.22.5': - resolution: {integrity: sha512-LZ/LYbwH6rnDi5DnRyagkuNsYAVyhM+yJvvz+ZuYA0JkPiTXJV86J5PWSKew8M0gVfMHcNVtKjfQCvViFCeIgw==} + '@tiptap/starter-kit@3.23.4': + resolution: {integrity: sha512-3VhU+NO6/ec9DMj/5Ej0nzARSq42cXnqW+QHCmTL3FNXkXQz+tw1KlfruT5GGJ3M0RssjWjRC0a39N/4S3qxeA==} '@tree-sitter-grammars/tree-sitter-yaml@0.7.1': resolution: {integrity: sha512-AynBwkIoQCTgjDR33bDUp9Mqq+YTco0is3n5hRApMqG9of/6A4eQsfC1/uSEeHSUyMQSYawcAWamsexnVpIP4Q==} @@ -5539,37 +5673,37 @@ packages: '@tsconfig/svelte@1.0.13': resolution: {integrity: sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA==} - '@turbo/darwin-64@2.9.8': - resolution: {integrity: sha512-zU1P95ygDpsQ+2QHh7CVTqvYwi9UBlhKWzoIyUnP3vUoge7H9SQEzrd8dj+XcTrslAp9Db3vIBcXtMVoTEYDnA==} + '@turbo/darwin-64@2.9.14': + resolution: {integrity: sha512-t7QiPflaEyBE4oayeZtSmu4mEfjgIrcNlNNl1z1dmIVPqEdtA7+CfTf8d7KXsOGPh6aNgWjKxyvQg9uGfDQF+A==} cpu: [x64] os: [darwin] - '@turbo/darwin-arm64@2.9.8': - resolution: {integrity: sha512-nKRFI5ZhCGUi4eXNlrojzWcT/CehMj0raot1WE4lw5qf66ZxZHbRbBqcwNEy+ZLY7RkJJRY+TaU89fuj3BcgGg==} + '@turbo/darwin-arm64@2.9.14': + resolution: {integrity: sha512-d23147mC9BsCPA9mJ0h/ubcpbRgcJBXbcG3+Vq7YLhjz3IXuvQsJ1UXH8f4MD76ZjJ4m/E4aRdJV+MW88CDfbw==} cpu: [arm64] os: [darwin] - '@turbo/gen@2.9.8': - resolution: {integrity: sha512-whc1xUXvYQ05etSNs6akwU4KpB1mn8q8GIVTz+nB0ruTqvN0tdS7gN/l+UZC0hvipoKUPW9IRrUIxljMq8AKWg==} + '@turbo/gen@2.9.14': + resolution: {integrity: sha512-TkvUzfbJj2zB0WaybYd/hzADLqq97ru0OQCiQ1DDnul5spSTq5I8If21K3vUAjKIWAQbCjDqZIPrS1IPG5bLyA==} hasBin: true - '@turbo/linux-64@2.9.8': - resolution: {integrity: sha512-Wf/kQpVDCaWM3P5d6lKvJnqjYn/ofUBGbT4h4vRFrdC4N6B/nsun03S2kQNJJMXpXg39woeS4CI367RMU3/OAg==} + '@turbo/linux-64@2.9.14': + resolution: {integrity: sha512-P3ZKB5tuUDdDQWuAsACGUR1qv9W7BNWxdxqVJ0kZNuNNPRaVYTPPikLcp79+GiEcW3npsR+KyP38lnQiBc5aSA==} cpu: [x64] os: [linux] - '@turbo/linux-arm64@2.9.8': - resolution: {integrity: sha512-v6S3HuKVoa9CEx16IxKj1i/+crxXx22A9O80zW1350zyUlcX0T/zLOxVf1k+ruK/7ssXnDJVg8uSYOxlYRedlA==} + '@turbo/linux-arm64@2.9.14': + resolution: {integrity: sha512-ZRTlzcUMrrPv9ZuDzRF9n60Ym13bKeG9jDB8WjxyLhWNzV+AJQN+zdpIk3NJYf2zQsGUm1mNar2P0elRzLw25g==} cpu: [arm64] os: [linux] - '@turbo/windows-64@2.9.8': - resolution: {integrity: sha512-JaefWOJNBazDylAn3f+lLB34XMNu8nEBbgPRP/Ewysg81cBubGfcyyyzpQOGVuMwfaqdNAE/kitG7w3AbJn9/g==} + '@turbo/windows-64@2.9.14': + resolution: {integrity: sha512-exanwN6sIduZwykYeiTQj8kCmOhazP5WOz3bvXMcYtjhL6Z3iRWLewKrXCBq0bqwSP3iBMb/AerRCnHI4lx46A==} cpu: [x64] os: [win32] - '@turbo/windows-arm64@2.9.8': - resolution: {integrity: sha512-Or6ljjB4TiiwCdVKDYWew0SokQ9kep5zruL8P3nbum9WdkH5XA41rQID4Ulc215Z+R3DrB+qXSHPsJjU3/n2ng==} + '@turbo/windows-arm64@2.9.14': + resolution: {integrity: sha512-fVdCsnmYoKICsycbWuuGp6Jvi51/3G/UluFWuAUCvR8PIW5IJkAk5BM9UF8PSm0Q2IphWHFZjYEgjHsh3B9y/g==} cpu: [arm64] os: [win32] @@ -5609,14 +5743,11 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/cookie@0.4.1': - resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} - '@types/cookies@0.9.2': resolution: {integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==} - '@types/cors@2.8.17': - resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + '@types/cors@2.8.19': + resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} '@types/crypto-js@4.2.2': resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} @@ -5717,8 +5848,8 @@ packages: '@types/node@18.19.50': resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@24.12.2': - resolution: {integrity: sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==} + '@types/node@24.12.4': + resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -5794,63 +5925,63 @@ packages: '@types/xml2js@0.4.14': resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} - '@typescript-eslint/eslint-plugin@8.58.2': - resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==} + '@typescript-eslint/eslint-plugin@8.59.3': + resolution: {integrity: sha512-PwFvSKsXGShKGW6n5bZOhGHEcCZXM8HofLK9fNsEwZXzFRjoY+XT1Vsf1zgyXdwTr0ZYz1/2tkZ0DBTT9jZjhw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.58.2 + '@typescript-eslint/parser': ^8.59.3 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.58.2': - resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==} + '@typescript-eslint/parser@8.59.3': + resolution: {integrity: sha512-HPwA+hVkfcriajbNvTmZv4VRauibay+cWArYUYq7u7W7PmGShMxbPxLvrwDme55a6d5alG3nrYfhyJ/G28XlLg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.58.2': - resolution: {integrity: sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==} + '@typescript-eslint/project-service@8.59.3': + resolution: {integrity: sha512-ECiUWa/KYRGDFUqTNehaRgzDshnJfkTABJxVemHk4ko22gcr0ukloKjWvyQ64g8YCV/UI47kN1dbmjf/GaQYng==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.58.2': - resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} + '@typescript-eslint/scope-manager@8.59.3': + resolution: {integrity: sha512-t2LvZnoEfzKtnPjgeEu41xw5gxq9mQVfYy4OoZ4Vlt0sk3JwxmhCca/AR7DwOiHrjWgjAj6as4AhRLKSDfvZIA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.58.2': - resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} + '@typescript-eslint/tsconfig-utils@8.59.3': + resolution: {integrity: sha512-PcIJHjmaREXLgIAIzLnSY9VucEzz8FKXsRgFa1DmdGCK/5tJpW03TKJF01Q6VZd1lLdz2sIKPWaDUZN9dp//dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.58.2': - resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} + '@typescript-eslint/type-utils@8.59.3': + resolution: {integrity: sha512-g71d8QD8UaiHGvrJwyIS1hCX5r63w6Jll+4VEYhEAHXTDIqX1JgxhTAbEHtKntL9kuc4jRo7/GWw5xfCepSccQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.58.2': - resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} + '@typescript-eslint/types@8.59.3': + resolution: {integrity: sha512-ePFoH0g4ludssdRFqqDxQePCxU4WQyRa9+XVwjm7yLn0FKhMeoetC+qBEEI1Eyb1pGSDveTIT09Bvw2WhlGayg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.58.2': - resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} + '@typescript-eslint/typescript-estree@8.59.3': + resolution: {integrity: sha512-CbRjVRAf7Lr9Kr8RopKcbY45p2VfmmHrm0ygOCYFi7oU8q19m0Fs/6iHS7kNOmwpp+ob07ZVcAqlxUod9lYdmg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.58.2': - resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} + '@typescript-eslint/utils@8.59.3': + resolution: {integrity: sha512-JAvT14goBzRzzzZyqq3P9BLArIxTtQURUtFgQ/V7FO+eU+Gg6ES+5ymOPP1wRxXcxAYeivCk4uS3jCKWI1K8Zg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.58.2': - resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} + '@typescript-eslint/visitor-keys@8.59.3': + resolution: {integrity: sha512-f1UQF7ggd42YiwI5wGrRaPsa+P0CINBlrkLPmGfpq/u/I/oVtecoEIfFR9ag/oa1sLOsRNZ6xehf6qMZhQGBDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@umami/node@0.4.0': @@ -5883,20 +6014,20 @@ packages: peerDependencies: vite: '>=8.0.10' - '@vitest/coverage-v8@4.1.5': - resolution: {integrity: sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==} + '@vitest/coverage-v8@4.1.6': + resolution: {integrity: sha512-36l628fQ/9a/8ihy97eOtEnvWQEdqULQOJtcaxtoNq0G1w3Mxd4szSahOaMM9/NGyZ+hyKcMtIW/WIxq0XQViQ==} peerDependencies: - '@vitest/browser': 4.1.5 - vitest: 4.1.5 + '@vitest/browser': 4.1.6 + vitest: 4.1.6 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.1.5': - resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==} + '@vitest/expect@4.1.6': + resolution: {integrity: sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==} - '@vitest/mocker@4.1.5': - resolution: {integrity: sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==} + '@vitest/mocker@4.1.6': + resolution: {integrity: sha512-MCFc63czMjEInOlcY2cpQCvCN+KgbAn+60xu9cMgP4sKaLC5JNAKw7JH8QdAnoAC88hW1IiSNZ+GgVXlN1UcMQ==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -5906,25 +6037,25 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.5': - resolution: {integrity: sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==} + '@vitest/pretty-format@4.1.6': + resolution: {integrity: sha512-h5SxD/IzNhZYnrSZRsUZQIC+vD0GY8cUvq0iwsmkFKixRCKLLWqCXa/FIQ4S1R+sI+PGoojkHsdNrbZiM9Qpgw==} - '@vitest/runner@4.1.5': - resolution: {integrity: sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==} + '@vitest/runner@4.1.6': + resolution: {integrity: sha512-nOPCmn2+yD0ZNmKdsXGv/UxMMWbMuKeD6GyYncNwdkYDxpQvrPSKYj2rWuDjC2Y4b6w6hjip5dBKFzEUuZe3vA==} - '@vitest/snapshot@4.1.5': - resolution: {integrity: sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==} + '@vitest/snapshot@4.1.6': + resolution: {integrity: sha512-YhsdE6xAVfTDmzjxL2ZDUvjj+ZsgyOKe+TdQzqkD72wIOmHka8NuGQ6NpTNZv9D2Z63fbwWKJPeVpEw4EQgYxw==} - '@vitest/spy@4.1.5': - resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==} + '@vitest/spy@4.1.6': + resolution: {integrity: sha512-JFKxMx6udhwKh/Ldo270e17QX710vgunMkuPAvXjHSvC6oqLWAHhVhjg/I71q0u0CBSErIODV1Kjv0FQNSWjdg==} - '@vitest/ui@4.1.5': - resolution: {integrity: sha512-3Z9HNFiV0IF1fk0JPiK+7kE1GcaIPefQQIBYur6PM5yFIq6agys3uqP/0t966e1wXfmjbRCHDe7qW236Xjwnag==} + '@vitest/ui@4.1.6': + resolution: {integrity: sha512-wiu5em68DfGv/2HFvI1Njr7JI2CHcBlQvereSzVG8my53PRxjTNOCsD9VOkRKrsJBDHmyuXvosxWZw7T91a2mw==} peerDependencies: - vitest: 4.1.5 + vitest: 4.1.6 - '@vitest/utils@4.1.5': - resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==} + '@vitest/utils@4.1.6': + resolution: {integrity: sha512-FxIY+U81R3LGKCxaHHFRQ5+g6/iRgGLmeHWdp2Amj4ljQRrEIWHmZyDfDYBRZlpyqA7qKxtS9DD1dhk8RnRIVQ==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -6033,6 +6164,10 @@ packages: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} + agent-base@9.0.0: + resolution: {integrity: sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA==} + engines: {node: '>= 20'} + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -6182,6 +6317,10 @@ packages: ast-v8-to-istanbul@1.0.0: resolution: {integrity: sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==} + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + async-lock@1.4.1: resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} @@ -6213,8 +6352,8 @@ packages: resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} engines: {node: '>= 6.0.0'} - axe-core@4.10.0: - resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} + axe-core@4.11.4: + resolution: {integrity: sha512-KunSNx+TVpkAw/6ULfhnx+HWRecjqZGTOyquAoWHYLRSdK1tB5Ihce1ZW+UY3fj33bYAFWPu7W/GRSmmrCGuxA==} engines: {node: '>=4'} axios@1.15.0: @@ -6301,9 +6440,9 @@ packages: before-after-hook@4.0.0: resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} - better-sqlite3@12.9.0: - resolution: {integrity: sha512-wqUv4Gm3toFpHDQmaKD4QhZm3g1DjUBI0yzS4UBl6lElUmXFYdTQmmEDpAFa5o8FiFiymURypEnfVHzILKaxqQ==} - engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x} + better-sqlite3@12.10.0: + resolution: {integrity: sha512-CyzaZRQKyHkB2ZInfTTl2nvT33EbDpjkLEbE8/Zck3Ll6O0qqvuGdrJ45HgtH+HykRg88ITY3AdreBGN70aBSQ==} + engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x || 26.x} bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} @@ -6327,8 +6466,8 @@ packages: resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} engines: {node: '>=10'} - brace-expansion@5.0.5: - resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -6373,6 +6512,10 @@ packages: resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} + call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} @@ -6447,8 +6590,8 @@ packages: ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} classnames@2.5.1: @@ -6627,8 +6770,8 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + cors@2.8.6: + resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} engines: {node: '>= 0.10'} cosmiconfig@9.0.0: @@ -6769,15 +6912,6 @@ packages: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -6905,8 +7039,8 @@ packages: dom-walk@0.1.2: resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - dompurify@3.4.2: - resolution: {integrity: sha512-lHeS9SA/IKeIFFyYciHBr2n0v1VMPlSj843HdLOwjb2OxNwdq9Xykxqhk+FE42MzAdHvInbAolSE4mhahPpjXA==} + dompurify@3.4.5: + resolution: {integrity: sha512-OrwIBKsdNSVEeubdJ1HBv/wNENRM9ytAVCv7YXt//A3vPdVMNuACRqK9mXCGCBW2ln7BT/A4X0jXHo2Gu89miA==} dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} @@ -7048,8 +7182,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - effect@3.21.0: - resolution: {integrity: sha512-PPN80qRokCd1f015IANNhrwOnLO7GrrMQfk4/lnZRE/8j7UPWrNNjPV0uBrZutI/nHzernbW+J0hdqQysHiSnQ==} + effect@3.21.2: + resolution: {integrity: sha512-rXd2FGDM8KdjSIrc+mqEELo7ScW7xTVxEf1iInmPSpIde9/nyGuFM710cjTo7/EreGXiUX2MOonPpprbz2XHCg==} electron-to-chromium@1.5.282: resolution: {integrity: sha512-FCPkJtpst28UmFzd903iU7PdeVTfY0KAeJy+Lk0GLZRwgwYHn/irRcaCbQQOmr5Vytc/7rcavsYLvTM8RiHYhQ==} @@ -7076,15 +7210,15 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - engine.io-client@6.5.4: - resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==} + engine.io-client@6.6.4: + resolution: {integrity: sha512-+kjUJnZGwzewFDw951CDWcwj35vMNf2fcj7xQWOctq1F2i1jkDdVvdFG9kM/BEChymCH36KgjnW0NsL58JYRxw==} engine.io-parser@5.2.3: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} - engine.io@6.6.2: - resolution: {integrity: sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==} + engine.io@6.6.7: + resolution: {integrity: sha512-DgOngfDKM2EviOH3Mr9m7ks1q8roetLy/IMmYthAYzbpInMbYc/GS+fWFA3rl1gvwKVsQrVV61fo5emD1y3OJQ==} engines: {node: '>=10.2.0'} enhanced-resolve@5.20.1: @@ -7117,8 +7251,8 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + es-abstract@1.24.2: + resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -7129,8 +7263,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + es-iterator-helpers@1.3.2: + resolution: {integrity: sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==} engines: {node: '>= 0.4'} es-module-lexer@1.7.0: @@ -7199,14 +7333,14 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.9.8: - resolution: {integrity: sha512-NEF7KAULL8FYZEhug9jUUakQ+7S9ANe+KVSxzi4QXhuUdJb1+f85zqkL0ssM+hIlRLgOz5rKJiZQEYgmHo9IKg==} + eslint-config-turbo@2.9.14: + resolution: {integrity: sha512-8bAXNDwtmHV7CuSDX+FB9+TslZEP8qJoNWY9FQTEhyO42bRimcExxwOh1+K2H2JV2VFXJrkt1KxyJmy2xm8Ukw==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-node@0.3.10: + resolution: {integrity: sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==} eslint-module-utils@2.12.1: resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} @@ -7257,8 +7391,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-turbo@2.9.8: - resolution: {integrity: sha512-czP2GjPzR6G+BpVEKXNa7Vs45/Zz0QjUEyB+SSLNpVJTqBe331AlE9IxkC2Eh00H6a1hf/Q6BVwf+1WJupyVYA==} + eslint-plugin-turbo@2.9.14: + resolution: {integrity: sha512-ROTlsO1JBJLATxtDNd7t22vviSb0hD8fKnjOO0WRgtxJW3VBRNO3BLAC129GPZSvEvtMH/f71Y2TzrqGPjLpEw==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -7279,8 +7413,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.3.0: - resolution: {integrity: sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==} + eslint@10.4.0: + resolution: {integrity: sha512-loXy6bWOoP3EP6JA7jo6p5jMpBJmHmsNZM5SFRHLdh1MGOPurMnNBj4ZlAbaqUAaQWbCr7jHV4P7gzAyryZWkQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -7412,11 +7546,11 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fast-xml-builder@1.1.5: - resolution: {integrity: sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==} + fast-xml-builder@1.2.0: + resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} - fast-xml-parser@5.7.2: - resolution: {integrity: sha512-P7oW7tLbYnhOLQk/Gv7cZgzgMPP/XN03K02/Jy6Y/NHzyIAIpxuZIM/YqAkfiXFPxA2CTm7NtCijK9EDu09u2w==} + fast-xml-parser@5.8.0: + resolution: {integrity: sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==} hasBin: true faster-babel-types@0.1.0: @@ -7536,9 +7670,6 @@ packages: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} - from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} @@ -7578,6 +7709,10 @@ packages: generate-function@2.3.1: resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -7610,10 +7745,6 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-stream@7.0.1: - resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} - engines: {node: '>=16'} - get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -7629,8 +7760,8 @@ packages: get-tsconfig@4.13.6: resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} - git-hooks-list@4.1.1: - resolution: {integrity: sha512-cmP497iLq54AZnv4YRAEMnEyQ1eIn4tGKbmswqwmFV4GBnAqE8NLtWxxdXa++AalfgL5EBH4IxTPyquEuGY/jA==} + git-hooks-list@4.2.1: + resolution: {integrity: sha512-WNvqJjOxxs/8ZP9+DWdwWJ7cDsd60NHf39XnD82pDVrKO5q7xfPqpkK6hwEAmBa/ZSEE4IOoR75EzbbIuwGlMw==} git-log-parser@1.2.1: resolution: {integrity: sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==} @@ -7690,8 +7821,9 @@ packages: engines: {node: '>=0.4.7'} hasBin: true - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} @@ -7724,6 +7856,10 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hasown@2.0.3: + resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} + engines: {node: '>= 0.4'} + hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} @@ -7748,8 +7884,8 @@ packages: highlightjs-vue@1.0.0: resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} - hono@4.12.16: - resolution: {integrity: sha512-jN0ZewiNAWSe5khM3EyCmBb250+b40wWbwNILNfEvq84VREWwOIkuUsFONk/3i3nqkz7Oe1PcpM2mwQEK2L9Kg==} + hono@4.12.19: + resolution: {integrity: sha512-xa3eYXYXx68XTT4hZ7dRzsXBhaq85ToSrlUJNoR0gwz/1Ap/CNwX47wfvV7pc/xWhjKVVkLT7zBJy8chhNguqQ==} engines: {node: '>=16.9.0'} hook-std@4.0.0: @@ -7795,13 +7931,13 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} + http-proxy-agent@9.0.0: + resolution: {integrity: sha512-FcF8VhXYLQcxWCnt/cCpT2apKsRDUGeVEeMqGu4HSTu29U8Yw0TLOjdYIlDsYk3IkUh+taX4IDWpPcCqKDhCjA==} + engines: {node: '>= 20'} - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} + https-proxy-agent@9.0.0: + resolution: {integrity: sha512-/MVmHp58WkOypgFhCLk4fzpPcFQvTJ/e6LBI7irpIO2HfxUbpmYoHF+KzipzJpxxzJu7aJNWQ0xojJ/dzV2G5g==} + engines: {node: '>= 20'} human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} @@ -7826,8 +7962,8 @@ packages: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} - icu-minify@4.11.0: - resolution: {integrity: sha512-XRvblCwLqWXio5ZLcmDqXvJv7alSACK6UjXuuMOdQWB//d25AQX6xlVlI1FEbc3Q6iPLXXo6HaVLn8LcAFhn1Q==} + icu-minify@4.12.0: + resolution: {integrity: sha512-zDmM05uav3t3+kxSfRrNlmyXOdj2b+uHA+p04CG32eJabtaHbugXujuL+YfRkwP9joAnf0Uh+RMGCKD5NLa5rQ==} ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -7912,10 +8048,6 @@ packages: intl-messageformat@11.1.1: resolution: {integrity: sha512-vnrF2f4vfsdaFY6tuLZfzGcx1GZFMFAq6c7QdK3HSXNcGXEIQncNgbeAcnpjAOszQzq3Jbol2SwgshIGY08WyA==} - into-stream@7.0.0: - resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} - engines: {node: '>=12'} - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -7947,16 +8079,16 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} is-bigint@1.1.0: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} - is-boolean-object@1.2.1: - resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} is-buffer@1.1.6: @@ -7970,8 +8102,8 @@ packages: resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} hasBin: true - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} is-data-view@1.0.2: @@ -8000,8 +8132,8 @@ packages: is-function@1.0.2: resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -8104,8 +8236,8 @@ packages: resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} is-what@5.5.0: @@ -8128,8 +8260,8 @@ packages: resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} engines: {node: '>=18'} - isomorphic-dompurify@3.12.0: - resolution: {integrity: sha512-8n+j+6ypTHvriJwFOQ2qusQ6bzGjZVcR3jbe1pBpLcGI1dn4WIl0ctLBngqE5QttquQBAlKXwJeTMw+X7x7qKw==} + isomorphic-dompurify@3.13.0: + resolution: {integrity: sha512-QzgzjAGJN0QoOpLWx7mkMhhTQvQXsBpS6oEi2Wy58mEWwrvaRJrx5hrVEdsM70nNKOwHCHj3bwYkwI+HFd3Khg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} isomorphic-fetch@3.0.0: @@ -8156,8 +8288,8 @@ packages: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} - iterator.prototype@1.1.4: - resolution: {integrity: sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==} + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} jackspeak@3.4.3: @@ -8178,8 +8310,8 @@ packages: jose@6.0.8: resolution: {integrity: sha512-EyUPtOKyTYq+iMOszO42eobQllaIjJnwkZ2U93aJzNyPibCy7CEvT9UQnaCVB51IAd49gbNdCew1c0LcLTCB2g==} - jotai@2.19.1: - resolution: {integrity: sha512-sqm9lVZiqBHZH8aSRk32DSiZDHY3yUIlulXYn9GQj7/LvoUdYXSMti7ZPJGo+6zjzKFt5a25k/I6iBCi43PJcw==} + jotai@2.20.0: + resolution: {integrity: sha512-b5GAqgmXmXzB4WPaTH26ppk9Sl7AA9WSQX7yfdM+gJ1rFROiWcVbi97gFuN/yVCojOcbcvop2sfLL+fjxW0JVg==} engines: {node: '>=12.20.0'} peerDependencies: '@babel/core': '>=7.0.0' @@ -8322,8 +8454,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - linkifyjs@4.3.2: - resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==} + linkifyjs@4.3.3: + resolution: {integrity: sha512-P8aEP5U/D1/IlTY2OeYsErdwh9bGuLE30NcXtKEjgdHcahveQoQwM2yZNsioQHsWFz0P7KKudisbrzCgR0sDHg==} load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} @@ -8736,8 +8868,8 @@ packages: nodemailer: optional: true - next-intl-swc-plugin-extractor@4.11.0: - resolution: {integrity: sha512-WUGBSxGNd8eQ0rAsJHFmRw2H7+SZAXQIY/HAnYM57JaUsj5D2vx4KOz4zFtXlyKDtsw9awHfgWVvBae2/RDF9A==} + next-intl-swc-plugin-extractor@4.12.0: + resolution: {integrity: sha512-jUxVEu1Nryjt4YgaDktSys7ioOgQfcNPF/SF2dbPNxbVb6U+P1INRgHeCVN+EC59H2rnTFIQwbddmOCrUWFr3g==} next-intl@4.11.0: resolution: {integrity: sha512-Chp8rgEVUYOX/bCtYy+PXH6lDX3X+GPT9sR9HScHroL283em/4urP9btfdHEMEHJJXdq2W/5wDaDDtWONPdNSA==} @@ -8770,10 +8902,6 @@ packages: sass: optional: true - nice-napi@1.0.2: - resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} - os: ['!win32'] - node-abi@3.67.0: resolution: {integrity: sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==} engines: {node: '>=10'} @@ -8781,9 +8909,6 @@ packages: node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - node-addon-api@3.2.1: - resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} - node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} @@ -8791,18 +8916,13 @@ packages: resolution: {integrity: sha512-lytcDEdxKjGJPTLEfW4mYMigRezMlyJY8W4wxJK8zE533Jlb8L8dRuObJFWg2P+AuOIxoCgKF+2Oq4d4Zd0OUA==} engines: {node: ^18 || ^20 || >= 21} - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - deprecated: Use your platform's native DOMException instead - node-emoji@2.2.0: resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} engines: {node: '>=18'} - node-fetch-commonjs@3.3.2: - resolution: {integrity: sha512-VBlAiynj3VMLrotgwOS3OyECFxas5y7ltLcK4t41lMUZeaK15Ym4QRkqN0EQKAFL42q9i21EPKjzLUPfltR72A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-exports-info@1.6.0: + resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + engines: {node: '>= 0.4'} node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} @@ -8976,8 +9096,8 @@ packages: ofetch@1.5.1: resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} - ohash@1.1.4: - resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + ohash@1.1.6: + resolution: {integrity: sha512-TBu7PtV8YkAZn0tSxobKY2n2aAQva936lhRrj6957aDaCf9IEtqsKbgMzXE/F/sjqYOwmrukeORHNLe5glk7Cg==} on-exit-leak-free@2.1.2: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} @@ -9030,10 +9150,6 @@ packages: resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} engines: {node: '>=18'} - p-is-promise@3.0.0: - resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} - engines: {node: '>=8'} - p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} engines: {node: '>=4'} @@ -9218,8 +9334,8 @@ packages: resolution: {integrity: sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==} hasBin: true - piscina@4.6.1: - resolution: {integrity: sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==} + piscina@4.9.2: + resolution: {integrity: sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ==} pkcs7@1.0.4: resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==} @@ -9229,13 +9345,13 @@ packages: resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} engines: {node: '>=4'} - playwright-core@1.49.0: - resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} + playwright-core@1.60.0: + resolution: {integrity: sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==} engines: {node: '>=18'} hasBin: true - playwright@1.49.0: - resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} + playwright@1.60.0: + resolution: {integrity: sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==} engines: {node: '>=18'} hasBin: true @@ -9505,6 +9621,11 @@ packages: peerDependencies: react: ^19.2.5 + react-dom@19.2.6: + resolution: {integrity: sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==} + peerDependencies: + react: ^19.2.6 + react-dropzone@15.0.0: resolution: {integrity: sha512-lGjYV/EoqEjEWPnmiSvH4v5IoIAwQM2W4Z1C0Q/Pw2xD0eVzKPS359BQTUMum+1fa0kH2nrKjuavmTPOGhpLPg==} engines: {node: '>= 10.13'} @@ -9533,8 +9654,8 @@ packages: peerDependencies: react: ^16.8.4 || ^17.0.0 || ^18.0.0 - react-is@19.2.5: - resolution: {integrity: sha512-Dn0t8IQhCmeIT3wu+Apm1/YVsJXsGWi6k4sPdnBIdqMVtHtv0IGi6dcpNpNkNac0zB2uUAqNX3MHzN8c+z2rwQ==} + react-is@19.2.6: + resolution: {integrity: sha512-XjBR15BhXuylgWGuslhDKqlSayuqvqBX91BP8pauG8kd1zY8kotkNWbXksTCNRarse4kuGbe2kIY05ARtwNIvw==} react-markdown@10.1.0: resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} @@ -9633,6 +9754,10 @@ packages: resolution: {integrity: sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==} engines: {node: '>=0.10.0'} + react@19.2.6: + resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} + engines: {node: '>=0.10.0'} + read-package-up@11.0.0: resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} engines: {node: '>=18'} @@ -9704,8 +9829,8 @@ packages: redux@5.0.1: resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} - reflect.getprototypeof@1.0.9: - resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==} + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} refractor@5.0.0: @@ -9770,12 +9895,9 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + resolve@2.0.0-next.7: + resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} + engines: {node: '>= 0.4'} hasBin: true ret@0.2.2: @@ -9814,8 +9936,8 @@ packages: rrweb-player@1.0.0-alpha.4: resolution: {integrity: sha512-Wlmn9GZ5Fdqa37vd3TzsYdLl/JWEvXNUrLCrYpnOwEgmY409HwVIvvA5aIo7k582LoKgdRCsB87N+f0oWAR0Kg==} - rrweb-snapshot@2.0.0-alpha.17: - resolution: {integrity: sha512-GBg5pV8LHOTbeVmH2VHLEFR0mc2QpQMzAvcoxEGfPNWgWHc8UvKCyq7pqN1vA+fDZ+yXXbixeO0kB2pzVvFCBw==} + rrweb-snapshot@2.0.0-alpha.20: + resolution: {integrity: sha512-YTNf9YVeaGRo/jxY3FKBge2c/Ojd/KTHmuWloUSB+oyPXuY73ZeeG873qMMmhIpqEn7hn7aBF1eWEQmP7wjf8A==} rrweb-snapshot@2.0.0-alpha.4: resolution: {integrity: sha512-KQ2OtPpXO5jLYqg1OnXS/Hf+EzqnZyP5A+XPqBCjYpj3XIje/Od4gdUwjbFo3cVuWq5Cw5Y1d3/xwgIS7/XpQQ==} @@ -9829,8 +9951,8 @@ packages: rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + safe-array-concat@1.1.4: + resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} engines: {node: '>=0.4'} safe-buffer@5.1.2: @@ -10006,19 +10128,19 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - socket.io-adapter@2.5.5: - resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + socket.io-adapter@2.5.6: + resolution: {integrity: sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==} - socket.io-client@4.7.5: - resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} + socket.io-client@4.8.3: + resolution: {integrity: sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==} engines: {node: '>=10.0.0'} - socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + socket.io-parser@4.2.6: + resolution: {integrity: sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==} engines: {node: '>=10.0.0'} - socket.io@4.8.1: - resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} + socket.io@4.8.3: + resolution: {integrity: sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==} engines: {node: '>=10.2.0'} socks-proxy-agent@8.0.5: @@ -10032,11 +10154,11 @@ packages: sonic-boom@4.2.1: resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} - sort-object-keys@2.0.1: - resolution: {integrity: sha512-R89fO+z3x7hiKPXX5P0qim+ge6Y60AjtlW+QQpRozrrNcR1lw9Pkpm5MLB56HoNvdcLHL4wbpq16OcvGpEDJIg==} + sort-object-keys@2.1.0: + resolution: {integrity: sha512-SOiEnthkJKPv2L6ec6HMwhUcN0/lppkeYuN1x63PbyPRrgSPIuBJCiYxYyvWRTtjMlOi14vQUCGUJqS6PLVm8g==} - sort-package-json@3.6.0: - resolution: {integrity: sha512-fyJsPLhWvY7u2KsKPZn1PixbXp+1m7V8NWqU8CvgFRbMEX41Ffw1kD8n0CfJiGoaSfoAvbrqRRl/DcHO8omQOQ==} + sort-package-json@3.6.1: + resolution: {integrity: sha512-Chgejw1+10p2D0U2tB7au1lHtz6TkFnxmvZktyBCRyV0GgmF6nl1IxXxAsPtJVsUyg/fo+BfCMAVVFUVRkAHrQ==} engines: {node: '>=20'} hasBin: true @@ -10201,8 +10323,8 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - strnum@2.2.3: - resolution: {integrity: sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==} + strnum@2.3.0: + resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} style-to-js@1.1.16: resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} @@ -10263,11 +10385,12 @@ packages: svgson@5.3.1: resolution: {integrity: sha512-qdPgvUNWb40gWktBJnbJRelWcPzkLed/ShhnRsjbayXz8OtdPOzbil9jtiZdrYvSDumAz/VNQr6JaNfPx/gvPA==} - swagger-client@3.37.3: - resolution: {integrity: sha512-PZv5smQPnPwfP6mnkq96fOp/RNDKBqd8vfwE4UuwA229wsesj20yd7RadXx+9uLBC3c0H6cu/H+bnbMTWG6oUQ==} + swagger-client@3.37.4: + resolution: {integrity: sha512-3xxqc9s99Vsf47ket2j7D4Tw6b6T7ObNvTqSP009yBeoAo0fy0yprqOVxFISTrvRxN7jgfrEi8GXMhsjzb1M0g==} + engines: {node: '>=22'} - swagger-ui-react@5.32.5: - resolution: {integrity: sha512-u86Qx36C5FvmJFVGMF3s62dxR3l0EfUmlylJVqCJ4vL0tvfd38kNdCQan9app6Y+C25uqVAjGLYu2w87UMD35Q==} + swagger-ui-react@5.32.6: + resolution: {integrity: sha512-2q2kXd6eDR+syyWV5HE2CkWANyr2MHPkNezG4M7fC0FPlBUZEsNgyA/2dcb9dIwgE5xd995dO42h89fNMF5/ng==} peerDependencies: react: '>=16.8.0 <20' react-dom: '>=16.8.0 <20' @@ -10497,8 +10620,8 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tsdav@2.2.0: - resolution: {integrity: sha512-ISMp2d8eeM7nzNIWzFLYbq5TBvv1gZYm+sRLaT3ec6HUj84wn2IlcuioPL9/NXhahStspCauD1BVBg98Y4e9+Q==} + tsdav@2.2.2: + resolution: {integrity: sha512-/uC/RItcdYVxUj8b2gT4CorAkUmDFUuzhgS4XVT+OVzGRE80hH5ldubcWH13dHa2T9rNaXu6UIEWHlQ1UL7H1Q==} engines: {node: '>=18'} tslib@2.8.1: @@ -10525,8 +10648,8 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - turbo@2.9.8: - resolution: {integrity: sha512-REEB2rVTVDTf4hav1gJ5dIsGylWZrNonvjXFtk1dCi8gND3PhZtnYkyry1bra/Fo+iP6ctTEZbg6vWfdfHq/1A==} + turbo@2.9.14: + resolution: {integrity: sha512-BQqXRr4UoWI3UPFrtznCLykYHxwxWh53iCB57x092jPMjIlW1wnm3N895g5irpiXmnxUhREBB0n6+y8BHhs4nw==} hasBin: true tweetnacl@0.14.5: @@ -10582,8 +10705,8 @@ packages: types-ramda@0.30.1: resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==} - typescript-eslint@8.58.2: - resolution: {integrity: sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==} + typescript-eslint@8.59.3: + resolution: {integrity: sha512-KgusgyDgG4LI8Ih/sWaCtZ06tckLAS5CvT5A4D1Q7bYVoAAyzwiZvE4BmwDHkhRVkvhRBepKeASoFzQetha7Fg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -10683,14 +10806,9 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin@1.14.1: - resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} - peerDependencies: - webpack-sources: ^3 - peerDependenciesMeta: - webpack-sources: - optional: true unraw@3.0.0: resolution: {integrity: sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==} @@ -10701,8 +10819,8 @@ packages: peerDependencies: browserslist: '>= 4.21.0' - update-notifier-cjs@5.1.6: - resolution: {integrity: sha512-wgxdSBWv3x/YpMzsWz5G4p4ec7JWD0HCl8W6bmNB6E5Gwo+1ym5oN4hiXpLf0mPySVEJEIsYlkshnplkg2OP9A==} + update-notifier-cjs@5.1.7: + resolution: {integrity: sha512-eZWTh8F+VCEoC4UIh0pKmh8h4izj65VvLhCpJpVefUxdYe0fU3GBrC4Sbh1AoWA/miNPAb6UVlp2fUQNsfp+3g==} engines: {node: '>=14'} uri-js@4.4.1: @@ -10739,8 +10857,8 @@ packages: peerDependencies: react: '>=16.13' - use-intl@4.11.0: - resolution: {integrity: sha512-7ILhTLuo3fnSKhoTGDk5X9591pjtWr6qB4inrlvGkN9OEyKhoiG73GZFoLSs68wz3BsSGtoWa62iWvrYEYU+iA==} + use-intl@4.12.0: + resolution: {integrity: sha512-r+qVb7UI1+kiOhjYsmsNUCY+jrnjVopwGeFlmMyQj4YInlwZzgMeMSv9n8MqnWWy77HL5BVM8K2WgX50SbtcpA==} peerDependencies: react: ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 @@ -10866,20 +10984,20 @@ packages: yaml: optional: true - vitest@4.1.5: - resolution: {integrity: sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==} + vitest@4.1.6: + resolution: {integrity: sha512-6lvjbS3p9b4CrdCmguzbh2/4uoXhGE2q71R4OX5sqF9R1bo9Xd6fGrMAfvp5wnCzlBnFVdCOp6onuTQVbo8iUQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.5 - '@vitest/browser-preview': 4.1.5 - '@vitest/browser-webdriverio': 4.1.5 - '@vitest/coverage-istanbul': 4.1.5 - '@vitest/coverage-v8': 4.1.5 - '@vitest/ui': 4.1.5 + '@vitest/browser-playwright': 4.1.6 + '@vitest/browser-preview': 4.1.6 + '@vitest/browser-webdriverio': 4.1.6 + '@vitest/coverage-istanbul': 4.1.6 + '@vitest/coverage-v8': 4.1.6 + '@vitest/ui': 4.1.6 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -10918,10 +11036,6 @@ packages: resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} engines: {node: '>=10.13.0'} - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - web-tree-sitter@0.24.5: resolution: {integrity: sha512-+J/2VSHN8J47gQUAvF8KDadrfz6uFYVjxoxbKWDoXVsH2u7yLdarCnIURnrMA6uSRkgX3SdmqM5BOoQjPdSh5w==} @@ -11035,8 +11149,8 @@ packages: write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -11047,8 +11161,8 @@ packages: utf-8-validate: optional: true - ws@8.20.0: - resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} + ws@8.20.1: + resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -11080,6 +11194,10 @@ packages: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} + xml-naming@0.1.0: + resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} + engines: {node: '>=16.0.0'} + xml-reader@2.4.3: resolution: {integrity: sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==} @@ -11097,8 +11215,8 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - xmlhttprequest-ssl@2.0.0: - resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} + xmlhttprequest-ssl@2.1.2: + resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} engines: {node: '>=0.4.0'} xtend@4.0.2: @@ -11120,6 +11238,11 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -11555,8 +11678,6 @@ snapshots: '@drizzle-team/brocli@0.10.2': {} - '@drizzle-team/brocli@0.12.0': {} - '@emnapi/runtime@1.9.1': dependencies: tslib: 2.8.1 @@ -11808,9 +11929,9 @@ snapshots: '@esbuild/win32-x64@0.28.0': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.3.0)': + '@eslint-community/eslint-utils@4.9.1(eslint@10.4.0)': dependencies: - eslint: 10.3.0 + eslint: 10.4.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -11823,7 +11944,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.5.5': + '@eslint/config-helpers@0.6.0': dependencies: '@eslint/core': 1.2.1 @@ -11831,9 +11952,9 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/js@10.0.1(eslint@10.3.0)': + '@eslint/js@10.0.1(eslint@10.4.0)': optionalDependencies: - eslint: 10.3.0 + eslint: 10.4.0 '@eslint/object-schema@3.0.5': {} @@ -11849,7 +11970,7 @@ snapshots: '@extractus/feed-extractor@7.2.1': dependencies: '@pwshub/bellajs': 13.0.2 - fast-xml-parser: 5.7.2 + fast-xml-parser: 5.8.0 html-entities: 2.6.0 '@fastify/ajv-compiler@4.0.5': @@ -11890,6 +12011,18 @@ snapshots: react: 19.2.5 react-dom: 19.2.5(react@19.2.5) + '@floating-ui/react-dom@2.1.6(react-dom@19.2.6(react@19.2.5))(react@19.2.5)': + dependencies: + '@floating-ui/dom': 1.7.4 + react: 19.2.5 + react-dom: 19.2.6(react@19.2.5) + + '@floating-ui/react-dom@2.1.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + dependencies: + '@floating-ui/dom': 1.7.4 + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + '@floating-ui/react@0.27.16(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@floating-ui/react-dom': 2.1.6(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -11898,6 +12031,22 @@ snapshots: react-dom: 19.2.5(react@19.2.5) tabbable: 6.2.0 + '@floating-ui/react@0.27.16(react-dom@19.2.6(react@19.2.5))(react@19.2.5)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@19.2.6(react@19.2.5))(react@19.2.5) + '@floating-ui/utils': 0.2.10 + react: 19.2.5 + react-dom: 19.2.6(react@19.2.5) + tabbable: 6.2.0 + + '@floating-ui/react@0.27.16(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@floating-ui/utils': 0.2.10 + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + tabbable: 6.2.0 + '@floating-ui/utils@0.2.10': {} '@formatjs/ecma402-abstract@3.1.0': @@ -11972,29 +12121,32 @@ snapshots: eventemitter2: 6.4.9 http-cookie-agent: 6.0.8(tough-cookie@5.1.2)(undici@7.24.6) tough-cookie: 5.1.2 - ws: 8.20.0 + ws: 8.20.1 transitivePeerDependencies: - bufferutil - debug - undici - utf-8-validate - '@hono/node-server@1.13.0(hono@4.12.16)': + '@hono/node-server@1.19.14(hono@4.12.19)': dependencies: - hono: 4.12.16 + hono: 4.12.19 - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.6': + '@humanfs/core@0.19.2': dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.1': {} - - '@humanwhocodes/retry@0.4.2': {} + '@humanwhocodes/retry@0.4.3': {} '@ianvs/prettier-plugin-sort-imports@4.7.1(prettier@3.8.3)': dependencies: @@ -12110,128 +12262,128 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.3.2(@types/node@24.12.2)': + '@inquirer/checkbox@4.3.2(@types/node@24.12.4)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.12.2) + '@inquirer/core': 10.3.2(@types/node@24.12.4) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/type': 3.0.10(@types/node@24.12.4) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/confirm@5.1.21(@types/node@24.12.2)': + '@inquirer/confirm@5.1.21(@types/node@24.12.4)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.2) - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/core@10.3.2(@types/node@24.12.2)': + '@inquirer/core@10.3.2(@types/node@24.12.4)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/type': 3.0.10(@types/node@24.12.4) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/editor@4.2.23(@types/node@24.12.2)': + '@inquirer/editor@4.2.23(@types/node@24.12.4)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.2) - '@inquirer/external-editor': 1.0.3(@types/node@24.12.2) - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/external-editor': 1.0.3(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/expand@4.0.23(@types/node@24.12.2)': + '@inquirer/expand@4.0.23(@types/node@24.12.4)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.2) - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/external-editor@1.0.3(@types/node@24.12.2)': + '@inquirer/external-editor@1.0.3(@types/node@24.12.4)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@inquirer/figures@1.0.15': {} - '@inquirer/input@4.3.1(@types/node@24.12.2)': + '@inquirer/input@4.3.1(@types/node@24.12.4)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.2) - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/number@3.0.23(@types/node@24.12.2)': + '@inquirer/number@3.0.23(@types/node@24.12.4)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.2) - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/password@4.0.23(@types/node@24.12.2)': + '@inquirer/password@4.0.23(@types/node@24.12.4)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.12.2) - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/prompts@7.10.1(@types/node@24.12.2)': + '@inquirer/prompts@7.10.1(@types/node@24.12.4)': dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@24.12.2) - '@inquirer/confirm': 5.1.21(@types/node@24.12.2) - '@inquirer/editor': 4.2.23(@types/node@24.12.2) - '@inquirer/expand': 4.0.23(@types/node@24.12.2) - '@inquirer/input': 4.3.1(@types/node@24.12.2) - '@inquirer/number': 3.0.23(@types/node@24.12.2) - '@inquirer/password': 4.0.23(@types/node@24.12.2) - '@inquirer/rawlist': 4.1.11(@types/node@24.12.2) - '@inquirer/search': 3.2.2(@types/node@24.12.2) - '@inquirer/select': 4.4.2(@types/node@24.12.2) + '@inquirer/checkbox': 4.3.2(@types/node@24.12.4) + '@inquirer/confirm': 5.1.21(@types/node@24.12.4) + '@inquirer/editor': 4.2.23(@types/node@24.12.4) + '@inquirer/expand': 4.0.23(@types/node@24.12.4) + '@inquirer/input': 4.3.1(@types/node@24.12.4) + '@inquirer/number': 3.0.23(@types/node@24.12.4) + '@inquirer/password': 4.0.23(@types/node@24.12.4) + '@inquirer/rawlist': 4.1.11(@types/node@24.12.4) + '@inquirer/search': 3.2.2(@types/node@24.12.4) + '@inquirer/select': 4.4.2(@types/node@24.12.4) optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/rawlist@4.1.11(@types/node@24.12.2)': + '@inquirer/rawlist@4.1.11(@types/node@24.12.4)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.2) - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/core': 10.3.2(@types/node@24.12.4) + '@inquirer/type': 3.0.10(@types/node@24.12.4) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/search@3.2.2(@types/node@24.12.2)': + '@inquirer/search@3.2.2(@types/node@24.12.4)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.12.2) + '@inquirer/core': 10.3.2(@types/node@24.12.4) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/type': 3.0.10(@types/node@24.12.4) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/select@4.4.2(@types/node@24.12.2)': + '@inquirer/select@4.4.2(@types/node@24.12.4)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.12.2) + '@inquirer/core': 10.3.2(@types/node@24.12.4) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.12.2) + '@inquirer/type': 3.0.10(@types/node@24.12.4) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@inquirer/type@3.0.10(@types/node@24.12.2)': + '@inquirer/type@3.0.10(@types/node@24.12.4)': optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@ioredis/commands@1.5.1': {} @@ -12287,12 +12439,12 @@ snapshots: '@kubernetes/client-node@1.4.0': dependencies: '@types/js-yaml': 4.0.9 - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/node-fetch': 2.6.13 '@types/stream-buffers': 3.0.7 form-data: 4.0.5 hpagent: 1.2.0 - isomorphic-ws: 5.0.0(ws@8.20.0) + isomorphic-ws: 5.0.0(ws@8.20.1) js-yaml: 4.1.1 jsonpath-plus: 10.3.0 node-fetch: 2.7.0 @@ -12301,7 +12453,7 @@ snapshots: socks-proxy-agent: 8.0.5 stream-buffers: 3.0.3 tar-fs: 3.1.2 - ws: 8.20.0 + ws: 8.20.1 transitivePeerDependencies: - bare-buffer - bufferutil @@ -12326,13 +12478,13 @@ snapshots: js-base64: 3.7.8 optional: true - '@mantine/charts@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(recharts@3.8.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react-is@19.2.5)(react@19.2.5)(redux@5.0.1))': + '@mantine/charts@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(recharts@3.8.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react-is@19.2.6)(react@19.2.5)(redux@5.0.1))': dependencies: '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@mantine/hooks': 8.3.18(react@19.2.5) react: 19.2.5 react-dom: 19.2.5(react@19.2.5) - recharts: 3.8.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react-is@19.2.5)(react@19.2.5)(redux@5.0.1) + recharts: 3.8.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react-is@19.2.6)(react@19.2.5)(redux@5.0.1) '@mantine/colors-generator@8.3.18(chroma-js@3.2.0)': dependencies: @@ -12352,6 +12504,34 @@ snapshots: transitivePeerDependencies: - '@types/react' + '@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.5))(react@19.2.5)': + dependencies: + '@floating-ui/react': 0.27.16(react-dom@19.2.6(react@19.2.5))(react@19.2.5) + '@mantine/hooks': 8.3.18(react@19.2.5) + clsx: 2.1.1 + react: 19.2.5 + react-dom: 19.2.6(react@19.2.5) + react-number-format: 5.4.4(react-dom@19.2.6(react@19.2.5))(react@19.2.5) + react-remove-scroll: 2.7.1(@types/react@19.2.14)(react@19.2.5) + react-textarea-autosize: 8.5.9(@types/react@19.2.14)(react@19.2.5) + type-fest: 4.41.0 + transitivePeerDependencies: + - '@types/react' + + '@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + dependencies: + '@floating-ui/react': 0.27.16(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) + clsx: 2.1.1 + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-number-format: 5.4.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react-remove-scroll: 2.7.1(@types/react@19.2.14)(react@19.2.6) + react-textarea-autosize: 8.5.9(@types/react@19.2.14)(react@19.2.6) + type-fest: 4.41.0 + transitivePeerDependencies: + - '@types/react' + '@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -12375,10 +12555,20 @@ snapshots: klona: 2.0.6 react: 19.2.5 + '@mantine/form@8.3.18(react@19.2.6)': + dependencies: + fast-deep-equal: 3.1.3 + klona: 2.0.6 + react: 19.2.6 + '@mantine/hooks@8.3.18(react@19.2.5)': dependencies: react: 19.2.5 + '@mantine/hooks@8.3.18(react@19.2.6)': + dependencies: + react: 19.2.6 + '@mantine/modals@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -12386,14 +12576,14 @@ snapshots: react: 19.2.5 react-dom: 19.2.5(react@19.2.5) - '@mantine/notifications@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@mantine/notifications@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@mantine/hooks@8.3.18(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@mantine/hooks': 8.3.18(react@19.2.5) - '@mantine/store': 8.3.18(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) - react-transition-group: 4.4.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@mantine/hooks': 8.3.18(react@19.2.6) + '@mantine/store': 8.3.18(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-transition-group: 4.4.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mantine/spotlight@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: @@ -12407,12 +12597,16 @@ snapshots: dependencies: react: 19.2.5 - '@mantine/tiptap@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tiptap/extension-link@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))(@tiptap/react@3.22.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@mantine/store@8.3.18(react@19.2.6)': + dependencies: + react: 19.2.6 + + '@mantine/tiptap@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tiptap/extension-link@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))(@tiptap/react@3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@mantine/hooks': 8.3.18(react@19.2.5) - '@tiptap/extension-link': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) - '@tiptap/react': 3.22.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@tiptap/extension-link': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/react': 3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) react: 19.2.5 react-dom: 19.2.5(react@19.2.5) @@ -12426,48 +12620,119 @@ snapshots: ast-types: 0.14.2 cli-high: 0.4.3 diff: 5.2.2 - effect: 3.21.0 + effect: 3.21.2 nanoid: 5.1.11 recast: 0.23.11 xycolors: 0.1.2 - '@million/lint@1.0.14(webpack-sources@3.3.4)': + '@million/lint@1.0.14': dependencies: '@axiomhq/js': 1.0.0-rc.3 '@babel/core': 7.26.0 '@babel/types': 7.26.0 - '@hono/node-server': 1.13.0(hono@4.12.16) + '@hono/node-server': 1.19.14(hono@4.12.19) '@million/install': 1.0.14 - '@rollup/pluginutils': 5.1.0 + '@rollup/pluginutils': 5.3.0 '@rrweb/types': 2.0.0-alpha.16 babel-plugin-syntax-hermes-parser: 0.21.1 - ci-info: 4.0.0 + ci-info: 4.4.0 esbuild: 0.28.0 faster-babel-types: 0.1.0(@babel/types@7.26.0) - hono: 4.12.16 + hono: 4.12.19 isomorphic-fetch: 3.0.0 nanoid: 5.1.11 - ohash: 1.1.4 + ohash: 1.1.6 pako: 2.1.0 pathe: 1.1.2 - piscina: 4.6.1 + piscina: 4.9.2 pretty-ms: 8.0.0 react-scan: 0.0.31 rrweb: 2.0.0-alpha.4 rrweb-player: 1.0.0-alpha.4 semver: 7.7.4 - socket.io: 4.8.1 - socket.io-client: 4.7.5 + socket.io: 4.8.3 + socket.io-client: 4.8.3 tmp: 0.2.5 - unplugin: 1.14.1(webpack-sources@3.3.4) - update-notifier-cjs: 5.1.6 + unplugin: 1.16.1 + update-notifier-cjs: 5.1.7 transitivePeerDependencies: - bufferutil - encoding - rollup - supports-color - utf-8-validate - - webpack-sources + + '@napi-rs/nice-android-arm-eabi@1.1.1': + optional: true + + '@napi-rs/nice-android-arm64@1.1.1': + optional: true + + '@napi-rs/nice-darwin-arm64@1.1.1': + optional: true + + '@napi-rs/nice-darwin-x64@1.1.1': + optional: true + + '@napi-rs/nice-freebsd-x64@1.1.1': + optional: true + + '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': + optional: true + + '@napi-rs/nice-linux-arm64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-arm64-musl@1.1.1': + optional: true + + '@napi-rs/nice-linux-ppc64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-riscv64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-s390x-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-x64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-x64-musl@1.1.1': + optional: true + + '@napi-rs/nice-openharmony-arm64@1.1.1': + optional: true + + '@napi-rs/nice-win32-arm64-msvc@1.1.1': + optional: true + + '@napi-rs/nice-win32-ia32-msvc@1.1.1': + optional: true + + '@napi-rs/nice-win32-x64-msvc@1.1.1': + optional: true + + '@napi-rs/nice@1.1.1': + optionalDependencies: + '@napi-rs/nice-android-arm-eabi': 1.1.1 + '@napi-rs/nice-android-arm64': 1.1.1 + '@napi-rs/nice-darwin-arm64': 1.1.1 + '@napi-rs/nice-darwin-x64': 1.1.1 + '@napi-rs/nice-freebsd-x64': 1.1.1 + '@napi-rs/nice-linux-arm-gnueabihf': 1.1.1 + '@napi-rs/nice-linux-arm64-gnu': 1.1.1 + '@napi-rs/nice-linux-arm64-musl': 1.1.1 + '@napi-rs/nice-linux-ppc64-gnu': 1.1.1 + '@napi-rs/nice-linux-riscv64-gnu': 1.1.1 + '@napi-rs/nice-linux-s390x-gnu': 1.1.1 + '@napi-rs/nice-linux-x64-gnu': 1.1.1 + '@napi-rs/nice-linux-x64-musl': 1.1.1 + '@napi-rs/nice-openharmony-arm64': 1.1.1 + '@napi-rs/nice-win32-arm64-msvc': 1.1.1 + '@napi-rs/nice-win32-ia32-msvc': 1.1.1 + '@napi-rs/nice-win32-x64-msvc': 1.1.1 + optional: true '@next/env@16.2.4': {} @@ -12736,6 +13001,11 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@playwright/test@1.60.0': + dependencies: + playwright: 1.60.0 + optional: true + '@pnpm/config.env-replace@1.1.0': {} '@pnpm/network.ca-file@1.0.2': @@ -12789,11 +13059,11 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.3': {} - '@rollup/pluginutils@5.1.0': + '@rollup/pluginutils@5.3.0': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 4.0.4 '@rollup/rollup-android-arm-eabi@4.60.0': optional: true @@ -12875,7 +13145,7 @@ snapshots: '@rrweb/types@2.0.0-alpha.16': dependencies: - rrweb-snapshot: 2.0.0-alpha.17 + rrweb-snapshot: 2.0.0-alpha.20 '@rtsao/scc@1.1.0': {} @@ -12927,7 +13197,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@semantic-release/github@12.0.6(semantic-release@25.0.3(typescript@5.9.3))': + '@semantic-release/github@12.0.8(semantic-release@25.0.3(typescript@5.9.3))': dependencies: '@octokit/core': 7.0.6 '@octokit/plugin-paginate-rest': 14.0.0(@octokit/core@7.0.6) @@ -12937,8 +13207,8 @@ snapshots: aggregate-error: 5.0.0 debug: 4.4.3 dir-glob: 3.0.1 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 + http-proxy-agent: 9.0.0 + https-proxy-agent: 9.0.0 issue-parser: 7.0.1 lodash-es: 4.17.21 mime: 4.0.4 @@ -12969,16 +13239,14 @@ snapshots: semver: 7.7.4 tempy: 3.1.0 - '@semantic-release/release-notes-generator@14.1.0(semantic-release@25.0.3(typescript@5.9.3))': + '@semantic-release/release-notes-generator@14.1.1(semantic-release@25.0.3(typescript@5.9.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 debug: 4.4.3 - get-stream: 7.0.1 import-from-esm: 2.0.0 - into-stream: 7.0.0 lodash-es: 4.17.21 read-package-up: 11.0.0 semantic-release: 25.0.3(typescript@5.9.3) @@ -13502,36 +13770,41 @@ snapshots: typescript: 5.9.3 zod: 4.4.3 - '@tabler/icons-react@3.41.1(react@19.2.5)': + '@tabler/icons-react@3.44.0(react@19.2.5)': dependencies: - '@tabler/icons': 3.41.1 + '@tabler/icons': 3.44.0 react: 19.2.5 - '@tabler/icons@3.41.1': {} + '@tabler/icons-react@3.44.0(react@19.2.6)': + dependencies: + '@tabler/icons': 3.44.0 + react: 19.2.6 + + '@tabler/icons@3.44.0': {} '@tanstack/match-sorter-utils@8.19.4': dependencies: remove-accents: 0.5.0 - '@tanstack/query-core@5.100.9': {} + '@tanstack/query-core@5.100.10': {} - '@tanstack/query-devtools@5.100.9': {} + '@tanstack/query-devtools@5.100.10': {} - '@tanstack/react-query-devtools@5.100.9(@tanstack/react-query@5.100.9(react@19.2.5))(react@19.2.5)': + '@tanstack/react-query-devtools@5.100.10(@tanstack/react-query@5.100.10(react@19.2.5))(react@19.2.5)': dependencies: - '@tanstack/query-devtools': 5.100.9 - '@tanstack/react-query': 5.100.9(react@19.2.5) + '@tanstack/query-devtools': 5.100.10 + '@tanstack/react-query': 5.100.10(react@19.2.5) react: 19.2.5 - '@tanstack/react-query-next-experimental@5.100.9(@tanstack/react-query@5.100.9(react@19.2.5))(next@16.2.4(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5)': + '@tanstack/react-query-next-experimental@5.100.10(@tanstack/react-query@5.100.10(react@19.2.5))(next@16.2.4(@babel/core@7.26.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5)': dependencies: - '@tanstack/react-query': 5.100.9(react@19.2.5) - next: 16.2.4(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + '@tanstack/react-query': 5.100.10(react@19.2.5) + next: 16.2.4(@babel/core@7.26.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) react: 19.2.5 - '@tanstack/react-query@5.100.9(react@19.2.5)': + '@tanstack/react-query@5.100.10(react@19.2.5)': dependencies: - '@tanstack/query-core': 5.100.9 + '@tanstack/query-core': 5.100.10 react: 19.2.5 '@tanstack/react-table@8.20.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': @@ -13571,168 +13844,177 @@ snapshots: - bare-buffer - supports-color - '@tiptap/core@3.22.5(@tiptap/pm@3.22.5)': + '@tiptap/core@3.23.4(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/pm': 3.22.5 + '@tiptap/pm': 3.23.4 - '@tiptap/extension-blockquote@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-blockquote@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-bold@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-bold@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-bubble-menu@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)': + '@tiptap/extension-bubble-menu@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: '@floating-ui/dom': 1.7.4 - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 optional: true - '@tiptap/extension-bullet-list@3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-bullet-list@3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-list': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-code-block@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)': + '@tiptap/extension-code-block@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 - '@tiptap/extension-code@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-code@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-color@3.22.5(@tiptap/extension-text-style@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)))': + '@tiptap/extension-color@3.22.5(@tiptap/extension-text-style@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)))': dependencies: - '@tiptap/extension-text-style': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) + '@tiptap/extension-text-style': 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) - '@tiptap/extension-document@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-document@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-dropcursor@3.22.5(@tiptap/extensions@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-dropcursor@3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extensions': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/extensions': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-floating-menu@3.22.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)': + '@tiptap/extension-floating-menu@3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: '@floating-ui/dom': 1.7.4 - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 optional: true - '@tiptap/extension-gapcursor@3.22.5(@tiptap/extensions@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-gapcursor@3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extensions': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/extensions': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-hard-break@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-hard-break@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-heading@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-heading@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-highlight@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-highlight@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-horizontal-rule@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)': + '@tiptap/extension-horizontal-rule@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 - '@tiptap/extension-image@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-image@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-italic@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-italic@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-link@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)': + '@tiptap/extension-link@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) - '@tiptap/pm': 3.22.5 - linkifyjs: 4.3.2 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 + linkifyjs: 4.3.3 - '@tiptap/extension-list-item@3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-list-item@3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-list': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-list-keymap@3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-list-keymap@3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-list': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)': + '@tiptap/extension-list@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 - '@tiptap/extension-ordered-list@3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/extension-list': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 - '@tiptap/extension-paragraph@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-ordered-list@3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-placeholder@3.22.5(@tiptap/extensions@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-paragraph@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extensions': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-strike@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-placeholder@3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/extensions': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-table-cell@3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-strike@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-table': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-table-header@3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-table-cell@3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-table': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/extension-table': 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-table-row@3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-table-header@3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-table': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/extension-table': 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-table@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)': + '@tiptap/extension-table-row@3.22.5(@tiptap/extension-table@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) - '@tiptap/pm': 3.22.5 + '@tiptap/extension-table': 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-task-item@3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-table@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': dependencies: - '@tiptap/extension-list': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 - '@tiptap/extension-task-list@3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5))': + '@tiptap/extension-task-item@3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/extension-list': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/extension-list': 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-text-align@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-task-list@3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/extension-list': 3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) - '@tiptap/extension-text-style@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-text-align@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-text@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-text-style@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extension-underline@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))': + '@tiptap/extension-text@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/extensions@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)': + '@tiptap/extension-underline@3.22.5(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) - '@tiptap/pm@3.22.5': + '@tiptap/extension-underline@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))': + dependencies: + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + + '@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)': + dependencies: + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 + + '@tiptap/pm@3.23.4': dependencies: prosemirror-changeset: 2.3.0 prosemirror-commands: 1.6.2 @@ -13747,10 +14029,10 @@ snapshots: prosemirror-transform: 1.10.2 prosemirror-view: 1.41.4 - '@tiptap/react@3.22.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@tiptap/react@3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) '@types/use-sync-external-store': 0.0.6 @@ -13759,37 +14041,37 @@ snapshots: react-dom: 19.2.5(react@19.2.5) use-sync-external-store: 1.4.0(react@19.2.5) optionalDependencies: - '@tiptap/extension-bubble-menu': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) - '@tiptap/extension-floating-menu': 3.22.5(@floating-ui/dom@1.7.4)(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) + '@tiptap/extension-bubble-menu': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/extension-floating-menu': 3.23.4(@floating-ui/dom@1.7.4)(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) transitivePeerDependencies: - '@floating-ui/dom' - '@tiptap/starter-kit@3.22.5': + '@tiptap/starter-kit@3.23.4': dependencies: - '@tiptap/core': 3.22.5(@tiptap/pm@3.22.5) - '@tiptap/extension-blockquote': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extension-bold': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extension-bullet-list': 3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) - '@tiptap/extension-code': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extension-code-block': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) - '@tiptap/extension-document': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extension-dropcursor': 3.22.5(@tiptap/extensions@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) - '@tiptap/extension-gapcursor': 3.22.5(@tiptap/extensions@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) - '@tiptap/extension-hard-break': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extension-heading': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extension-horizontal-rule': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) - '@tiptap/extension-italic': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extension-link': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) - '@tiptap/extension-list': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) - '@tiptap/extension-list-item': 3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) - '@tiptap/extension-list-keymap': 3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) - '@tiptap/extension-ordered-list': 3.22.5(@tiptap/extension-list@3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)) - '@tiptap/extension-paragraph': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extension-strike': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extension-text': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extension-underline': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5)) - '@tiptap/extensions': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) - '@tiptap/pm': 3.22.5 + '@tiptap/core': 3.23.4(@tiptap/pm@3.23.4) + '@tiptap/extension-blockquote': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-bold': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-bullet-list': 3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-code': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-code-block': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/extension-document': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-dropcursor': 3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-gapcursor': 3.23.4(@tiptap/extensions@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-hard-break': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-heading': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-horizontal-rule': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/extension-italic': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-link': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/extension-list': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/extension-list-item': 3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-list-keymap': 3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-ordered-list': 3.23.4(@tiptap/extension-list@3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4)) + '@tiptap/extension-paragraph': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-strike': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-text': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extension-underline': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4)) + '@tiptap/extensions': 3.23.4(@tiptap/core@3.23.4(@tiptap/pm@3.23.4))(@tiptap/pm@3.23.4) + '@tiptap/pm': 3.23.4 '@tree-sitter-grammars/tree-sitter-yaml@0.7.1(tree-sitter@0.22.4)': dependencies: @@ -13804,21 +14086,21 @@ snapshots: '@trpc/server': 11.17.0(typescript@5.9.3) typescript: 5.9.3 - '@trpc/next@11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(next@16.2.4(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3)': + '@trpc/next@11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(next@16.2.4(@babel/core@7.26.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3)': dependencies: '@trpc/client': 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/server': 11.17.0(typescript@5.9.3) - next: 16.2.4(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + next: 16.2.4(@babel/core@7.26.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) react: 19.2.5 react-dom: 19.2.5(react@19.2.5) typescript: 5.9.3 optionalDependencies: - '@tanstack/react-query': 5.100.9(react@19.2.5) - '@trpc/react-query': 11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3) + '@tanstack/react-query': 5.100.10(react@19.2.5) + '@trpc/react-query': 11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3) - '@trpc/react-query@11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3)': + '@trpc/react-query@11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3)': dependencies: - '@tanstack/react-query': 5.100.9(react@19.2.5) + '@tanstack/react-query': 5.100.10(react@19.2.5) '@trpc/client': 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/server': 11.17.0(typescript@5.9.3) react: 19.2.5 @@ -13828,9 +14110,9 @@ snapshots: dependencies: typescript: 5.9.3 - '@trpc/tanstack-react-query@11.17.0(@tanstack/react-query@5.100.9(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3)': + '@trpc/tanstack-react-query@11.17.0(@tanstack/react-query@5.100.10(react@19.2.5))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.5)(typescript@5.9.3)': dependencies: - '@tanstack/react-query': 5.100.9(react@19.2.5) + '@tanstack/react-query': 5.100.10(react@19.2.5) '@trpc/client': 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) '@trpc/server': 11.17.0(typescript@5.9.3) react: 19.2.5 @@ -13838,34 +14120,34 @@ snapshots: '@tsconfig/svelte@1.0.13': {} - '@turbo/darwin-64@2.9.8': + '@turbo/darwin-64@2.9.14': optional: true - '@turbo/darwin-arm64@2.9.8': + '@turbo/darwin-arm64@2.9.14': optional: true - '@turbo/gen@2.9.8(@types/node@24.12.2)': + '@turbo/gen@2.9.14(@types/node@24.12.4)': dependencies: - '@inquirer/prompts': 7.10.1(@types/node@24.12.2) + '@inquirer/prompts': 7.10.1(@types/node@24.12.4) esbuild: 0.25.12 transitivePeerDependencies: - '@types/node' - '@turbo/linux-64@2.9.8': + '@turbo/linux-64@2.9.14': optional: true - '@turbo/linux-arm64@2.9.8': + '@turbo/linux-arm64@2.9.14': optional: true - '@turbo/windows-64@2.9.8': + '@turbo/windows-64@2.9.14': optional: true - '@turbo/windows-arm64@2.9.8': + '@turbo/windows-arm64@2.9.14': optional: true '@types/adm-zip@0.5.8': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/aws-lambda@8.10.146': {} @@ -13892,16 +14174,16 @@ snapshots: '@types/bcrypt@6.0.0': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/better-sqlite3@7.6.13': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/chai@5.2.2': dependencies: @@ -13911,20 +14193,18 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.12.2 - - '@types/cookie@0.4.1': {} + '@types/node': 24.12.4 '@types/cookies@0.9.2': dependencies: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@types/cors@2.8.17': + '@types/cors@2.8.19': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/crypto-js@4.2.2': {} @@ -13964,13 +14244,13 @@ snapshots: '@types/docker-modem@3.0.6': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/ssh2': 1.15.1 '@types/dockerode@4.0.1': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/ssh2': 1.15.1 '@types/esrecurse@4.3.1': {} @@ -13983,7 +14263,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -14019,7 +14299,7 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 form-data: 4.0.5 '@types/node-unifi@2.5.1(patch_hash=5e6ae51e2a17a7f9729bfa30b0eb3d0842a5810ac6db47603ab4a6efa1ed84c5)': @@ -14030,7 +14310,7 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@24.12.2': + '@types/node@24.12.4': dependencies: undici-types: 7.16.0 @@ -14038,7 +14318,7 @@ snapshots: '@types/pg@8.20.0': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 pg-protocol: 1.13.0 pg-types: 2.2.0 @@ -14065,21 +14345,21 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/send': 0.17.4 '@types/ssh2-streams@0.1.12': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/ssh2@0.5.52': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/ssh2-streams': 0.1.12 '@types/ssh2@1.15.1': @@ -14088,7 +14368,7 @@ snapshots: '@types/stream-buffers@3.0.7': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/swagger-ui-react@5.18.0': dependencies: @@ -14109,21 +14389,21 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 '@types/xml2js@0.4.14': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 - '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.3.0)(typescript@5.9.3))(eslint@10.3.0)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.59.3(@typescript-eslint/parser@8.59.3(eslint@10.4.0)(typescript@5.9.3))(eslint@10.4.0)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.2(eslint@10.3.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/type-utils': 8.58.2(eslint@10.3.0)(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.3.0)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.58.2 - eslint: 10.3.0 + '@typescript-eslint/parser': 8.59.3(eslint@10.4.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.59.3 + '@typescript-eslint/type-utils': 8.59.3(eslint@10.4.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.3(eslint@10.4.0)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.3 + eslint: 10.4.0 ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -14131,56 +14411,56 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.2(eslint@10.3.0)(typescript@5.9.3)': + '@typescript-eslint/parser@8.59.3(eslint@10.4.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/scope-manager': 8.59.3 + '@typescript-eslint/types': 8.59.3 + '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.3 debug: 4.4.3 - eslint: 10.3.0 + eslint: 10.4.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.58.2(typescript@5.9.3)': + '@typescript-eslint/project-service@8.59.3(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/tsconfig-utils': 8.59.3(typescript@5.9.3) + '@typescript-eslint/types': 8.59.3 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.58.2': + '@typescript-eslint/scope-manager@8.59.3': dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/types': 8.59.3 + '@typescript-eslint/visitor-keys': 8.59.3 - '@typescript-eslint/tsconfig-utils@8.58.2(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.59.3(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.58.2(eslint@10.3.0)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.59.3(eslint@10.4.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.3.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.59.3 + '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.3(eslint@10.4.0)(typescript@5.9.3) debug: 4.4.3 - eslint: 10.3.0 + eslint: 10.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.58.2': {} + '@typescript-eslint/types@8.59.3': {} - '@typescript-eslint/typescript-estree@8.58.2(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.59.3(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.58.2(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/project-service': 8.59.3(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.59.3(typescript@5.9.3) + '@typescript-eslint/types': 8.59.3 + '@typescript-eslint/visitor-keys': 8.59.3 debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 @@ -14190,20 +14470,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.2(eslint@10.3.0)(typescript@5.9.3)': + '@typescript-eslint/utils@8.59.3(eslint@10.4.0)(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - eslint: 10.3.0 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0) + '@typescript-eslint/scope-manager': 8.59.3 + '@typescript-eslint/types': 8.59.3 + '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) + eslint: 10.4.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.58.2': + '@typescript-eslint/visitor-keys@8.59.3': dependencies: - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/types': 8.59.3 eslint-visitor-keys: 5.0.1 '@umami/node@0.4.0': {} @@ -14238,7 +14518,7 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@5.2.0(vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4))': + '@vitejs/plugin-react@5.2.0(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) @@ -14246,14 +14526,14 @@ snapshots: '@rolldown/pluginutils': 1.0.0-rc.3 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4) + vite: 7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@4.1.5(vitest@4.1.5)': + '@vitest/coverage-v8@4.1.6(vitest@4.1.6)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.5 + '@vitest/utils': 4.1.6 ast-v8-to-istanbul: 1.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -14262,57 +14542,57 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: 4.1.5(@types/node@24.12.2)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4)) + vitest: 4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(@vitest/ui@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/expect@4.1.5': + '@vitest/expect@4.1.6': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.2 - '@vitest/spy': 4.1.5 - '@vitest/utils': 4.1.5 + '@vitest/spy': 4.1.6 + '@vitest/utils': 4.1.6 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.5(vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4))': + '@vitest/mocker@4.1.6(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.5 + '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4) + vite: 7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/pretty-format@4.1.5': + '@vitest/pretty-format@4.1.6': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.5': + '@vitest/runner@4.1.6': dependencies: - '@vitest/utils': 4.1.5 + '@vitest/utils': 4.1.6 pathe: 2.0.3 - '@vitest/snapshot@4.1.5': + '@vitest/snapshot@4.1.6': dependencies: - '@vitest/pretty-format': 4.1.5 - '@vitest/utils': 4.1.5 + '@vitest/pretty-format': 4.1.6 + '@vitest/utils': 4.1.6 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.5': {} + '@vitest/spy@4.1.6': {} - '@vitest/ui@4.1.5(vitest@4.1.5)': + '@vitest/ui@4.1.6(vitest@4.1.6)': dependencies: - '@vitest/utils': 4.1.5 + '@vitest/utils': 4.1.6 fflate: 0.8.2 flatted: 3.4.2 pathe: 2.0.3 sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vitest: 4.1.5(@types/node@24.12.2)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4)) + vitest: 4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(@vitest/ui@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/utils@4.1.5': + '@vitest/utils@4.1.6': dependencies: - '@vitest/pretty-format': 4.1.5 + '@vitest/pretty-format': 4.1.6 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -14440,6 +14720,8 @@ snapshots: agent-base@7.1.3: {} + agent-base@9.0.0: {} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -14555,7 +14837,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 @@ -14565,7 +14847,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -14575,7 +14857,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -14584,21 +14866,21 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 @@ -14607,7 +14889,7 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -14632,6 +14914,8 @@ snapshots: estree-walker: 3.0.3 js-tokens: 10.0.0 + async-function@1.0.0: {} + async-lock@1.4.1: {} async@3.2.6: {} @@ -14657,7 +14941,7 @@ snapshots: aws-ssl-profiles@1.1.2: {} - axe-core@4.10.0: {} + axe-core@4.11.4: {} axios@1.15.0: dependencies: @@ -14739,7 +15023,7 @@ snapshots: before-after-hook@4.0.0: {} - better-sqlite3@12.9.0: + better-sqlite3@12.10.0: dependencies: bindings: 1.5.0 prebuild-install: 7.1.2 @@ -14777,7 +15061,7 @@ snapshots: widest-line: 3.1.0 wrap-ansi: 7.0.0 - brace-expansion@5.0.5: + brace-expansion@5.0.6: dependencies: balanced-match: 4.0.2 @@ -14826,6 +15110,13 @@ snapshots: get-intrinsic: 1.3.0 set-function-length: 1.2.2 + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 @@ -14880,7 +15171,7 @@ snapshots: ci-info@2.0.0: {} - ci-info@4.0.0: {} + ci-info@4.4.0: {} classnames@2.5.1: {} @@ -15070,7 +15361,7 @@ snapshots: core-util-is@1.0.3: {} - cors@2.8.5: + cors@2.8.6: dependencies: object-assign: 4.1.1 vary: 1.1.2 @@ -15204,10 +15495,6 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.7: - dependencies: - ms: 2.1.3 - debug@4.4.3: dependencies: ms: 2.1.3 @@ -15285,7 +15572,7 @@ snapshots: docker-compose@1.4.2: dependencies: - yaml: 2.8.4 + yaml: 2.9.0 docker-modem@5.0.7: dependencies: @@ -15330,7 +15617,7 @@ snapshots: dom-walk@0.1.2: {} - dompurify@3.4.2: + dompurify@3.4.5: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -15364,19 +15651,19 @@ snapshots: esbuild: 0.25.12 tsx: 4.21.0 - drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.9.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.2))(pg@8.20.0): + drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0): optionalDependencies: '@libsql/client-wasm': 0.14.0 '@types/better-sqlite3': 7.6.13 '@types/pg': 8.20.0 - better-sqlite3: 12.9.0 + better-sqlite3: 12.10.0 gel: 2.0.0 - mysql2: 3.22.3(@types/node@24.12.2) + mysql2: 3.22.3(@types/node@24.12.4) pg: 8.20.0 - drizzle-zod@0.8.3(drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.9.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.2))(pg@8.20.0))(zod@4.4.3): + drizzle-zod@0.8.3(drizzle-orm@0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0))(zod@4.4.3): dependencies: - drizzle-orm: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.9.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.2))(pg@8.20.0) + drizzle-orm: 0.45.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.20.0)(better-sqlite3@12.10.0)(gel@2.0.0)(mysql2@3.22.3(@types/node@24.12.4))(pg@8.20.0) zod: 4.4.3 dunder-proto@1.0.1: @@ -15391,7 +15678,7 @@ snapshots: eastasianwidth@0.2.0: {} - effect@3.21.0: + effect@3.21.2: dependencies: '@standard-schema/spec': 1.1.0 fast-check: 3.23.2 @@ -15414,13 +15701,13 @@ snapshots: dependencies: once: 1.4.0 - engine.io-client@6.5.4: + engine.io-client@6.6.4: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 + debug: 4.4.3 engine.io-parser: 5.2.3 - ws: 8.17.1 - xmlhttprequest-ssl: 2.0.0 + ws: 8.18.3 + xmlhttprequest-ssl: 2.1.2 transitivePeerDependencies: - bufferutil - supports-color @@ -15428,18 +15715,18 @@ snapshots: engine.io-parser@5.2.3: {} - engine.io@6.6.2: + engine.io@6.6.7: dependencies: - '@types/cookie': 0.4.1 - '@types/cors': 2.8.17 - '@types/node': 24.12.2 + '@types/cors': 2.8.19 + '@types/node': 24.12.4 + '@types/ws': 8.18.1 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 - cors: 2.8.5 - debug: 4.3.7 + cors: 2.8.6 + debug: 4.4.3 engine.io-parser: 5.2.3 - ws: 8.17.1 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - supports-color @@ -15470,7 +15757,7 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.24.0: + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -15512,7 +15799,7 @@ snapshots: object.assign: 4.1.7 own-keys: 1.0.1 regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 + safe-array-concat: 1.1.4 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 @@ -15531,12 +15818,12 @@ snapshots: es-errors@1.3.0: {} - es-iterator-helpers@1.2.1: + es-iterator-helpers@1.3.2: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -15547,8 +15834,8 @@ snapshots: has-proto: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 - iterator.prototype: 1.1.4 - safe-array-concat: 1.1.3 + iterator.prototype: 1.1.5 + math-intrinsics: 1.1.0 es-module-lexer@1.7.0: {} @@ -15674,35 +15961,35 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-prettier@10.1.8(eslint@10.3.0): + eslint-config-prettier@10.1.8(eslint@10.4.0): dependencies: - eslint: 10.3.0 + eslint: 10.4.0 - eslint-config-turbo@2.9.8(eslint@10.3.0)(turbo@2.9.8): + eslint-config-turbo@2.9.14(eslint@10.4.0)(turbo@2.9.14): dependencies: - eslint: 10.3.0 - eslint-plugin-turbo: 2.9.8(eslint@10.3.0)(turbo@2.9.8) - turbo: 2.9.8 + eslint: 10.4.0 + eslint-plugin-turbo: 2.9.14(eslint@10.4.0)(turbo@2.9.14) + turbo: 2.9.14 - eslint-import-resolver-node@0.3.9: + eslint-import-resolver-node@0.3.10: dependencies: debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.8 + is-core-module: 2.16.2 + resolve: 2.0.0-next.7 transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.58.2(eslint@10.3.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.3(eslint@10.4.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint@10.4.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.58.2(eslint@10.3.0)(typescript@5.9.3) - eslint: 10.3.0 - eslint-import-resolver-node: 0.3.9 + '@typescript-eslint/parser': 8.59.3(eslint@10.4.0)(typescript@5.9.3) + eslint: 10.4.0 + eslint-import-resolver-node: 0.3.10 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.58.2(eslint@10.3.0)(typescript@5.9.3))(eslint@10.3.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.3(eslint@10.4.0)(typescript@5.9.3))(eslint@10.4.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -15711,11 +15998,11 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 10.3.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.58.2(eslint@10.3.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0) + eslint: 10.4.0 + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.3(eslint@10.4.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint@10.4.0) hasown: 2.0.2 - is-core-module: 2.16.1 + is-core-module: 2.16.2 is-glob: 4.0.3 minimatch: 3.1.5 object.fromentries: 2.0.8 @@ -15725,23 +16012,23 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.58.2(eslint@10.3.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.59.3(eslint@10.4.0)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@10.3.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@10.4.0): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.10.0 + axe-core: 4.11.4 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 10.3.0 + eslint: 10.4.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -15750,25 +16037,25 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@6.1.1(eslint@10.3.0): + eslint-plugin-react-hooks@6.1.1(eslint@10.4.0): dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.2 - eslint: 10.3.0 + eslint: 10.4.0 zod: 4.4.3 zod-validation-error: 4.0.2(zod@4.4.3) transitivePeerDependencies: - supports-color - eslint-plugin-react@7.37.5(eslint@10.3.0): + eslint-plugin-react@7.37.5(eslint@10.4.0): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 10.3.0 + es-iterator-helpers: 1.3.2 + eslint: 10.4.0 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -15777,16 +16064,16 @@ snapshots: object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 - resolve: 2.0.0-next.5 + resolve: 2.0.0-next.7 semver: 6.3.1 string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-turbo@2.9.8(eslint@10.3.0)(turbo@2.9.8): + eslint-plugin-turbo@2.9.14(eslint@10.4.0)(turbo@2.9.14): dependencies: dotenv: 16.0.3 - eslint: 10.3.0 - turbo: 2.9.8 + eslint: 10.4.0 + turbo: 2.9.14 eslint-scope@5.1.1: dependencies: @@ -15804,17 +16091,17 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.3.0: + eslint@10.4.0: dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 - '@eslint/config-helpers': 0.5.5 + '@eslint/config-helpers': 0.6.0 '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.1 - '@humanfs/node': 0.16.6 + '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.2 + '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 ajv: 6.14.0 cross-spawn: 7.0.6 @@ -15969,16 +16256,18 @@ snapshots: fast-uri@3.1.0: {} - fast-xml-builder@1.1.5: + fast-xml-builder@1.2.0: dependencies: path-expression-matcher: 1.5.0 + xml-naming: 0.1.0 - fast-xml-parser@5.7.2: + fast-xml-parser@5.8.0: dependencies: '@nodable/entities': 2.1.0 - fast-xml-builder: 1.1.5 + fast-xml-builder: 1.2.0 path-expression-matcher: 1.5.0 - strnum: 2.2.3 + strnum: 2.3.0 + xml-naming: 0.1.0 faster-babel-types@0.1.0(@babel/types@7.26.0): dependencies: @@ -16098,11 +16387,6 @@ snapshots: format@0.2.2: {} - from2@2.3.0: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - fs-constants@1.0.0: {} fs-extra@11.2.0: @@ -16148,6 +16432,8 @@ snapshots: dependencies: is-property: 1.0.2 + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -16178,8 +16464,6 @@ snapshots: get-stream@6.0.1: {} - get-stream@7.0.1: {} - get-stream@8.0.1: {} get-stream@9.0.1: @@ -16197,7 +16481,7 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - git-hooks-list@4.1.1: {} + git-hooks-list@4.2.1: {} git-log-parser@1.2.1: dependencies: @@ -16278,7 +16562,7 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 - has-bigints@1.0.2: {} + has-bigints@1.1.0: {} has-flag@3.0.0: {} @@ -16304,6 +16588,10 @@ snapshots: dependencies: function-bind: 1.1.2 + hasown@2.0.3: + dependencies: + function-bind: 1.1.2 + hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 @@ -16350,7 +16638,7 @@ snapshots: highlightjs-vue@1.0.0: {} - hono@4.12.16: {} + hono@4.12.19: {} hook-std@4.0.0: {} @@ -16391,16 +16679,16 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-proxy-agent@7.0.2: + http-proxy-agent@9.0.0: dependencies: - agent-base: 7.1.3 + agent-base: 9.0.0 debug: 4.4.3 transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6: + https-proxy-agent@9.0.0: dependencies: - agent-base: 7.1.3 + agent-base: 9.0.0 debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -16421,7 +16709,7 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icu-minify@4.11.0: + icu-minify@4.12.0: dependencies: '@formatjs/icu-messageformat-parser': 3.5.0 @@ -16488,11 +16776,6 @@ snapshots: '@formatjs/icu-messageformat-parser': 3.5.0 tslib: 2.8.1 - into-stream@7.0.0: - dependencies: - from2: 2.3.0 - p-is-promise: 3.0.0 - invariant@2.2.4: dependencies: loose-envify: 1.4.0 @@ -16535,15 +16818,19 @@ snapshots: is-arrayish@0.2.1: {} - is-async-function@2.0.0: + is-async-function@2.1.1: dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-bigint@1.1.0: dependencies: - has-bigints: 1.0.2 + has-bigints: 1.1.0 - is-boolean-object@1.2.1: + is-boolean-object@1.2.2: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 @@ -16556,9 +16843,9 @@ snapshots: dependencies: ci-info: 2.0.0 - is-core-module@2.16.1: + is-core-module@2.16.2: dependencies: - hasown: 2.0.2 + hasown: 2.0.3 is-data-view@1.0.2: dependencies: @@ -16583,9 +16870,13 @@ snapshots: is-function@1.0.2: {} - is-generator-function@1.0.10: + is-generator-function@1.1.2: dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -16665,9 +16956,9 @@ snapshots: dependencies: call-bound: 1.0.4 - is-weakset@2.0.3: + is-weakset@2.0.4: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.4 get-intrinsic: 1.3.0 is-what@5.5.0: {} @@ -16683,9 +16974,9 @@ snapshots: isexe@3.1.5: optional: true - isomorphic-dompurify@3.12.0(@noble/hashes@2.0.1): + isomorphic-dompurify@3.13.0(@noble/hashes@2.0.1): dependencies: - dompurify: 3.4.2 + dompurify: 3.4.5 jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: - '@noble/hashes' @@ -16698,9 +16989,9 @@ snapshots: transitivePeerDependencies: - encoding - isomorphic-ws@5.0.0(ws@8.20.0): + isomorphic-ws@5.0.0(ws@8.20.1): dependencies: - ws: 8.20.0 + ws: 8.20.1 issue-parser@7.0.1: dependencies: @@ -16723,13 +17014,13 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - iterator.prototype@1.1.4: + iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 + get-proto: 1.0.1 has-symbols: 1.1.0 - reflect.getprototypeof: 1.0.9 set-function-name: 2.0.2 jackspeak@3.4.3: @@ -16746,20 +17037,20 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 merge-stream: 2.0.0 supports-color: 8.1.1 jose@6.0.8: {} - jotai@2.19.1(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.5): + jotai@2.20.0(@babel/core@7.26.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.5): optionalDependencies: '@babel/core': 7.26.0 '@babel/template': 7.28.6 '@types/react': 19.2.14 react: 19.2.5 - jotai@2.19.1(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.5): + jotai@2.20.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.5): optionalDependencies: '@babel/core': 7.29.0 '@babel/template': 7.28.6 @@ -16897,7 +17188,7 @@ snapshots: lines-and-columns@1.2.4: {} - linkifyjs@4.3.2: {} + linkifyjs@4.3.3: {} load-json-file@4.0.0: dependencies: @@ -17010,12 +17301,17 @@ snapshots: '@mantine/form': 8.3.18(react@19.2.5) zod: 4.4.3 - mantine-react-table@2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tabler/icons-react@3.41.1(react@19.2.5))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + mantine-form-zod-resolver@1.3.0(@mantine/form@8.3.18(react@19.2.6))(zod@4.4.3): + dependencies: + '@mantine/form': 8.3.18(react@19.2.6) + zod: 4.4.3 + + mantine-react-table@2.0.0-beta.9(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/dates@8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(@tabler/icons-react@3.44.0(react@19.2.5))(clsx@2.1.1)(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: '@mantine/core': 8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@mantine/dates': 8.3.18(@mantine/core@8.3.18(@mantine/hooks@8.3.18(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mantine/hooks@8.3.18(react@19.2.5))(dayjs@1.11.20)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@mantine/hooks': 8.3.18(react@19.2.5) - '@tabler/icons-react': 3.41.1(react@19.2.5) + '@tabler/icons-react': 3.44.0(react@19.2.5) '@tanstack/match-sorter-utils': 8.19.4 '@tanstack/react-table': 8.20.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@tanstack/react-virtual': 3.11.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -17302,19 +17598,19 @@ snapshots: minimatch@10.2.5: dependencies: - brace-expansion: 5.0.5 + brace-expansion: 5.0.6 minimatch@3.1.5: dependencies: - brace-expansion: 5.0.5 + brace-expansion: 5.0.6 minimatch@5.1.6: dependencies: - brace-expansion: 5.0.5 + brace-expansion: 5.0.6 minimatch@9.0.5: dependencies: - brace-expansion: 5.0.5 + brace-expansion: 5.0.6 minimist@1.2.8: {} @@ -17346,9 +17642,9 @@ snapshots: '@babel/runtime': 7.29.2 global: 4.4.0 - mysql2@3.22.3(@types/node@24.12.2): + mysql2@3.22.3(@types/node@24.12.4): dependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 @@ -17389,32 +17685,32 @@ snapshots: nerf-dart@1.0.0: {} - next-auth@5.0.0-beta.31(next@16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5): + next-auth@5.0.0-beta.31(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5): dependencies: '@auth/core': 0.41.2 - next: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + next: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) react: 19.2.5 - next-intl-swc-plugin-extractor@4.11.0: {} + next-intl-swc-plugin-extractor@4.12.0: {} - next-intl@4.11.0(next@16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5)(typescript@5.9.3): + next-intl@4.11.0(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0))(react@19.2.5)(typescript@5.9.3): dependencies: '@formatjs/intl-localematcher': 0.8.1 '@parcel/watcher': 2.4.1 '@swc/core': 1.15.3 - icu-minify: 4.11.0 + icu-minify: 4.12.0 negotiator: 1.0.0 - next: 16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) - next-intl-swc-plugin-extractor: 4.11.0 + next: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0) + next-intl-swc-plugin-extractor: 4.12.0 po-parser: 2.1.1 react: 19.2.5 - use-intl: 4.11.0(react@19.2.5) + use-intl: 4.12.0(react@19.2.5) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - '@swc/helpers' - next@16.2.4(@babel/core@7.26.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0): + next@16.2.4(@babel/core@7.26.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0): dependencies: '@next/env': 16.2.4 '@swc/helpers': 0.5.15 @@ -17433,6 +17729,7 @@ snapshots: '@next/swc-linux-x64-musl': 16.2.4 '@next/swc-win32-arm64-msvc': 16.2.4 '@next/swc-win32-x64-msvc': 16.2.4 + '@playwright/test': 1.60.0 babel-plugin-react-compiler: 1.0.0 sass: 1.99.0 sharp: 0.34.5 @@ -17440,7 +17737,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@16.2.4(@babel/core@7.29.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0): + next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.60.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass@1.99.0): dependencies: '@next/env': 16.2.4 '@swc/helpers': 0.5.15 @@ -17459,6 +17756,7 @@ snapshots: '@next/swc-linux-x64-musl': 16.2.4 '@next/swc-win32-arm64-msvc': 16.2.4 '@next/swc-win32-x64-msvc': 16.2.4 + '@playwright/test': 1.60.0 babel-plugin-react-compiler: 1.0.0 sass: 1.99.0 sharp: 0.34.5 @@ -17466,27 +17764,16 @@ snapshots: - '@babel/core' - babel-plugin-macros - nice-napi@1.0.2: - dependencies: - node-addon-api: 3.2.1 - node-gyp-build: 4.8.4 - optional: true - node-abi@3.67.0: dependencies: semver: 7.7.4 node-abort-controller@3.1.1: {} - node-addon-api@3.2.1: - optional: true - node-addon-api@7.1.1: {} node-addon-api@8.3.1: {} - node-domexception@1.0.0: {} - node-emoji@2.2.0: dependencies: '@sindresorhus/is': 4.6.0 @@ -17494,10 +17781,12 @@ snapshots: emojilib: 2.4.0 skin-tone: 2.0.0 - node-fetch-commonjs@3.3.2: + node-exports-info@1.6.0: dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.3.3 + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 node-fetch-native@1.6.7: {} @@ -17575,14 +17864,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 object.values@1.2.1: dependencies: @@ -17613,7 +17902,7 @@ snapshots: node-fetch-native: 1.6.7 ufo: 1.6.4 - ohash@1.1.4: {} + ohash@1.1.6: {} on-exit-leak-free@2.1.2: {} @@ -17643,7 +17932,7 @@ snapshots: openapi3-ts@4.4.0: dependencies: - yaml: 2.8.4 + yaml: 2.9.0 openid-client@6.3.3: dependencies: @@ -17673,8 +17962,6 @@ snapshots: dependencies: p-map: 7.0.3 - p-is-promise@3.0.0: {} - p-limit@1.3.0: dependencies: p-try: 1.0.0 @@ -17846,9 +18133,9 @@ snapshots: sonic-boom: 4.2.1 thread-stream: 4.0.0 - piscina@4.6.1: + piscina@4.9.2: optionalDependencies: - nice-napi: 1.0.2 + '@napi-rs/nice': 1.1.1 pkcs7@1.0.4: dependencies: @@ -17859,11 +18146,11 @@ snapshots: find-up: 2.1.0 load-json-file: 4.0.0 - playwright-core@1.49.0: {} + playwright-core@1.60.0: {} - playwright@1.49.0: + playwright@1.60.0: dependencies: - playwright-core: 1.49.0 + playwright-core: 1.60.0 optionalDependencies: fsevents: 2.3.2 @@ -17953,7 +18240,7 @@ snapshots: prettier-plugin-packagejson@3.0.2(prettier@3.8.3): dependencies: - sort-package-json: 3.6.0 + sort-package-json: 3.6.1 optionalDependencies: prettier: 3.8.3 @@ -17981,7 +18268,7 @@ snapshots: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - react-is: 19.2.5 + react-is: 19.2.6 proper-lockfile@4.1.2: dependencies: @@ -18081,7 +18368,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 24.12.2 + '@types/node': 24.12.4 long: 5.3.2 proxmox-api@1.1.1: @@ -18178,6 +18465,16 @@ snapshots: react: 19.2.5 scheduler: 0.27.0 + react-dom@19.2.6(react@19.2.5): + dependencies: + react: 19.2.5 + scheduler: 0.27.0 + + react-dom@19.2.6(react@19.2.6): + dependencies: + react: 19.2.6 + scheduler: 0.27.0 + react-dropzone@15.0.0(react@19.2.5): dependencies: attr-accept: 2.2.5 @@ -18204,7 +18501,7 @@ snapshots: dependencies: react: 19.2.5 - react-is@19.2.5: {} + react-is@19.2.6: {} react-markdown@10.1.0(@types/react@19.2.14)(react@19.2.5): dependencies: @@ -18229,6 +18526,16 @@ snapshots: react: 19.2.5 react-dom: 19.2.5(react@19.2.5) + react-number-format@5.4.4(react-dom@19.2.6(react@19.2.5))(react@19.2.5): + dependencies: + react: 19.2.5 + react-dom: 19.2.6(react@19.2.5) + + react-number-format@5.4.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + dependencies: + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-quill-new@3.8.3(quill-delta@5.1.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: lodash-es: 4.17.21 @@ -18256,6 +18563,14 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.6): + dependencies: + react: 19.2.6 + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.6) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + react-remove-scroll@2.7.1(@types/react@19.2.14)(react@19.2.5): dependencies: react: 19.2.5 @@ -18267,13 +18582,24 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + react-remove-scroll@2.7.1(@types/react@19.2.14)(react@19.2.6): + dependencies: + react: 19.2.6 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.6) + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.6) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.6) + use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.6) + optionalDependencies: + '@types/react': 19.2.14 + react-scan@0.0.31: dependencies: '@clack/core': 0.3.5 '@clack/prompts': 0.8.2 kleur: 4.1.5 mri: 1.2.0 - playwright: 1.49.0 + playwright: 1.60.0 react-simple-code-editor@0.14.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: @@ -18288,6 +18614,14 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + react-style-singleton@2.2.3(@types/react@19.2.14)(react@19.2.6): + dependencies: + get-nonce: 1.0.1 + react: 19.2.6 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + react-syntax-highlighter@16.1.0(react@19.2.5): dependencies: '@babel/runtime': 7.29.2 @@ -18307,17 +18641,28 @@ snapshots: transitivePeerDependencies: - '@types/react' - react-transition-group@4.4.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + react-textarea-autosize@8.5.9(@types/react@19.2.14)(react@19.2.6): + dependencies: + '@babel/runtime': 7.29.2 + react: 19.2.6 + use-composed-ref: 1.3.0(react@19.2.6) + use-latest: 1.2.1(@types/react@19.2.14)(react@19.2.6) + transitivePeerDependencies: + - '@types/react' + + react-transition-group@4.4.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: '@babel/runtime': 7.29.2 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) react@19.2.5: {} + react@19.2.6: {} + read-package-up@11.0.0: dependencies: find-up-simple: 1.0.1 @@ -18386,7 +18731,7 @@ snapshots: tiny-invariant: 1.3.3 tslib: 2.8.1 - recharts@3.8.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react-is@19.2.5)(react@19.2.5)(redux@5.0.1): + recharts@3.8.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react-is@19.2.6)(react@19.2.5)(redux@5.0.1): dependencies: '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.14)(react@19.2.5)(redux@5.0.1))(react@19.2.5) clsx: 2.1.1 @@ -18396,7 +18741,7 @@ snapshots: immer: 10.2.0 react: 19.2.5 react-dom: 19.2.5(react@19.2.5) - react-is: 19.2.5 + react-is: 19.2.6 react-redux: 9.2.0(@types/react@19.2.14)(react@19.2.5)(redux@5.0.1) reselect: 5.1.1 tiny-invariant: 1.3.3 @@ -18422,15 +18767,15 @@ snapshots: redux@5.0.1: {} - reflect.getprototypeof@1.0.9: + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - dunder-proto: 1.0.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 + es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 - gopd: 1.2.0 + get-proto: 1.0.1 which-builtin-type: 1.2.1 refractor@5.0.0: @@ -18499,15 +18844,12 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve@1.22.8: + resolve@2.0.0-next.7: dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - resolve@2.0.0-next.5: - dependencies: - is-core-module: 2.16.1 + es-errors: 1.3.0 + is-core-module: 2.16.2 + node-exports-info: 1.6.0 + object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -18565,7 +18907,7 @@ snapshots: '@tsconfig/svelte': 1.0.13 rrweb: 2.0.0-alpha.4 - rrweb-snapshot@2.0.0-alpha.17: + rrweb-snapshot@2.0.0-alpha.20: dependencies: postcss: 8.5.8 @@ -18590,9 +18932,9 @@ snapshots: dependencies: tslib: 2.8.1 - safe-array-concat@1.1.3: + safe-array-concat@1.1.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 has-symbols: 1.1.0 @@ -18656,9 +18998,9 @@ snapshots: dependencies: '@semantic-release/commit-analyzer': 13.0.1(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 12.0.6(semantic-release@25.0.3(typescript@5.9.3)) + '@semantic-release/github': 12.0.8(semantic-release@25.0.3(typescript@5.9.3)) '@semantic-release/npm': 13.1.5(semantic-release@25.0.3(typescript@5.9.3)) - '@semantic-release/release-notes-generator': 14.1.0(semantic-release@25.0.3(typescript@5.9.3)) + '@semantic-release/release-notes-generator': 14.1.1(semantic-release@25.0.3(typescript@5.9.3)) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.9.3) debug: 4.4.3 @@ -18838,42 +19180,42 @@ snapshots: smart-buffer@4.2.0: {} - socket.io-adapter@2.5.5: + socket.io-adapter@2.5.6: dependencies: - debug: 4.3.7 - ws: 8.17.1 + debug: 4.4.3 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - socket.io-client@4.7.5: + socket.io-client@4.8.3: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 - engine.io-client: 6.5.4 - socket.io-parser: 4.2.4 + debug: 4.4.3 + engine.io-client: 6.6.4 + socket.io-parser: 4.2.6 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - socket.io-parser@4.2.4: + socket.io-parser@4.2.6: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 + debug: 4.4.3 transitivePeerDependencies: - supports-color - socket.io@4.8.1: + socket.io@4.8.3: dependencies: accepts: 1.3.8 base64id: 2.0.0 - cors: 2.8.5 - debug: 4.3.7 - engine.io: 6.6.2 - socket.io-adapter: 2.5.5 - socket.io-parser: 4.2.4 + cors: 2.8.6 + debug: 4.4.3 + engine.io: 6.6.7 + socket.io-adapter: 2.5.6 + socket.io-parser: 4.2.6 transitivePeerDependencies: - bufferutil - supports-color @@ -18896,16 +19238,16 @@ snapshots: dependencies: atomic-sleep: 1.0.0 - sort-object-keys@2.0.1: {} + sort-object-keys@2.1.0: {} - sort-package-json@3.6.0: + sort-package-json@3.6.1: dependencies: detect-indent: 7.0.2 detect-newline: 4.0.1 - git-hooks-list: 4.1.1 + git-hooks-list: 4.2.1 is-plain-obj: 4.1.0 semver: 7.7.4 - sort-object-keys: 2.0.1 + sort-object-keys: 2.1.0 tinyglobby: 0.2.15 source-map-js@1.2.1: {} @@ -19015,14 +19357,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -19036,7 +19378,7 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 string.prototype.trim@1.2.10: dependencies: @@ -19044,7 +19386,7 @@ snapshots: call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 @@ -19092,7 +19434,7 @@ snapshots: strip-json-comments@2.0.1: {} - strnum@2.2.3: {} + strnum@2.3.0: {} style-to-js@1.1.16: dependencies: @@ -19155,7 +19497,7 @@ snapshots: deep-rename-keys: 0.2.1 xml-reader: 2.4.3 - swagger-client@3.37.3: + swagger-client@3.37.4: dependencies: '@babel/runtime-corejs3': 7.27.1 '@scarf/scarf': 1.4.0 @@ -19171,7 +19513,6 @@ snapshots: js-yaml: 4.1.1 neotraverse: 0.6.18 node-abort-controller: 3.1.1 - node-fetch-commonjs: 3.3.2 openapi-path-templating: 2.2.1 openapi-server-url-templating: 1.3.0 ramda: 0.30.1 @@ -19179,7 +19520,7 @@ snapshots: transitivePeerDependencies: - debug - swagger-ui-react@5.32.5(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + swagger-ui-react@5.32.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: '@babel/runtime-corejs3': 7.27.1 '@scarf/scarf': 1.4.0 @@ -19188,7 +19529,7 @@ snapshots: classnames: 2.5.1 css.escape: 1.5.1 deep-extend: 0.6.0 - dompurify: 3.4.2 + dompurify: 3.4.5 ieee754: 1.2.1 immutable: 3.8.2 js-file-download: 0.4.12 @@ -19212,7 +19553,7 @@ snapshots: reselect: 5.1.1 serialize-error: 8.1.0 sha.js: 2.4.12 - swagger-client: 3.37.3 + swagger-client: 3.37.4 url-parse: 1.5.10 xml: 1.0.1 xml-but-prettier: 1.0.1 @@ -19453,7 +19794,7 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tsdav@2.2.0: + tsdav@2.2.2: dependencies: base-64: 1.0.0 debug: 4.4.3 @@ -19485,14 +19826,14 @@ snapshots: tunnel@0.0.6: {} - turbo@2.9.8: + turbo@2.9.14: optionalDependencies: - '@turbo/darwin-64': 2.9.8 - '@turbo/darwin-arm64': 2.9.8 - '@turbo/linux-64': 2.9.8 - '@turbo/linux-arm64': 2.9.8 - '@turbo/windows-64': 2.9.8 - '@turbo/windows-arm64': 2.9.8 + '@turbo/darwin-64': 2.9.14 + '@turbo/darwin-arm64': 2.9.14 + '@turbo/linux-64': 2.9.14 + '@turbo/linux-arm64': 2.9.14 + '@turbo/windows-64': 2.9.14 + '@turbo/windows-arm64': 2.9.14 tweetnacl@0.14.5: {} @@ -19539,7 +19880,7 @@ snapshots: gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.9 + reflect.getprototypeof: 1.0.10 typed-array-length@1.0.7: dependencies: @@ -19548,7 +19889,7 @@ snapshots: gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.9 + reflect.getprototypeof: 1.0.10 typedarray-to-buffer@3.1.5: dependencies: @@ -19558,13 +19899,13 @@ snapshots: dependencies: ts-toolbelt: 9.6.0 - typescript-eslint@8.58.2(eslint@10.3.0)(typescript@5.9.3): + typescript-eslint@8.59.3(eslint@10.4.0)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.3.0)(typescript@5.9.3))(eslint@10.3.0)(typescript@5.9.3) - '@typescript-eslint/parser': 8.58.2(eslint@10.3.0)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.3.0)(typescript@5.9.3) - eslint: 10.3.0 + '@typescript-eslint/eslint-plugin': 8.59.3(@typescript-eslint/parser@8.59.3(eslint@10.4.0)(typescript@5.9.3))(eslint@10.4.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.59.3(eslint@10.4.0)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.3(eslint@10.4.0)(typescript@5.9.3) + eslint: 10.4.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -19581,7 +19922,7 @@ snapshots: unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 - has-bigints: 1.0.2 + has-bigints: 1.1.0 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 @@ -19652,12 +19993,10 @@ snapshots: unpipe@1.0.0: {} - unplugin@1.14.1(webpack-sources@3.3.4): + unplugin@1.16.1: dependencies: acorn: 8.16.0 webpack-virtual-modules: 0.6.2 - optionalDependencies: - webpack-sources: 3.3.4 unraw@3.0.0: {} @@ -19667,7 +20006,7 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - update-notifier-cjs@5.1.6: + update-notifier-cjs@5.1.7: dependencies: boxen: 5.1.2 chalk: 4.1.2 @@ -19708,21 +20047,32 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.6): + dependencies: + react: 19.2.6 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + use-composed-ref@1.3.0(react@19.2.5): dependencies: react: 19.2.5 + use-composed-ref@1.3.0(react@19.2.6): + dependencies: + react: 19.2.6 + use-deep-compare-effect@1.8.1(react@19.2.5): dependencies: '@babel/runtime': 7.29.2 dequal: 2.0.3 react: 19.2.5 - use-intl@4.11.0(react@19.2.5): + use-intl@4.12.0(react@19.2.5): dependencies: '@formatjs/fast-memoize': 3.1.0 '@schummar/icu-type-parser': 1.21.5 - icu-minify: 4.11.0 + icu-minify: 4.12.0 intl-messageformat: 11.1.1 react: 19.2.5 @@ -19732,6 +20082,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + use-isomorphic-layout-effect@1.1.2(@types/react@19.2.14)(react@19.2.6): + dependencies: + react: 19.2.6 + optionalDependencies: + '@types/react': 19.2.14 + use-latest@1.2.1(@types/react@19.2.14)(react@19.2.5): dependencies: react: 19.2.5 @@ -19739,6 +20095,13 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + use-latest@1.2.1(@types/react@19.2.14)(react@19.2.6): + dependencies: + react: 19.2.6 + use-isomorphic-layout-effect: 1.1.2(@types/react@19.2.14)(react@19.2.6) + optionalDependencies: + '@types/react': 19.2.14 + use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.5): dependencies: detect-node-es: 1.1.0 @@ -19747,6 +20110,14 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.6): + dependencies: + detect-node-es: 1.1.0 + react: 19.2.6 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + use-sync-external-store@1.4.0(react@19.2.5): dependencies: react: 19.2.5 @@ -19817,17 +20188,17 @@ snapshots: dependencies: global: 4.4.0 - vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.9.3) - vite: 7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4) + vite: 7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4): + vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.4) @@ -19836,23 +20207,23 @@ snapshots: rollup: 4.60.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.12.2 + '@types/node': 24.12.4 fsevents: 2.3.3 sass: 1.99.0 sugarss: 5.0.0(postcss@8.5.8) terser: 5.46.1 tsx: 4.21.0 - yaml: 2.8.4 + yaml: 2.9.0 - vitest@4.1.5(@types/node@24.12.2)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4)): + vitest@4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(@vitest/ui@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.5 - '@vitest/mocker': 4.1.5(vite@7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4)) - '@vitest/pretty-format': 4.1.5 - '@vitest/runner': 4.1.5 - '@vitest/snapshot': 4.1.5 - '@vitest/spy': 4.1.5 - '@vitest/utils': 4.1.5 + '@vitest/expect': 4.1.6 + '@vitest/mocker': 4.1.6(vite@7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.6 + '@vitest/runner': 4.1.6 + '@vitest/snapshot': 4.1.6 + '@vitest/spy': 4.1.6 + '@vitest/utils': 4.1.6 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -19864,12 +20235,12 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 7.1.12(@types/node@24.12.2)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.4) + vite: 7.1.12(@types/node@24.12.4)(sass@1.99.0)(sugarss@5.0.0(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.12.2 - '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) - '@vitest/ui': 4.1.5(vitest@4.1.5) + '@types/node': 24.12.4 + '@vitest/coverage-v8': 4.1.6(vitest@4.1.6) + '@vitest/ui': 4.1.6(vitest@4.1.6) jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: - msw @@ -19885,8 +20256,6 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - web-streams-polyfill@3.3.3: {} - web-tree-sitter@0.24.5: optional: true @@ -19948,7 +20317,7 @@ snapshots: which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 - is-boolean-object: 1.2.1 + is-boolean-object: 1.2.2 is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 @@ -19958,10 +20327,10 @@ snapshots: call-bound: 1.0.4 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 - is-async-function: 2.0.0 + is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.0.10 + is-generator-function: 1.1.2 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 @@ -19974,7 +20343,7 @@ snapshots: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 - is-weakset: 2.0.3 + is-weakset: 2.0.4 which-typed-array@1.1.19: dependencies: @@ -20061,9 +20430,9 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - ws@8.17.1: {} + ws@8.18.3: {} - ws@8.20.0: {} + ws@8.20.1: {} xcase@2.0.1: {} @@ -20083,6 +20452,8 @@ snapshots: xml-name-validator@5.0.0: {} + xml-naming@0.1.0: {} + xml-reader@2.4.3: dependencies: eventemitter3: 2.0.3 @@ -20099,7 +20470,7 @@ snapshots: xmlchars@2.2.0: {} - xmlhttprequest-ssl@2.0.0: {} + xmlhttprequest-ssl@2.1.2: {} xtend@4.0.2: {} @@ -20111,6 +20482,8 @@ snapshots: yaml@2.8.4: {} + yaml@2.9.0: {} + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {}