diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 19e58ce01..e96583d5d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -31,6 +31,7 @@ body: label: Version description: What version of Homarr are you running? options: + - 1.21.0 - 1.20.0 - 1.19.1 - 1.19.0 diff --git a/apps/nextjs/next.config.ts b/apps/nextjs/next.config.ts index d88dac644..870dc1924 100644 --- a/apps/nextjs/next.config.ts +++ b/apps/nextjs/next.config.ts @@ -49,6 +49,33 @@ const nextConfig: NextConfig = { images: { domains: ["cdn.jsdelivr.net"], }, + // eslint-disable-next-line @typescript-eslint/require-await,no-restricted-syntax + async headers() { + return [ + { + source: "/(.*)", // Apply CSP to all routes + headers: [ + { + key: "Content-Security-Policy", + value: ` + default-src 'self'; + script-src * 'unsafe-inline' 'unsafe-eval'; + base-uri 'self'; + connect-src *; + style-src 'self' 'unsafe-inline'; + frame-ancestors *; + frame-src *; + form-action 'self'; + img-src * data:; + font-src * data:; + ` + .replace(/\s{2,}/g, " ") + .trim(), + }, + ], + }, + ]; + }, }; // Skip transform is used because of webpack loader, without it for example 'Tooltip.Floating' will not work and show an error diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index d46d8a7b5..d81c059e1 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -48,21 +48,21 @@ "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", "@homarr/widgets": "workspace:^0.1.0", - "@mantine/colors-generator": "^8.0.1", - "@mantine/core": "^8.0.1", - "@mantine/dropzone": "^8.0.1", - "@mantine/hooks": "^8.0.1", - "@mantine/modals": "^8.0.1", - "@mantine/tiptap": "^8.0.1", + "@mantine/colors-generator": "^8.0.2", + "@mantine/core": "^8.0.2", + "@mantine/dropzone": "^8.0.2", + "@mantine/hooks": "^8.0.2", + "@mantine/modals": "^8.0.2", + "@mantine/tiptap": "^8.0.2", "@million/lint": "1.0.14", "@tabler/icons-react": "^3.33.0", - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", - "@tanstack/react-query-next-experimental": "^5.76.2", - "@trpc/client": "^11.1.2", - "@trpc/next": "^11.1.2", - "@trpc/react-query": "^11.1.2", - "@trpc/server": "^11.1.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query-next-experimental": "^5.79.0", + "@trpc/client": "^11.1.4", + "@trpc/next": "^11.1.4", + "@trpc/react-query": "^11.1.4", + "@trpc/server": "^11.1.4", "@xterm/addon-canvas": "^0.7.0", "@xterm/addon-fit": "0.10.0", "@xterm/xterm": "^5.5.0", @@ -70,11 +70,11 @@ "clsx": "^2.1.1", "dayjs": "^1.11.13", "dotenv": "^16.5.0", - "flag-icons": "^7.3.2", + "flag-icons": "^7.5.0", "glob": "^11.0.2", - "jotai": "^2.12.4", + "jotai": "^2.12.5", "mantine-react-table": "2.0.0-beta.9", - "next": "15.3.2", + "next": "15.3.3", "postcss-preset-mantine": "^1.17.0", "prismjs": "^1.30.0", "react": "19.1.0", @@ -85,16 +85,16 @@ "superjson": "2.2.2", "swagger-ui-react": "^5.22.0", "use-deep-compare-effect": "^1.8.1", - "zod": "^3.25.23" + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/chroma-js": "3.1.1", - "@types/node": "^22.15.21", + "@types/node": "^22.15.28", "@types/prismjs": "^1.26.5", - "@types/react": "19.1.5", + "@types/react": "19.1.6", "@types/react-dom": "19.1.5", "@types/swagger-ui-react": "^5.18.0", "concurrently": "^9.1.2", diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx index 5be662f0f..883fce49a 100644 --- a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx +++ b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx @@ -1,6 +1,5 @@ "use client"; -import type { MouseEvent } from "react"; import { useCallback, useEffect } from "react"; import Link from "next/link"; import { useRouter } from "next/navigation"; @@ -204,17 +203,22 @@ const SelectBoardsMenu = () => { ); }; +const anchorSelector = "a[href]:not([target='_blank'])"; const usePreventLeaveWithDirty = (isDirty: boolean) => { const t = useI18n(); const { openConfirmModal } = useConfirmModal(); const router = useRouter(); useEffect(() => { - const handleClick = (event: MouseEvent) => { + if (!isDirty) return; + + const handleClick = (event: Event) => { const target = (event.target as HTMLElement).closest("a"); - if (!target) return; - if (!isDirty) return; + if (!target) { + console.warn("No anchor element found for click event", event); + return; + } event.preventDefault(); @@ -231,33 +235,29 @@ const usePreventLeaveWithDirty = (isDirty: boolean) => { }; const handlePopState = (event: Event) => { - if (isDirty) { - window.history.pushState(null, document.title, window.location.href); - event.preventDefault(); - } else { - window.history.back(); - } + window.history.pushState(null, document.title, window.location.href); + event.preventDefault(); }; const handleBeforeUnload = (event: BeforeUnloadEvent) => { - if (!isDirty) return; if (env.NODE_ENV === "development") return; // Allow to reload in development event.preventDefault(); event.returnValue = true; }; - document.querySelectorAll("a").forEach((link) => { - link.addEventListener("click", handleClick as never); + const anchors = document.querySelectorAll(anchorSelector); + anchors.forEach((link) => { + link.addEventListener("click", handleClick); }); window.addEventListener("popstate", handlePopState); window.addEventListener("beforeunload", handleBeforeUnload); return () => { - document.querySelectorAll("a").forEach((link) => { - link.removeEventListener("click", handleClick as never); - window.removeEventListener("popstate", handlePopState); + anchors.forEach((link) => { + link.removeEventListener("click", handleClick); }); + window.removeEventListener("popstate", handlePopState); window.removeEventListener("beforeunload", handleBeforeUnload); }; // eslint-disable-next-line react-hooks/exhaustive-deps diff --git a/apps/nextjs/src/middleware.ts b/apps/nextjs/src/middleware.ts index 1c988399b..453b7b783 100644 --- a/apps/nextjs/src/middleware.ts +++ b/apps/nextjs/src/middleware.ts @@ -5,25 +5,36 @@ import SuperJSON from "superjson"; import type { AppRouter } from "@homarr/api"; import { createHeadersCallbackForSource, getTrpcUrl } from "@homarr/api/shared"; +import { localeCookieKey } from "@homarr/definitions"; +import type { SupportedLanguage } from "@homarr/translation"; +import { supportedLanguages } from "@homarr/translation"; import { createI18nMiddleware } from "@homarr/translation/middleware"; -export async function middleware(request: NextRequest) { - // fetch api does not work because window is not defined and we need to construct the url from the headers - // In next 15 we will be able to use node apis and such the db directly - const culture = await serverFetchApi.serverSettings.getCulture.query(); +let isOnboardingFinished = false; +export async function middleware(request: NextRequest) { // Redirect to onboarding if it's not finished yet const pathname = request.nextUrl.pathname; - if (!pathname.endsWith("/init")) { + + if (!isOnboardingFinished && !pathname.endsWith("/init")) { const currentOnboardingStep = await serverFetchApi.onboard.currentStep.query(); if (currentOnboardingStep.current !== "finish") { return NextResponse.redirect(new URL("/init", request.url)); } + + isOnboardingFinished = true; + } + + // Only run this if the user has not already configured their language + const currentLocale = request.cookies.get(localeCookieKey)?.value; + let defaultLocale: SupportedLanguage = "en"; + if (!currentLocale || !supportedLanguages.includes(currentLocale as SupportedLanguage)) { + defaultLocale = await serverFetchApi.serverSettings.getCulture.query().then((culture) => culture.defaultLocale); } // We don't want to fallback to accept-language header so we clear it request.headers.set("accept-language", ""); - const next = createI18nMiddleware(culture.defaultLocale); + const next = createI18nMiddleware(defaultLocale); return next(request); } diff --git a/apps/tasks/package.json b/apps/tasks/package.json index 7f5b890bf..d17348f7b 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -44,9 +44,9 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node": "^22.15.21", + "@types/node": "^22.15.28", "dotenv-cli": "^8.0.0", - "esbuild": "^0.25.4", + "esbuild": "^0.25.5", "eslint": "^9.27.0", "prettier": "^3.5.3", "tsx": "4.19.4", diff --git a/apps/websocket/package.json b/apps/websocket/package.json index 5bdd33ba0..b1295c361 100644 --- a/apps/websocket/package.json +++ b/apps/websocket/package.json @@ -34,7 +34,7 @@ "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/ws": "^8.18.1", - "esbuild": "^0.25.4", + "esbuild": "^0.25.5", "eslint": "^9.27.0", "prettier": "^3.5.3", "typescript": "^5.8.3" diff --git a/docs/README.md b/docs/README.md index 69f501437..00dc4fd81 100644 --- a/docs/README.md +++ b/docs/README.md @@ -120,4 +120,6 @@ You can also support us by helping with [translating the entire project](https:/ Thanks to your generous sponsors we can continue to build Homarr. Check them out for high quality and easy to use development tools. Feel free to contact us at homarr-labs@proton.me if you wish to become a sponsor. -[![Covered by Argos Visual Testing](https://argos-ci.com/badge-large.svg)](https://argos-ci.com?utm_source=%5Bhomarr%5D&utm_campaign=oss) +[![Covered by Argos Visual Testing](https://argos-ci.com/badge-large.svg)](https://argos-ci.com?utm_source=%5Bhomarr%5D&utm_campaign=oss) \ +[![Supported by PikaPods](https://www.pikapods.com/static/run-button.svg)](https://www.pikapods.com/pods?run=homarr-v1) + diff --git a/package.json b/package.json index 0492c99de..998bb91b2 100644 --- a/package.json +++ b/package.json @@ -35,20 +35,20 @@ "@semantic-release/changelog": "^6.0.3", "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^11.0.2", + "@semantic-release/github": "^11.0.3", "@semantic-release/npm": "^12.0.1", "@semantic-release/release-notes-generator": "^14.0.3", - "@turbo/gen": "^2.5.3", + "@turbo/gen": "^2.5.4", "@vitejs/plugin-react": "^4.5.0", "@vitest/coverage-v8": "^3.1.4", "@vitest/ui": "^3.1.4", - "conventional-changelog-conventionalcommits": "^8.0.0", + "conventional-changelog-conventionalcommits": "^9.0.0", "cross-env": "^7.0.3", "jsdom": "^26.1.0", "prettier": "^3.5.3", - "semantic-release": "^24.2.4", + "semantic-release": "^24.2.5", "testcontainers": "^10.28.0", - "turbo": "^2.5.3", + "turbo": "^2.5.4", "typescript": "^5.8.3", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.1.4" diff --git a/packages/api/package.json b/packages/api/package.json index 903b9e723..540c377c6 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -40,19 +40,19 @@ "@homarr/request-handler": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@kubernetes/client-node": "^1.2.0", - "@tanstack/react-query": "^5.76.2", - "@trpc/client": "^11.1.2", - "@trpc/react-query": "^11.1.2", - "@trpc/server": "^11.1.2", - "@trpc/tanstack-react-query": "^11.1.2", + "@kubernetes/client-node": "^1.3.0", + "@tanstack/react-query": "^5.79.0", + "@trpc/client": "^11.1.4", + "@trpc/react-query": "^11.1.4", + "@trpc/server": "^11.1.4", + "@trpc/tanstack-react-query": "^11.1.4", "lodash.clonedeep": "^4.5.0", - "next": "15.3.2", + "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0", "superjson": "2.2.2", - "trpc-to-openapi": "^2.2.0", - "zod": "^3.25.23" + "trpc-to-openapi": "^2.3.1", + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/api/src/router/search-engine/search-engine-router.ts b/packages/api/src/router/search-engine/search-engine-router.ts index b513b4ec2..f219d34f4 100644 --- a/packages/api/src/router/search-engine/search-engine-router.ts +++ b/packages/api/src/router/search-engine/search-engine-router.ts @@ -2,9 +2,10 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { asc, createId, eq, like } from "@homarr/db"; -import { getServerSettingByKeyAsync } from "@homarr/db/queries"; +import { getServerSettingByKeyAsync, updateServerSettingByKeyAsync } from "@homarr/db/queries"; import { searchEngines, users } from "@homarr/db/schema"; import { createIntegrationAsync } from "@homarr/integrations"; +import { logger } from "@homarr/log"; import { byIdSchema, paginatedSchema, searchSchema } from "@homarr/validation/common"; import { searchEngineEditSchema, searchEngineManageSchema } from "@homarr/validation/search-engine"; import { mediaRequestOptionsSchema, mediaRequestRequestSchema } from "@homarr/validation/widgets/media-request"; @@ -96,23 +97,35 @@ export const searchEngineRouter = createTRPCRouter({ }); } - const serverDefaultId = await getServerSettingByKeyAsync(ctx.db, "search").then( - (setting) => setting.defaultSearchEngineId, - ); + const searchSettings = await getServerSettingByKeyAsync(ctx.db, "search"); - if (serverDefaultId) { - return await ctx.db.query.searchEngines.findFirst({ - where: eq(searchEngines.id, serverDefaultId), - with: { - integration: { - columns: { - kind: true, - url: true, - id: true, - }, + if (!searchSettings.defaultSearchEngineId) return null; + + const serverDefault = await ctx.db.query.searchEngines.findFirst({ + where: eq(searchEngines.id, searchSettings.defaultSearchEngineId), + with: { + integration: { + columns: { + kind: true, + url: true, + id: true, }, }, + }, + }); + + if (serverDefault) return serverDefault; + + // Remove the default search engine ID from settings if it does not longer exist + try { + await updateServerSettingByKeyAsync(ctx.db, "search", { + ...searchSettings, + defaultSearchEngineId: null, }); + } catch (error) { + logger.warn( + new Error("Failed to update search settings after default search engine not found", { cause: error }), + ); } return null; diff --git a/packages/api/src/router/widgets/downloads.ts b/packages/api/src/router/widgets/downloads.ts index 5387da62f..4a3b0dab5 100644 --- a/packages/api/src/router/widgets/downloads.ts +++ b/packages/api/src/router/widgets/downloads.ts @@ -19,10 +19,11 @@ const createDownloadClientIntegrationMiddleware = (action: IntegrationAction) => export const downloadsRouter = createTRPCRouter({ getJobsAndStatuses: publicProcedure .concat(createDownloadClientIntegrationMiddleware("query")) - .query(async ({ ctx }) => { + .input(z.object({ limitPerIntegration: z.number().default(50) })) + .query(async ({ ctx, input }) => { return await Promise.all( ctx.integrations.map(async (integration) => { - const innerHandler = downloadClientRequestHandler.handler(integration, {}); + const innerHandler = downloadClientRequestHandler.handler(integration, { limit: input.limitPerIntegration }); const { data, timestamp } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false }); @@ -40,7 +41,8 @@ export const downloadsRouter = createTRPCRouter({ }), subscribeToJobsAndStatuses: publicProcedure .concat(createDownloadClientIntegrationMiddleware("query")) - .subscription(({ ctx }) => { + .input(z.object({ limitPerIntegration: z.number().default(50) })) + .subscription(({ ctx, input }) => { return observable<{ integration: Modify }>; data: DownloadClientJobsAndStatus; @@ -48,7 +50,9 @@ export const downloadsRouter = createTRPCRouter({ const unsubscribes: (() => void)[] = []; for (const integrationWithSecrets of ctx.integrations) { const { decryptedSecrets: _, ...integration } = integrationWithSecrets; - const innerHandler = downloadClientRequestHandler.handler(integrationWithSecrets, {}); + const innerHandler = downloadClientRequestHandler.handler(integrationWithSecrets, { + limit: input.limitPerIntegration, + }); const unsubscribe = innerHandler.subscribe((data) => { emit.next({ integration, diff --git a/packages/auth/package.json b/packages/auth/package.json index c4cc95c61..7184e6869 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -34,12 +34,12 @@ "@homarr/validation": "workspace:^0.1.0", "bcrypt": "^6.0.0", "cookies": "^0.9.1", - "ldapts": "8.0.0", - "next": "15.3.2", + "ldapts": "8.0.1", + "next": "15.3.3", "next-auth": "5.0.0-beta.28", "react": "19.1.0", "react-dom": "19.1.0", - "zod": "^3.25.23" + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/auth/permissions/board-permissions.ts b/packages/auth/permissions/board-permissions.ts index 6d5591cf2..8dd0bab2c 100644 --- a/packages/auth/permissions/board-permissions.ts +++ b/packages/auth/permissions/board-permissions.ts @@ -23,21 +23,22 @@ export type BoardPermissionsProps = ( export const constructBoardPermissions = (board: BoardPermissionsProps, session: Session | null) => { const creatorId = "creator" in board ? board.creator?.id : board.creatorId; + const isCreator = session !== null && session.user.id === creatorId; return { hasFullAccess: - session?.user.id === creatorId || + isCreator || board.userPermissions.some(({ permission }) => permission === "full") || board.groupPermissions.some(({ permission }) => permission === "full") || (session?.user.permissions.includes("board-full-all") ?? false), hasChangeAccess: - session?.user.id === creatorId || + isCreator || board.userPermissions.some(({ permission }) => permission === "modify" || permission === "full") || board.groupPermissions.some(({ permission }) => permission === "modify" || permission === "full") || (session?.user.permissions.includes("board-modify-all") ?? false) || (session?.user.permissions.includes("board-full-all") ?? false), hasViewAccess: - session?.user.id === creatorId || + isCreator || board.userPermissions.length >= 1 || board.groupPermissions.length >= 1 || board.isPublic || diff --git a/packages/auth/permissions/test/board-permissions.spec.ts b/packages/auth/permissions/test/board-permissions.spec.ts index f897491ae..ee7752c20 100644 --- a/packages/auth/permissions/test/board-permissions.spec.ts +++ b/packages/auth/permissions/test/board-permissions.spec.ts @@ -286,4 +286,22 @@ describe("constructBoardPermissions", () => { expect(result.hasChangeAccess).toBe(false); expect(result.hasViewAccess).toBe(true); }); + test("should return all false when creator is null and session is null", () => { + // Arrange + const board = { + creator: null, + userPermissions: [], + groupPermissions: [], + isPublic: false, + }; + const session = null; + + // Act + const result = constructBoardPermissions(board, session); + + // Assert + expect(result.hasFullAccess).toBe(false); + expect(result.hasChangeAccess).toBe(false); + expect(result.hasViewAccess).toBe(false); + }); }); diff --git a/packages/cli/package.json b/packages/cli/package.json index 95e2a2252..5fb5e0673 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -34,7 +34,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "esbuild": "^0.25.4", + "esbuild": "^0.25.5", "eslint": "^9.27.0", "typescript": "^5.8.3" } diff --git a/packages/common/package.json b/packages/common/package.json index 6c29db5f3..b86348e92 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -30,11 +30,11 @@ "@homarr/env": "workspace:^0.1.0", "@homarr/log": "workspace:^0.1.0", "dayjs": "^1.11.13", - "next": "15.3.2", + "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0", "undici": "7.10.0", - "zod": "^3.25.23", + "zod": "^3.25.42", "zod-validation-error": "^3.4.1" }, "devDependencies": { diff --git a/packages/common/src/fetch-agent.ts b/packages/common/src/fetch-agent.ts index f19a866af..f09261848 100644 --- a/packages/common/src/fetch-agent.ts +++ b/packages/common/src/fetch-agent.ts @@ -24,7 +24,7 @@ export class LoggingAgent extends Agent { url.searchParams.set(key, "REDACTED"); }); - logger.info( + logger.debug( `Dispatching request ${url.toString().replaceAll("=&", "&")} (${Object.keys(options.headers ?? {}).length} headers)`, ); return super.dispatch(options, handler); diff --git a/packages/common/src/test/fetch-agent.spec.ts b/packages/common/src/test/fetch-agent.spec.ts index 064335018..12cb8040d 100644 --- a/packages/common/src/test/fetch-agent.spec.ts +++ b/packages/common/src/test/fetch-agent.spec.ts @@ -21,7 +21,7 @@ const REDACTED = "REDACTED"; describe("LoggingAgent should log all requests", () => { test("should log all requests", () => { // Arrange - const infoLogSpy = vi.spyOn(logger, "info"); + const infoLogSpy = vi.spyOn(logger, "debug"); const agent = new LoggingAgent(); // Act @@ -33,7 +33,7 @@ describe("LoggingAgent should log all requests", () => { test("should show amount of headers", () => { // Arrange - const infoLogSpy = vi.spyOn(logger, "info"); + const infoLogSpy = vi.spyOn(logger, "debug"); const agent = new LoggingAgent(); // Act @@ -68,7 +68,7 @@ describe("LoggingAgent should log all requests", () => { [`/?stringWith13Chars=${"a".repeat(13)}`, `/?stringWith13Chars=${REDACTED}`], ])("should redact sensitive data in url https://homarr.dev%s", (path, expected) => { // Arrange - const infoLogSpy = vi.spyOn(logger, "info"); + const infoLogSpy = vi.spyOn(logger, "debug"); const agent = new LoggingAgent(); // Act @@ -87,7 +87,7 @@ describe("LoggingAgent should log all requests", () => { ["date times", "/?datetime=2022-01-01T00:00:00.000Z"], ])("should not redact values that are %s", (_reason, path) => { // Arrange - const infoLogSpy = vi.spyOn(logger, "info"); + const infoLogSpy = vi.spyOn(logger, "debug"); const agent = new LoggingAgent(); // Act diff --git a/packages/cron-job-runner/src/register.ts b/packages/cron-job-runner/src/register.ts index a58eb72a0..f97c56718 100644 --- a/packages/cron-job-runner/src/register.ts +++ b/packages/cron-job-runner/src/register.ts @@ -7,6 +7,6 @@ import { cronJobRunnerChannel } from "."; */ export const registerCronJobRunner = () => { cronJobRunnerChannel.subscribe((jobName) => { - jobGroup.runManually(jobName); + void jobGroup.runManuallyAsync(jobName); }); }; diff --git a/packages/cron-jobs-core/package.json b/packages/cron-jobs-core/package.json index 82b72ee75..12ff380fd 100644 --- a/packages/cron-jobs-core/package.json +++ b/packages/cron-jobs-core/package.json @@ -25,7 +25,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/common": "workspace:^0.1.0", - "node-cron": "^3.0.3" + "node-cron": "^4.0.7" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/cron-jobs-core/src/creator.ts b/packages/cron-jobs-core/src/creator.ts index 56b92c34a..aefdb66f0 100644 --- a/packages/cron-jobs-core/src/creator.ts +++ b/packages/cron-jobs-core/src/creator.ts @@ -1,5 +1,6 @@ import { AxiosError } from "axios"; -import cron from "node-cron"; +import type { ScheduledTask } from "node-cron"; +import { schedule, validate } from "node-cron"; import { Stopwatch } from "@homarr/common"; import type { MaybePromise } from "@homarr/common/types"; @@ -27,7 +28,7 @@ const createCallback = , ) => { - const expectedMaximumDurationInMillis = options.expectedMaximumDurationInMillis ?? 1000; + const expectedMaximumDurationInMillis = options.expectedMaximumDurationInMillis ?? 2500; return (callback: () => MaybePromise) => { const catchingCallbackAsync = async () => { try { @@ -64,12 +65,11 @@ const createCallback = void catchingCallbackAsync(), { - scheduled: false, + scheduledTask = schedule(cronExpression, () => void catchingCallbackAsync(), { name, timezone: creatorOptions.timezone, }); @@ -110,7 +110,7 @@ export const createCronJobCreator = ( options: CreateCronJobOptions = { runOnStart: false }, ) => { creatorOptions.logger.logDebug(`Validating cron expression '${cronExpression}' for job: ${name}`); - if (cronExpression !== "never" && !cron.validate(cronExpression)) { + if (cronExpression !== "never" && !validate(cronExpression)) { throw new Error(`Invalid cron expression '${cronExpression}' for job '${name}'`); } creatorOptions.logger.logDebug(`Cron job expression '${cronExpression}' for job ${name} is valid`); diff --git a/packages/cron-jobs-core/src/group.ts b/packages/cron-jobs-core/src/group.ts index af68ed566..d51143cd3 100644 --- a/packages/cron-jobs-core/src/group.ts +++ b/packages/cron-jobs-core/src/group.ts @@ -34,33 +34,33 @@ export const createJobGroupCreator = ( options.logger.logInfo(`Starting schedule cron job ${job.name}.`); await job.onStartAsync(); - job.scheduledTask?.start(); + await job.scheduledTask?.start(); }, startAllAsync: async () => { for (const job of jobRegistry.values()) { options.logger.logInfo(`Starting schedule of cron job ${job.name}.`); await job.onStartAsync(); - job.scheduledTask?.start(); + await job.scheduledTask?.start(); } }, - runManually: (name: keyof TJobs) => { + runManuallyAsync: async (name: keyof TJobs) => { const job = jobRegistry.get(name as string); if (!job) return; options.logger.logInfo(`Running schedule cron job ${job.name} manually.`); - job.scheduledTask?.now(); + await job.scheduledTask?.execute(); }, - stop: (name: keyof TJobs) => { + stopAsync: async (name: keyof TJobs) => { const job = jobRegistry.get(name as string); if (!job) return; options.logger.logInfo(`Stopping schedule cron job ${job.name}.`); - job.scheduledTask?.stop(); + await job.scheduledTask?.stop(); }, - stopAll: () => { + stopAllAsync: async () => { for (const job of jobRegistry.values()) { options.logger.logInfo(`Stopping schedule cron job ${job.name}.`); - job.scheduledTask?.stop(); + await job.scheduledTask?.stop(); } }, getJobRegistry() { diff --git a/packages/cron-jobs/src/jobs/integrations/downloads.ts b/packages/cron-jobs/src/jobs/integrations/downloads.ts index e7d010d65..54eb476dc 100644 --- a/packages/cron-jobs/src/jobs/integrations/downloads.ts +++ b/packages/cron-jobs/src/jobs/integrations/downloads.ts @@ -8,7 +8,9 @@ export const downloadsJob = createCronJob("downloads", EVERY_5_SECONDS).withCall createRequestIntegrationJobHandler(downloadClientRequestHandler.handler, { widgetKinds: ["downloads"], getInput: { - downloads: () => ({}), + downloads: (options) => ({ + limit: options.limitPerIntegration, + }), }, }), ); diff --git a/packages/db/package.json b/packages/db/package.json index ca81286db..80ad6f482 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -44,13 +44,13 @@ "@homarr/env": "workspace:^0.1.0", "@homarr/log": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0", - "@mantine/core": "^8.0.1", + "@mantine/core": "^8.0.2", "@paralleldrive/cuid2": "^2.2.2", "@testcontainers/mysql": "^10.28.0", "better-sqlite3": "^11.10.0", "dotenv": "^16.5.0", "drizzle-kit": "^0.31.1", - "drizzle-orm": "^0.43.1", + "drizzle-orm": "^0.44.0", "drizzle-zod": "^0.7.1", "mysql2": "3.14.1" }, @@ -60,7 +60,7 @@ "@homarr/tsconfig": "workspace:^0.1.0", "@types/better-sqlite3": "7.6.13", "dotenv-cli": "^8.0.0", - "esbuild": "^0.25.4", + "esbuild": "^0.25.5", "eslint": "^9.27.0", "prettier": "^3.5.3", "tsx": "4.19.4", diff --git a/packages/definitions/package.json b/packages/definitions/package.json index d9767edcc..a2fde615d 100644 --- a/packages/definitions/package.json +++ b/packages/definitions/package.json @@ -25,7 +25,7 @@ "dependencies": { "@homarr/common": "workspace:^0.1.0", "fast-xml-parser": "^5.2.3", - "zod": "^3.25.23" + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/env/package.json b/packages/env/package.json index ee7ae9e3b..30ab5d7d0 100644 --- a/packages/env/package.json +++ b/packages/env/package.json @@ -23,8 +23,8 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@t3-oss/env-nextjs": "^0.13.4", - "zod": "^3.25.23" + "@t3-oss/env-nextjs": "^0.13.6", + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/form/package.json b/packages/form/package.json index 5aa759256..954a40188 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -26,8 +26,8 @@ "@homarr/common": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/form": "^8.0.1", - "zod": "^3.25.23" + "@mantine/form": "^8.0.2", + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/forms-collection/package.json b/packages/forms-collection/package.json index c776c3fdd..e8ea3d51e 100644 --- a/packages/forms-collection/package.json +++ b/packages/forms-collection/package.json @@ -29,9 +29,9 @@ "@homarr/notifications": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^8.0.1", + "@mantine/core": "^8.0.2", "react": "19.1.0", - "zod": "^3.25.23" + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 922df4a63..1cf2b5033 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -44,7 +44,7 @@ "tsdav": "^2.1.4", "undici": "7.10.0", "xml2js": "^0.6.2", - "zod": "^3.25.23" + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/integrations/src/download-client/aria2/aria2-integration.ts b/packages/integrations/src/download-client/aria2/aria2-integration.ts index 84458fda5..07869dcef 100644 --- a/packages/integrations/src/download-client/aria2/aria2-integration.ts +++ b/packages/integrations/src/download-client/aria2/aria2-integration.ts @@ -12,7 +12,7 @@ import type { DownloadClientItem } from "../../interfaces/downloads/download-cli import type { Aria2Download, Aria2GetClient } from "./aria2-types"; export class Aria2Integration extends DownloadClientIntegration { - public async getClientJobsAndStatusAsync(): Promise { + public async getClientJobsAndStatusAsync(input: { limit: number }): Promise { const client = this.getClient(); const keys: (keyof Aria2Download)[] = [ "bittorrent", @@ -27,12 +27,12 @@ export class Aria2Integration extends DownloadClientIntegration { ]; const [activeDownloads, waitingDownloads, stoppedDownloads, globalStats] = await Promise.all([ client.tellActive(), - client.tellWaiting(0, 1000, keys), - client.tellStopped(0, 1000, keys), + client.tellWaiting(0, input.limit, keys), + client.tellStopped(0, input.limit, keys), client.getGlobalStat(), ]); - const downloads = [...activeDownloads, ...waitingDownloads, ...stoppedDownloads]; + const downloads = [...activeDownloads, ...waitingDownloads, ...stoppedDownloads].slice(0, input.limit); const allPaused = downloads.every((download) => download.status === "paused"); return { diff --git a/packages/integrations/src/download-client/deluge/deluge-integration.ts b/packages/integrations/src/download-client/deluge/deluge-integration.ts index e5669446a..1e054108b 100644 --- a/packages/integrations/src/download-client/deluge/deluge-integration.ts +++ b/packages/integrations/src/download-client/deluge/deluge-integration.ts @@ -29,9 +29,10 @@ export class DelugeIntegration extends DownloadClientIntegration { }; } - public async getClientJobsAndStatusAsync(): Promise { + public async getClientJobsAndStatusAsync(input: { limit: number }): Promise { const type = "torrent"; const client = await this.getClientAsync(); + // Currently there is no way to limit the number of returned torrents const { stats: { download_rate, upload_rate }, torrents: rawTorrents, @@ -49,27 +50,29 @@ export class DelugeIntegration extends DownloadClientIntegration { }, types: [type], }; - const items = torrents.map((torrent): DownloadClientItem => { - const state = DelugeIntegration.getTorrentState(torrent.state); - return { - type, - id: torrent.id, - index: torrent.queue, - name: torrent.name, - size: torrent.total_wanted, - sent: torrent.total_uploaded, - downSpeed: torrent.progress !== 100 ? torrent.download_payload_rate : undefined, - upSpeed: torrent.upload_payload_rate, - time: - torrent.progress === 100 - ? Math.min((torrent.completed_time - dayjs().unix()) * 1000, -1) - : Math.max(torrent.eta * 1000, 0), - added: torrent.time_added * 1000, - state, - progress: torrent.progress / 100, - category: torrent.label, - }; - }); + const items = torrents + .map((torrent): DownloadClientItem => { + const state = DelugeIntegration.getTorrentState(torrent.state); + return { + type, + id: torrent.id, + index: torrent.queue, + name: torrent.name, + size: torrent.total_wanted, + sent: torrent.total_uploaded, + downSpeed: torrent.progress !== 100 ? torrent.download_payload_rate : undefined, + upSpeed: torrent.upload_payload_rate, + time: + torrent.progress === 100 + ? Math.min((torrent.completed_time - dayjs().unix()) * 1000, -1) + : Math.max(torrent.eta * 1000, 0), + added: torrent.time_added * 1000, + state, + progress: torrent.progress / 100, + category: torrent.label, + }; + }) + .slice(0, input.limit); return { status, items }; } diff --git a/packages/integrations/src/download-client/nzbget/nzbget-integration.ts b/packages/integrations/src/download-client/nzbget/nzbget-integration.ts index 65905cdd8..31f0c6a09 100644 --- a/packages/integrations/src/download-client/nzbget/nzbget-integration.ts +++ b/packages/integrations/src/download-client/nzbget/nzbget-integration.ts @@ -20,7 +20,7 @@ export class NzbGetIntegration extends DownloadClientIntegration { }; } - public async getClientJobsAndStatusAsync(): Promise { + public async getClientJobsAndStatusAsync(input: { limit: number }): Promise { const type = "usenet"; const queue = await this.nzbGetApiCallAsync("listgroups"); const history = await this.nzbGetApiCallAsync("history"); @@ -65,7 +65,8 @@ export class NzbGetIntegration extends DownloadClientIntegration { category: file.Category, }; }), - ); + ) + .slice(0, input.limit); return { status, items }; } diff --git a/packages/integrations/src/download-client/qbittorrent/qbittorrent-integration.ts b/packages/integrations/src/download-client/qbittorrent/qbittorrent-integration.ts index 2c649d256..5eeaa2695 100644 --- a/packages/integrations/src/download-client/qbittorrent/qbittorrent-integration.ts +++ b/packages/integrations/src/download-client/qbittorrent/qbittorrent-integration.ts @@ -26,10 +26,10 @@ export class QBitTorrentIntegration extends DownloadClientIntegration { }; } - public async getClientJobsAndStatusAsync(): Promise { + public async getClientJobsAndStatusAsync(input: { limit: number }): Promise { const type = "torrent"; const client = await this.getClientAsync(); - const torrents = await client.listTorrents(); + const torrents = await client.listTorrents({ limit: input.limit }); const rates = torrents.reduce( ({ down, up }, { dlspeed, upspeed }) => ({ down: down + dlspeed, up: up + upspeed }), { down: 0, up: 0 }, diff --git a/packages/integrations/src/download-client/sabnzbd/sabnzbd-integration.ts b/packages/integrations/src/download-client/sabnzbd/sabnzbd-integration.ts index 505e4cd51..986b5bd4c 100644 --- a/packages/integrations/src/download-client/sabnzbd/sabnzbd-integration.ts +++ b/packages/integrations/src/download-client/sabnzbd/sabnzbd-integration.ts @@ -22,10 +22,14 @@ export class SabnzbdIntegration extends DownloadClientIntegration { return { success: true }; } - public async getClientJobsAndStatusAsync(): Promise { + public async getClientJobsAndStatusAsync(input: { limit: number }): Promise { const type = "usenet"; - const { queue } = await queueSchema.parseAsync(await this.sabNzbApiCallAsync("queue")); - const { history } = await historySchema.parseAsync(await this.sabNzbApiCallAsync("history")); + const { queue } = await queueSchema.parseAsync( + await this.sabNzbApiCallAsync("queue", { limit: input.limit.toString() }), + ); + const { history } = await historySchema.parseAsync( + await this.sabNzbApiCallAsync("history", { limit: input.limit.toString() }), + ); const status: DownloadClientStatus = { paused: queue.paused, rates: { down: Math.floor(Number(queue.kbpersec) * 1024) }, //Actually rounded kiBps () @@ -73,7 +77,8 @@ export class SabnzbdIntegration extends DownloadClientIntegration { category: slot.category, }; }), - ); + ) + .slice(0, input.limit); return { status, items }; } diff --git a/packages/integrations/src/download-client/transmission/transmission-integration.ts b/packages/integrations/src/download-client/transmission/transmission-integration.ts index 350ce0552..29615ed56 100644 --- a/packages/integrations/src/download-client/transmission/transmission-integration.ts +++ b/packages/integrations/src/download-client/transmission/transmission-integration.ts @@ -23,9 +23,10 @@ export class TransmissionIntegration extends DownloadClientIntegration { }; } - public async getClientJobsAndStatusAsync(): Promise { + public async getClientJobsAndStatusAsync(input: { limit: number }): Promise { const type = "torrent"; const client = await this.getClientAsync(); + // Currently there is no way to limit the number of returned torrents const { torrents } = (await client.listTorrents()).arguments; const rates = torrents.reduce( ({ down, up }, { rateDownload, rateUpload }) => ({ down: down + rateDownload, up: up + rateUpload }), @@ -34,27 +35,29 @@ export class TransmissionIntegration extends DownloadClientIntegration { const paused = torrents.find(({ status }) => TransmissionIntegration.getTorrentState(status) !== "paused") === undefined; const status: DownloadClientStatus = { paused, rates, types: [type] }; - const items = torrents.map((torrent): DownloadClientItem => { - const state = TransmissionIntegration.getTorrentState(torrent.status); - return { - type, - id: torrent.hashString, - index: torrent.queuePosition, - name: torrent.name, - size: torrent.totalSize, - sent: torrent.uploadedEver, - downSpeed: torrent.percentDone !== 1 ? torrent.rateDownload : undefined, - upSpeed: torrent.rateUpload, - time: - torrent.percentDone === 1 - ? Math.min(torrent.doneDate * 1000 - dayjs().valueOf(), -1) - : Math.max(torrent.eta * 1000, 0), - added: torrent.addedDate * 1000, - state, - progress: torrent.percentDone, - category: torrent.labels, - }; - }); + const items = torrents + .map((torrent): DownloadClientItem => { + const state = TransmissionIntegration.getTorrentState(torrent.status); + return { + type, + id: torrent.hashString, + index: torrent.queuePosition, + name: torrent.name, + size: torrent.totalSize, + sent: torrent.uploadedEver, + downSpeed: torrent.percentDone !== 1 ? torrent.rateDownload : undefined, + upSpeed: torrent.rateUpload, + time: + torrent.percentDone === 1 + ? Math.min(torrent.doneDate * 1000 - dayjs().valueOf(), -1) + : Math.max(torrent.eta * 1000, 0), + added: torrent.addedDate * 1000, + state, + progress: torrent.percentDone, + category: torrent.labels, + }; + }) + .slice(0, input.limit); return { status, items }; } diff --git a/packages/integrations/src/interfaces/downloads/download-client-integration.ts b/packages/integrations/src/interfaces/downloads/download-client-integration.ts index b14b4b6e6..97b4844ab 100644 --- a/packages/integrations/src/interfaces/downloads/download-client-integration.ts +++ b/packages/integrations/src/interfaces/downloads/download-client-integration.ts @@ -4,7 +4,7 @@ import type { DownloadClientItem } from "./download-client-items"; export abstract class DownloadClientIntegration extends Integration { /** Get download client's status and list of all of it's items */ - public abstract getClientJobsAndStatusAsync(): Promise; + public abstract getClientJobsAndStatusAsync(input: { limit: number }): Promise; /** Pauses the client or all of it's items */ public abstract pauseQueueAsync(): Promise; /** Pause a single item using it's ID */ diff --git a/packages/integrations/src/proxmox/proxmox-integration.ts b/packages/integrations/src/proxmox/proxmox-integration.ts index 3f185ab20..cdf6c8064 100644 --- a/packages/integrations/src/proxmox/proxmox-integration.ts +++ b/packages/integrations/src/proxmox/proxmox-integration.ts @@ -69,6 +69,7 @@ const mapResource = (resource: Proxmox.clusterResourcesResources): Resource | nu const mapComputeResource = (resource: Proxmox.clusterResourcesResources): Omit, "type"> => { return { + id: resource.id, cpu: { utilization: resource.cpu ?? 0, cores: resource.maxcpu ?? 0, @@ -114,6 +115,7 @@ const mapVmResource = (resource: Proxmox.clusterResourcesResources): LxcResource const mapStorageResource = (resource: Proxmox.clusterResourcesResources): StorageResource => { return { + id: resource.id, type: "storage", name: resource.storage ?? "", node: resource.node ?? "", diff --git a/packages/integrations/src/proxmox/proxmox-types.ts b/packages/integrations/src/proxmox/proxmox-types.ts index af0db647b..12808db05 100644 --- a/packages/integrations/src/proxmox/proxmox-types.ts +++ b/packages/integrations/src/proxmox/proxmox-types.ts @@ -7,6 +7,7 @@ interface ResourceBase { } export interface ComputeResourceBase extends ResourceBase { + id: string; cpu: { utilization: number; // previously cpu (0-1) cores: number; // previously cpuCores @@ -40,6 +41,7 @@ export interface QemuResource extends ComputeResourceBase<"qemu"> { } export interface StorageResource extends ResourceBase<"storage"> { + id: string; storagePlugin: string; used: number; // previously disk total: number; // previously maxDisk diff --git a/packages/integrations/test/aria2.spec.ts b/packages/integrations/test/aria2.spec.ts index 5ea0d8ed4..840a266c9 100644 --- a/packages/integrations/test/aria2.spec.ts +++ b/packages/integrations/test/aria2.spec.ts @@ -46,7 +46,7 @@ describe("Aria2 integration", () => { // Acts const actAsync = async () => await aria2Integration.pauseQueueAsync(); - const getAsync = async () => await aria2Integration.getClientJobsAndStatusAsync(); + const getAsync = async () => await aria2Integration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(actAsync()).resolves.not.toThrow(); @@ -62,7 +62,7 @@ describe("Aria2 integration", () => { const aria2Integration = createAria2Intergration(startedContainer, API_KEY); // Act - const getAsync = async () => await aria2Integration.getClientJobsAndStatusAsync(); + const getAsync = async () => await aria2Integration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(getAsync()).resolves.not.toThrow(); @@ -81,7 +81,7 @@ describe("Aria2 integration", () => { await aria2AddItemAsync(startedContainer, API_KEY, aria2Integration); // Act - const getAsync = async () => await aria2Integration.getClientJobsAndStatusAsync(); + const getAsync = async () => await aria2Integration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(getAsync()).resolves.not.toThrow(); @@ -104,7 +104,7 @@ describe("Aria2 integration", () => { await expect(actAsync()).resolves.not.toThrow(); // NzbGet is slow and we wait for a second before querying the items. Test was flaky without this. await new Promise((resolve) => setTimeout(resolve, 1000)); - const result = await aria2Integration.getClientJobsAndStatusAsync(); + const result = await aria2Integration.getClientJobsAndStatusAsync({ limit: 99 }); expect(result.items).toHaveLength(0); // Cleanup @@ -153,7 +153,7 @@ const aria2AddItemAsync = async (container: StartedTestContainer, apiKey: string const { items: [item], - } = await integration.getClientJobsAndStatusAsync(); + } = await integration.getClientJobsAndStatusAsync({ limit: 99 }); if (!item) { throw new Error("No item found"); diff --git a/packages/integrations/test/nzbget.spec.ts b/packages/integrations/test/nzbget.spec.ts index 938ac927e..f8a82ddad 100644 --- a/packages/integrations/test/nzbget.spec.ts +++ b/packages/integrations/test/nzbget.spec.ts @@ -69,7 +69,7 @@ describe("Nzbget integration", () => { // Acts const actAsync = async () => await nzbGetIntegration.pauseQueueAsync(); - const getAsync = async () => await nzbGetIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await nzbGetIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(actAsync()).resolves.not.toThrow(); @@ -87,7 +87,7 @@ describe("Nzbget integration", () => { // Acts const actAsync = async () => await nzbGetIntegration.resumeQueueAsync(); - const getAsync = async () => await nzbGetIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await nzbGetIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(actAsync()).resolves.not.toThrow(); @@ -105,7 +105,7 @@ describe("Nzbget integration", () => { const nzbGetIntegration = createNzbGetIntegration(startedContainer, username, password); // Act - const getAsync = async () => await nzbGetIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await nzbGetIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(getAsync()).resolves.not.toThrow(); @@ -124,7 +124,7 @@ describe("Nzbget integration", () => { await nzbGetAddItemAsync(startedContainer, username, password, nzbGetIntegration); // Act - const getAsync = async () => await nzbGetIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await nzbGetIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(getAsync()).resolves.not.toThrow(); @@ -147,7 +147,7 @@ describe("Nzbget integration", () => { await expect(actAsync()).resolves.not.toThrow(); // NzbGet is slow and we wait for a second before querying the items. Test was flaky without this. await new Promise((resolve) => setTimeout(resolve, 1000)); - const result = await nzbGetIntegration.getClientJobsAndStatusAsync(); + const result = await nzbGetIntegration.getClientJobsAndStatusAsync({ limit: 99 }); expect(result.items).toHaveLength(0); // Cleanup @@ -209,7 +209,7 @@ const nzbGetAddItemAsync = async ( const { items: [item], - } = await integration.getClientJobsAndStatusAsync(); + } = await integration.getClientJobsAndStatusAsync({ limit: 99 }); if (!item) { throw new Error("No item found"); diff --git a/packages/integrations/test/sabnzbd.spec.ts b/packages/integrations/test/sabnzbd.spec.ts index cb2201120..f6d36a69f 100644 --- a/packages/integrations/test/sabnzbd.spec.ts +++ b/packages/integrations/test/sabnzbd.spec.ts @@ -67,7 +67,7 @@ describe("Sabnzbd integration", () => { // Acts const actAsync = async () => await sabnzbdIntegration.pauseQueueAsync(); - const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(actAsync()).resolves.not.toThrow(); @@ -85,7 +85,7 @@ describe("Sabnzbd integration", () => { // Acts const actAsync = async () => await sabnzbdIntegration.resumeQueueAsync(); - const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(actAsync()).resolves.not.toThrow(); @@ -103,7 +103,7 @@ describe("Sabnzbd integration", () => { const sabnzbdIntegration = createSabnzbdIntegration(startedContainer, DEFAULT_API_KEY); // Act - const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(getAsync()).resolves.not.toThrow(); @@ -122,7 +122,7 @@ describe("Sabnzbd integration", () => { await sabNzbdAddItemAsync(startedContainer, DEFAULT_API_KEY, sabnzbdIntegration); // Act - const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(getAsync()).resolves.not.toThrow(); @@ -140,7 +140,7 @@ describe("Sabnzbd integration", () => { // Act const actAsync = async () => await sabnzbdIntegration.pauseItemAsync(item); - const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(getAsync()).resolves.toMatchObject({ items: [{ ...item, state: "downloading" }] }); @@ -160,7 +160,7 @@ describe("Sabnzbd integration", () => { // Act const actAsync = async () => await sabnzbdIntegration.resumeItemAsync(item); - const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(getAsync()).resolves.toMatchObject({ items: [{ ...item, state: "paused" }] }); @@ -180,7 +180,7 @@ describe("Sabnzbd integration", () => { // Act - fromDisk already doesn't work for sabnzbd, so only test deletion itself. const actAsync = async () => await sabnzbdIntegration.deleteItemAsync({ ...item, progress: 0 } as DownloadClientItem, false); - const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync(); + const getAsync = async () => await sabnzbdIntegration.getClientJobsAndStatusAsync({ limit: 99 }); // Assert await expect(actAsync()).resolves.not.toThrow(); @@ -242,7 +242,7 @@ const sabNzbdAddItemAsync = async ( for (let i = 0; i < 5; i++) { const { items: [item], - } = await integration.getClientJobsAndStatusAsync(); + } = await integration.getClientJobsAndStatusAsync({ limit: 99 }); if (item) return item; } // Throws if it can't find the item diff --git a/packages/log/package.json b/packages/log/package.json index b1fd4181b..ff8cdc065 100644 --- a/packages/log/package.json +++ b/packages/log/package.json @@ -27,7 +27,7 @@ "ioredis": "5.6.1", "superjson": "2.2.2", "winston": "3.17.0", - "zod": "^3.25.23" + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/modals-collection/package.json b/packages/modals-collection/package.json index 0d3f83ef7..91c283422 100644 --- a/packages/modals-collection/package.json +++ b/packages/modals-collection/package.json @@ -33,13 +33,13 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^8.0.1", + "@mantine/core": "^8.0.2", "@tabler/icons-react": "^3.33.0", "dayjs": "^1.11.13", - "next": "15.3.2", + "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0", - "zod": "^3.25.23" + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/modals-collection/src/apps/app-select-modal.tsx b/packages/modals-collection/src/apps/app-select-modal.tsx index f6d7f2f50..f09f71d71 100644 --- a/packages/modals-collection/src/apps/app-select-modal.tsx +++ b/packages/modals-collection/src/apps/app-select-modal.tsx @@ -1,5 +1,4 @@ import { useMemo, useState } from "react"; -import Image from "next/image"; import { Button, Card, Center, Grid, Input, Stack, Text } from "@mantine/core"; import { IconPlus, IconSearch } from "@tabler/icons-react"; @@ -23,7 +22,7 @@ export const AppSelectModal = createModal(({ actions, inner () => apps .filter((app) => app.name.toLowerCase().includes(search.toLowerCase())) - .sort((a, b) => a.name.localeCompare(b.name)), + .sort((appA, appB) => appA.name.localeCompare(appB.name)), [apps, search], ); @@ -88,7 +87,7 @@ export const AppSelectModal = createModal(({ actions, inner
- {app.name} + {app.name}
{app.name} diff --git a/packages/modals/package.json b/packages/modals/package.json index d39c13355..013cd2c52 100644 --- a/packages/modals/package.json +++ b/packages/modals/package.json @@ -24,8 +24,8 @@ "dependencies": { "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", - "@mantine/core": "^8.0.1", - "@mantine/hooks": "^8.0.1", + "@mantine/core": "^8.0.2", + "@mantine/hooks": "^8.0.2", "react": "19.1.0" }, "devDependencies": { diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 47da1dc3a..2df2e17e3 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -24,7 +24,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/ui": "workspace:^0.1.0", - "@mantine/notifications": "^8.0.1", + "@mantine/notifications": "^8.0.2", "@tabler/icons-react": "^3.33.0" }, "devDependencies": { diff --git a/packages/old-import/package.json b/packages/old-import/package.json index 2317b7544..42cbc253d 100644 --- a/packages/old-import/package.json +++ b/packages/old-import/package.json @@ -37,14 +37,14 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^8.0.1", - "@mantine/hooks": "^8.0.1", + "@mantine/core": "^8.0.2", + "@mantine/hooks": "^8.0.2", "adm-zip": "0.5.16", - "next": "15.3.2", + "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0", "superjson": "2.2.2", - "zod": "^3.25.23", + "zod": "^3.25.42", "zod-form-data": "^2.0.7" }, "devDependencies": { diff --git a/packages/old-import/src/widgets/options.ts b/packages/old-import/src/widgets/options.ts index d8c9678af..24ad0e61f 100644 --- a/packages/old-import/src/widgets/options.ts +++ b/packages/old-import/src/widgets/options.ts @@ -77,6 +77,7 @@ const optionMapping: OptionMapping = { descendingDefaultSort: () => false, showCompletedUsenet: () => true, showCompletedHttp: () => true, + limitPerIntegration: () => undefined, }, weather: { forecastDayCount: (oldOptions) => oldOptions.forecastDays, @@ -156,6 +157,21 @@ const optionMapping: OptionMapping = { defaultTab: (oldOptions) => ("defaultTabState" in oldOptions ? oldOptions.defaultTabState : undefined), sectionIndicatorRequirement: (oldOptions) => "sectionIndicatorColor" in oldOptions ? oldOptions.sectionIndicatorColor : undefined, + showUptime: () => undefined, + visibleClusterSections: (oldOptions) => { + if (!("showNode" in oldOptions)) return undefined; + + const oldKeys = { + showNode: "node" as const, + showLXCs: "lxc" as const, + showVM: "qemu" as const, + showStorage: "storage" as const, + } satisfies Partial>; + + return objectEntries(oldKeys) + .filter(([key]) => oldOptions[key]) + .map(([_, section]) => section); + }, }, mediaTranscoding: { defaultView: (oldOptions) => oldOptions.defaultView, diff --git a/packages/old-schema/package.json b/packages/old-schema/package.json index 19c2161bd..7aaa35f5b 100644 --- a/packages/old-schema/package.json +++ b/packages/old-schema/package.json @@ -23,7 +23,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/common": "workspace:^0.1.0", - "zod": "^3.25.23" + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/request-handler/package.json b/packages/request-handler/package.json index c5901e969..3cd46989e 100644 --- a/packages/request-handler/package.json +++ b/packages/request-handler/package.json @@ -30,7 +30,7 @@ "@homarr/log": "workspace:^0.1.0", "@homarr/redis": "workspace:^0.1.0", "dayjs": "^1.11.13", - "octokit": "^5.0.2", + "octokit": "^5.0.3", "superjson": "2.2.2" }, "devDependencies": { diff --git a/packages/request-handler/src/calendar.ts b/packages/request-handler/src/calendar.ts index 55918eaaf..dd198912a 100644 --- a/packages/request-handler/src/calendar.ts +++ b/packages/request-handler/src/calendar.ts @@ -13,8 +13,10 @@ export const calendarMonthRequestHandler = createCachedIntegrationRequestHandler >({ async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); - const startDate = dayjs().year(input.year).month(input.month).startOf("month"); - const endDate = startDate.clone().endOf("month"); + // Calendar component shows up to 6 days before and after the month, for example if 1. of january is sunday, it shows the last 6 days of december. + const startDate = dayjs().year(input.year).month(input.month).startOf("month").subtract(6, "days"); + const endDate = dayjs().year(input.year).month(input.month).endOf("month").add(6, "days"); + return await integrationInstance.getCalendarEventsAsync( startDate.toDate(), endDate.toDate(), diff --git a/packages/request-handler/src/downloads.ts b/packages/request-handler/src/downloads.ts index 567b88324..06d4e9c64 100644 --- a/packages/request-handler/src/downloads.ts +++ b/packages/request-handler/src/downloads.ts @@ -9,11 +9,11 @@ import { createCachedIntegrationRequestHandler } from "./lib/cached-integration- export const downloadClientRequestHandler = createCachedIntegrationRequestHandler< DownloadClientJobsAndStatus, IntegrationKindByCategory<"downloadClient">, - Record + { limit: number } >({ - async requestAsync(integration, _input) { + async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); - return await integrationInstance.getClientJobsAndStatusAsync(); + return await integrationInstance.getClientJobsAndStatusAsync(input); }, cacheDuration: dayjs.duration(5, "seconds"), queryKey: "downloadClientJobStatus", diff --git a/packages/settings/package.json b/packages/settings/package.json index fd6933a94..57415bc05 100644 --- a/packages/settings/package.json +++ b/packages/settings/package.json @@ -26,8 +26,8 @@ "@homarr/api": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0", - "@mantine/dates": "^8.0.1", - "next": "15.3.2", + "@mantine/dates": "^8.0.2", + "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0" }, diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json index c36885d1e..fe0d40673 100644 --- a/packages/spotlight/package.json +++ b/packages/spotlight/package.json @@ -33,12 +33,12 @@ "@homarr/settings": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", - "@mantine/core": "^8.0.1", - "@mantine/hooks": "^8.0.1", - "@mantine/spotlight": "^8.0.1", + "@mantine/core": "^8.0.2", + "@mantine/hooks": "^8.0.2", + "@mantine/spotlight": "^8.0.2", "@tabler/icons-react": "^3.33.0", - "jotai": "^2.12.4", - "next": "15.3.2", + "jotai": "^2.12.5", + "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0", "use-deep-compare-effect": "^1.8.1" diff --git a/packages/translation/package.json b/packages/translation/package.json index 1a2782de4..148c316a0 100644 --- a/packages/translation/package.json +++ b/packages/translation/package.json @@ -32,7 +32,7 @@ "dayjs": "^1.11.13", "deepmerge": "4.3.1", "mantine-react-table": "2.0.0-beta.9", - "next": "15.3.2", + "next": "15.3.3", "next-intl": "4.1.0", "react": "19.1.0", "react-dom": "19.1.0" diff --git a/packages/translation/src/lang/ca.json b/packages/translation/src/lang/ca.json index 5ac6ac03f..8ac477747 100644 --- a/packages/translation/src/lang/ca.json +++ b/packages/translation/src/lang/ca.json @@ -1757,12 +1757,18 @@ "memory": { "label": "" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "", "notification": { diff --git a/packages/translation/src/lang/cn.json b/packages/translation/src/lang/cn.json index d9c7699b9..b2a83de88 100644 --- a/packages/translation/src/lang/cn.json +++ b/packages/translation/src/lang/cn.json @@ -1757,12 +1757,18 @@ "memory": { "label": "显示内存信息" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "显示文件系统信息" }, "defaultTab": { "label": "默认标签" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "部分指标要求" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "城市/邮编", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "使用过滤器来计算比率" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "网络控制器" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "已更新 {when}", "search": "搜索 {count} 容器", - "selected": "{totalCount} 容器的 {selectCount}" + "selected": "{totalCount} 容器的 {selectCount}", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "废弃" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "镜像" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "开始", "notification": { diff --git a/packages/translation/src/lang/cs.json b/packages/translation/src/lang/cs.json index 7eedcbca5..3736de65d 100644 --- a/packages/translation/src/lang/cs.json +++ b/packages/translation/src/lang/cs.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Zobrazit informace o paměti" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Zobrazit informace o souborovém systému" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Obraz" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Spustit", "notification": { diff --git a/packages/translation/src/lang/da.json b/packages/translation/src/lang/da.json index 6bd35a5b0..c2d6469a7 100644 --- a/packages/translation/src/lang/da.json +++ b/packages/translation/src/lang/da.json @@ -705,125 +705,125 @@ "error": { "common": { "cause": { - "title": "" + "title": "Årsag med flere detaljer" } }, "unknown": { - "title": "", - "description": "" + "title": "Ukendt fejl", + "description": "En ukendt fejl opstod, åbn årsagen nedenfor for at se flere detaljer" }, "parse": { - "title": "", - "description": "" + "title": "Parsingfejl", + "description": "Svaret kunne ikke fortolkes. Kontroller, at URL'en peger på tjenestens grundlæggende URL." }, "authorization": { - "title": "", - "description": "" + "title": "Godkendelsesfejl", + "description": "Anmodningen blev ikke godkendt. Kontroller, at legitimationsoplysningerne er korrekte og at du har dem konfigureret med nok tilladelser." }, "statusCode": { - "title": "", - "description": "", - "otherDescription": "", + "title": "Svar fejl", + "description": "Modtaget uventet {statusCode} ({reason}) svar fra . Kontroller, at URL'en peger på basis-URL'en for integrationen.", + "otherDescription": "Modtaget uventet {statusCode} svar fra . Kontroller, at URLen peger på den grundlæggende URL for integrationen.", "reason": { - "badRequest": "", - "notFound": "", - "tooManyRequests": "", - "internalServerError": "", - "serviceUnavailable": "", - "gatewayTimeout": "" + "badRequest": "Ugyldig forespørgsel", + "notFound": "Ikke fundet", + "tooManyRequests": "For mange forespørgsler", + "internalServerError": "Intern serverfejl", + "serviceUnavailable": "Tjeneste ikke tilgængelig", + "gatewayTimeout": "Gateway-timeout" } }, "certificate": { - "title": "", + "title": "Certifikatfejl", "description": { - "expired": "", - "notYetValid": "", - "untrusted": "", - "hostnameMismatch": "" + "expired": "Certifikatet er udløbet.", + "notYetValid": "Certifikatet er ikke gyldigt endnu.", + "untrusted": "Der er ikke tillid til certifikatet.", + "hostnameMismatch": "Certifikatets værtsnavn matcher ikke URL'en." }, "alert": { "permission": { - "title": "", - "message": "" + "title": "Ikke tilstrækkelige tilladelser", + "message": "Du har ikke tilladelse til at stole på eller uploade certifikater. Kontakt venligst din administrator for at uploade det nødvendige rodcertifikat." }, "hostnameMismatch": { - "title": "", - "message": "" + "title": "Værtsnavn matcher ikke", + "message": "Værtsnavnet i certifikatet matcher ikke det værtsnavn du forbinder til. Dette kan indikere en sikkerhedsrisiko, men du kan stadig vælge at stole på dette certifikat." }, "extract": { - "title": "", - "message": "" + "title": "Ekstraktion af CA-certifikat mislykkedes", + "message": "Kun selvsignerede certifikater uden kæde kan hentes automatisk. Hvis du bruger et selvsigneret certifikat, skal du sørge for at uploade CA-certifikatet manuelt. Du kan finde instruktioner om, hvordan du gør dette ." } }, "action": { "retry": { - "label": "" + "label": "Gentag oprettelse" }, "trust": { - "label": "" + "label": "Stol på certifikat" }, "upload": { - "label": "" + "label": "Upload certifikat" } }, "hostnameMismatch": { "confirm": { - "title": "", - "message": "" + "title": "Stol på uoverensstemmelse mellem værtsnavn", + "message": "Er du sikker på du vil have tillid til certifikatet med et værtsnavn uoverensstemmelse?" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Betroet certifikat", + "message": "Tilføjet værtsnavn til liste over betroede certifikater" }, "error": { - "title": "", - "message": "" + "title": "Kunne ikke stole på certifikat", + "message": "Certifikatet med et værtsnavn mismatch kunne ikke stoles på" } } }, "selfSigned": { "confirm": { - "title": "", - "message": "" + "title": "Stol på selvsigneret certifikat", + "message": "Er du sikker på, at du vil stole på dette selvsignerede certifikat?" }, "notification": { "success": { - "title": "", - "message": "" + "title": "Betroet certifikat", + "message": "Tilføjet certifikat til liste over betroede certifikater" }, "error": { - "title": "", - "message": "" + "title": "Kunne ikke stole på certifikat", + "message": "Kunne ikke tilføje certifikat til listen over betroede certifikater" } } }, "details": { - "title": "", - "description": "", + "title": "Detaljer", + "description": "Gennemgå certifikatoplysningerne, før du beslutter dig for at stole på den.", "content": { - "action": "", - "title": "" + "action": "Vis indhold", + "title": "PEM Certifikat" } } }, "request": { - "title": "", + "title": "Anmodningsfejl", "description": { "connection": { - "hostUnreachable": "", - "networkUnreachable": "", - "refused": "", - "reset": "" + "hostUnreachable": "Serveren kunne ikke nås. Dette betyder normalt, at værten er offline eller ikke kan nås fra dit netværk.", + "networkUnreachable": "Netværket er ikke tilgængeligt. Tjek venligst din internetforbindelse eller netværkskonfiguration.", + "refused": "Serveren nægtede forbindelsen. Den kører muligvis ikke eller afviser forespørgsler på den angivne port.", + "reset": "Forbindelsen blev uventet lukket af serveren. Dette kan ske hvis serveren er ustabil eller genstartet." }, "dns": { - "notFound": "", - "timeout": "", - "noAnswer": "" + "notFound": "Serveradressen kunne ikke findes. Tjek venligst URL'en for stave eller ugyldige domænenavne.", + "timeout": "DNS-opslag fik timeout. Dette kan være et midlertidigt problem - prøv igen om et øjeblik.", + "noAnswer": "DNS-serveren returnerede ikke et gyldigt svar. Domænet findes måske men har ingen gyldige poster." }, "timeout": { - "aborted": "", - "timeout": "" + "aborted": "Anmodningen blev afbrudt før den kunne fuldføres. Dette kan skyldes en bruger handling eller system timeout.", + "timeout": "Forespørgslen tog for lang tid at fuldføre og fik timeout. Tjek dit netværk eller prøv igen senere." } } } @@ -1004,7 +1004,7 @@ "cancel": "Annuller", "delete": "Slet", "discard": "Kassér", - "close": "", + "close": "Luk", "confirm": "Bekræft", "continue": "Forsæt", "previous": "Forrige", @@ -1220,7 +1220,7 @@ "label": "Integrationer" }, "title": { - "label": "" + "label": "Titel" }, "customCssClasses": { "label": "Brugerdefinerede CSS-klasser" @@ -1757,12 +1757,18 @@ "memory": { "label": "Vis hukommelsesoplysninger" }, + "showUptime": { + "label": "Vis Oppetid" + }, "fileSystem": { "label": "Vis information om filsystemet" }, "defaultTab": { "label": "Standard fane" }, + "visibleClusterSections": { + "label": "Synlige klynge sektioner" + }, "sectionIndicatorRequirement": { "label": "Sektion indikator er et krav" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "Docker statistik", + "description": "Statistik for dine containere (Denne widget kan kun tilføjes med administratorrettigheder)", + "option": {}, + "error": { + "internalServerError": "Kunne ikke hente containerstatistik" + } + }, "common": { "location": { "query": "By / Postnummer", @@ -1898,8 +1912,8 @@ "description": "Vis de aktuelle streams på dine medieservere", "option": { "showOnlyPlaying": { - "label": "", - "description": "" + "label": "Vis kun hvad der aktuelt afspilles", + "description": "Deaktivering af dette vil ikke virke for plex" } }, "items": { @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Brug filteret til at beregne forholdet" + }, + "limitPerIntegration": { + "label": "Begræns elementer pr. integration", + "description": "Dette vil begrænse antallet af elementer vist pr. integration, ikke globalt" } }, "errors": { @@ -2077,7 +2095,7 @@ "approved": "Godkendt", "declined": "Afvist", "failed": "Mislykket", - "completed": "" + "completed": "Fuldført" }, "toBeDetermined": "TBD" }, @@ -2181,94 +2199,94 @@ } }, "releases": { - "name": "", - "description": "", + "name": "Udgivelser", + "description": "Viser en liste over den aktuelle version af de givne depoter med den givne version regex.", "option": { "newReleaseWithin": { - "label": "", - "description": "" + "label": "Ny Udgivelse Inden", + "description": "Anvendelseseksempel: 1w (1 uge), 10M (10 måneder). Accepterede enhedstyper h (timer), d (dage), w (uger), M (måneder), y (år). Lad være tom for ingen fremhævning af nye udgivelser." }, "staleReleaseWithin": { - "label": "", - "description": "" + "label": "Gamle Udgivelse Indenfor", + "description": "Anvendelseseksempel: 1w (1 uge), 10M (10 måneder). Accepterede enhedstyper h (timer), d (dage), w (uger), M (måneder), y (år). Lad være tom for ingen fremhævning af forældede udgivelser." }, "showOnlyHighlighted": { - "label": "", - "description": "" + "label": "Vis Kun Fremhævede", + "description": "Vis kun nye eller forældede udgivelser. Som pr ovenfor." }, "showDetails": { - "label": "" + "label": "Vis detaljer" }, "topReleases": { - "label": "", - "description": "" + "label": "Top Udgivelser", + "description": "Det maksimale antal seneste udgivelser at vise. Nul betyder ingen grænse." }, "repositories": { - "label": "", + "label": "Repositories", "addRRepository": { - "label": "" + "label": "Tilføj repository" }, "provider": { - "label": "" + "label": "Udbyder" }, "identifier": { - "label": "", - "placeholder": "" + "label": "Identifikator", + "placeholder": "Navn eller ejer/navn" }, "name": { - "label": "" + "label": "Navn" }, "versionFilter": { - "label": "", + "label": "Versionsfilter", "prefix": { - "label": "" + "label": "Præfiks" }, "precision": { - "label": "", + "label": "Præcision", "options": { - "none": "" + "none": "Ingen" } }, "suffix": { - "label": "" + "label": "Suffiks" }, "regex": { - "label": "" + "label": "Regulært Udtryk" } }, "edit": { - "label": "" + "label": "Rediger" }, "editForm": { - "title": "", + "title": "Rediger Repository", "cancel": { - "label": "" + "label": "Annuller" }, "confirm": { - "label": "" + "label": "Bekræft" } }, "example": { - "label": "" + "label": "Eksempel" }, - "invalid": "" + "invalid": "Ugyldig repository definition, tjek venligst værdierne" } }, - "not-found": "", - "pre-release": "", - "archived": "", - "forked": "", - "starsCount": "", - "forksCount": "", - "issuesCount": "", - "openProjectPage": "", - "openReleasePage": "", - "releaseDescription": "", - "created": "", + "not-found": "Ikke fundet", + "pre-release": "Pre-Release", + "archived": "Arkiveret", + "forked": "Forked", + "starsCount": "Stjerner", + "forksCount": "Forks", + "issuesCount": "Åbne Problemer", + "openProjectPage": "Åbn Projektside", + "openReleasePage": "Åbn Udgivelsesside", + "releaseDescription": "Udgivelse Beskrivelse", + "created": "Oprettet", "error": { - "label": "", + "label": "Fejl", "options": { - "noMatchingVersion": "" + "noMatchingVersion": "Ingen matchende version fundet" } } }, @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "Netværkskontroller" + }, + "dockerContainers": { + "label": "Docker containers" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "Opdateret {when}", "search": "Søg {count} containere", - "selected": "{selectCount} af {totalCount} containere valgt" + "selected": "{selectCount} af {totalCount} containere valgt", + "footer": "Total {count} containere" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "Død" } }, + "stats": { + "cpu": { + "label": "CPU" + }, + "memory": { + "label": "Hukommelse" + } + }, "containerImage": { "label": "Billede" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "Handlinger", "start": { "label": "Start", "notification": { @@ -3625,7 +3656,7 @@ "certificates": { "label": "Certifikater", "hostnames": { - "label": "" + "label": "Værtsnavne" } } }, @@ -4026,25 +4057,25 @@ "certificate": { "field": { "hostname": { - "label": "" + "label": "Værtsnavn" }, "subject": { - "label": "" + "label": "Emne" }, "issuer": { - "label": "" + "label": "Udsteder" }, "validFrom": { - "label": "" + "label": "Gyldig fra" }, "validTo": { - "label": "" + "label": "Gyldig til" }, "serialNumber": { - "label": "" + "label": "Serienummer" }, "fingerprint": { - "label": "" + "label": "Fingeraftryk" } }, "page": { @@ -4055,19 +4086,19 @@ "title": "Der er endnu ingen certifikater" }, "invalid": { - "title": "", - "description": "" + "title": "Ugyldigt certifikat", + "description": "Kunne ikke fortolke certifikat" }, "expires": "Udløber {when}", - "toHostnames": "" + "toHostnames": "Betroede værtsnavne" }, "hostnames": { - "title": "", - "description": "", + "title": "Betroet certifikat værtsnavne", + "description": "Nogle certifikater tillader ikke det specifikke domæne Homarr bruger til at anmode om dem, på grund af dette alle betroede værtsnavne med deres certifikat thumbprints bruges til at omgå disse restriktioner.", "noResults": { - "title": "" + "title": "Der er endnu ingen værtsnavne" }, - "toCertificates": "" + "toCertificates": "Certifikater" } }, "action": { @@ -4099,16 +4130,16 @@ } }, "removeHostname": { - "label": "", - "confirm": "", + "label": "Fjern betroet værtsnavn", + "confirm": "Er du sikker på du vil fjerne dette betroede værtsnavn? Dette kan få nogle integrationer til at stoppe med at virke.", "notification": { "success": { - "title": "", - "message": "" + "title": "Værtsnavn fjernet", + "message": "Værtsnavnet blev fjernet korrekt" }, "error": { - "title": "", - "message": "" + "title": "Værtsnavn ikke fjernet", + "message": "Værtsnavnet kunne ikke fjernes" } } } diff --git a/packages/translation/src/lang/de-CH.json b/packages/translation/src/lang/de-CH.json index 83518974e..d4c75942e 100644 --- a/packages/translation/src/lang/de-CH.json +++ b/packages/translation/src/lang/de-CH.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Speicher-Info anzeigen" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Dateisystem Info anzeigen" }, "defaultTab": { "label": "Standard Tab" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "Anforderung der Sektionsindikatoren" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "Stadt / Postleitzahl", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Filter zur Berechnung des Verhältnisses verwenden" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "Aktualisiert {when}", "search": "{count} Container durchsuchen", - "selected": "{selectCount} von {totalCount} ausgewählten Containern" + "selected": "{selectCount} von {totalCount} ausgewählten Containern", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "Tot" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Starten", "notification": { diff --git a/packages/translation/src/lang/de.json b/packages/translation/src/lang/de.json index 37b83255a..bd587f013 100644 --- a/packages/translation/src/lang/de.json +++ b/packages/translation/src/lang/de.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Speicher-Info anzeigen" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Dateisystem Info anzeigen" }, "defaultTab": { "label": "Standard Tab" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "Anforderung der Sektionsindikatoren" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "Stadt / Postleitzahl", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Filter zur Berechnung des Verhältnisses verwenden" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "Netzwerk Controller" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "Aktualisiert {when}", "search": "{count} Container durchsuchen", - "selected": "{selectCount} von {totalCount} ausgewählten Containern" + "selected": "{selectCount} von {totalCount} ausgewählten Containern", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "Tot" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Image" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Starten", "notification": { diff --git a/packages/translation/src/lang/el.json b/packages/translation/src/lang/el.json index 7719a173b..b19d2a903 100644 --- a/packages/translation/src/lang/el.json +++ b/packages/translation/src/lang/el.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Εμφάνιση Πληροφοριών Μνήμης" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Εμφάνιση Πληροφοριών Συστήματος Αρχείων" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Εικόνα" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Έναρξη", "notification": { diff --git a/packages/translation/src/lang/en-gb.json b/packages/translation/src/lang/en-gb.json index ce388fbf8..7240e20a9 100644 --- a/packages/translation/src/lang/en-gb.json +++ b/packages/translation/src/lang/en-gb.json @@ -1757,12 +1757,18 @@ "memory": { "label": "" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "", "notification": { diff --git a/packages/translation/src/lang/en.json b/packages/translation/src/lang/en.json index e03c79aa3..50239cbac 100644 --- a/packages/translation/src/lang/en.json +++ b/packages/translation/src/lang/en.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Show Memory Info" }, + "showUptime": { + "label": "Show Uptime" + }, "fileSystem": { "label": "Show Filesystem Info" }, "defaultTab": { "label": "Default tab" }, + "visibleClusterSections": { + "label": "Visible cluster sections" + }, "sectionIndicatorRequirement": { "label": "Section indicator requirement" } @@ -1953,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Use filter to calculate Ratio" + }, + "limitPerIntegration": { + "label": "Limit items per integration", + "description": "This will limit the number of items shown per integration, not globally" } }, "errors": { diff --git a/packages/translation/src/lang/es.json b/packages/translation/src/lang/es.json index 4ec94eff8..33a8a16d1 100644 --- a/packages/translation/src/lang/es.json +++ b/packages/translation/src/lang/es.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Mostrar información de la memoria" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Mostrar información del sistema de archivos" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Imagen" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Iniciar", "notification": { diff --git a/packages/translation/src/lang/et.json b/packages/translation/src/lang/et.json index 0d1db0867..41bd93b6e 100644 --- a/packages/translation/src/lang/et.json +++ b/packages/translation/src/lang/et.json @@ -1757,12 +1757,18 @@ "memory": { "label": "" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "", "notification": { diff --git a/packages/translation/src/lang/fr.json b/packages/translation/src/lang/fr.json index f059dacdb..f6d3632de 100644 --- a/packages/translation/src/lang/fr.json +++ b/packages/translation/src/lang/fr.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Afficher les infos de la mémoire" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Afficher les infos sur le système de fichiers" }, "defaultTab": { "label": "Onglet par défaut" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "Exigence de l'indicateur de section" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "Ville / Code Postal", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Utiliser le filtre pour calculer le ratio" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "Mis à jour {when}", "search": "Rechercher dans {count} conteneurs", - "selected": "{selectCount} sur {totalCount} conteneurs sélectionnés" + "selected": "{selectCount} sur {totalCount} conteneurs sélectionnés", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "Mort" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Image" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Début", "notification": { diff --git a/packages/translation/src/lang/he.json b/packages/translation/src/lang/he.json index 8c240f1da..98fbf1b85 100644 --- a/packages/translation/src/lang/he.json +++ b/packages/translation/src/lang/he.json @@ -1757,12 +1757,18 @@ "memory": { "label": "הצג מידע זיכרון" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "הצג מידע על מערכת הקבצים" }, "defaultTab": { "label": "כרטיסיית ברירת מחדל" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "דרישת מציין מקטע" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "סטטיסטיקות דוקר", + "description": "סטטיסטיקות של המכולות שלך (ניתן להוסיף ווידג'ט זה רק עם הרשאות מנהל)", + "option": {}, + "error": { + "internalServerError": "נכשל באחזור סטטיסטיקות המכולות" + } + }, "common": { "location": { "query": "עיר / מיקוד", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "השתמש במסנן כדי לחשב יחס" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "בקר רשת" + }, + "dockerContainers": { + "label": "מכולות דוקר" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "עודכן ב- {when}", "search": "חפש {count} קונטיינרים", - "selected": "{selectCount} מ- {totalCount} קונטיינרים נבחרו" + "selected": "{selectCount} מ- {totalCount} קונטיינרים נבחרו", + "footer": "סה״כ {count} קונטיינרים" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "מת" } }, + "stats": { + "cpu": { + "label": "מעבד" + }, + "memory": { + "label": "זיכרון" + } + }, "containerImage": { "label": "קובץ תמונה" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "פעולות", "start": { "label": "התחל", "notification": { diff --git a/packages/translation/src/lang/hr.json b/packages/translation/src/lang/hr.json index 1fba4eeb6..cf8d876d8 100644 --- a/packages/translation/src/lang/hr.json +++ b/packages/translation/src/lang/hr.json @@ -1757,12 +1757,18 @@ "memory": { "label": "" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Slika" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Pokreni", "notification": { diff --git a/packages/translation/src/lang/hu.json b/packages/translation/src/lang/hu.json index a35b60c20..83f3f6010 100644 --- a/packages/translation/src/lang/hu.json +++ b/packages/translation/src/lang/hu.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Memóriainformációk megjelenítése" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Fájlrendszer-információk megjelenítése" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Kép" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Indítás", "notification": { diff --git a/packages/translation/src/lang/it.json b/packages/translation/src/lang/it.json index 705b1896b..bacc5a02c 100644 --- a/packages/translation/src/lang/it.json +++ b/packages/translation/src/lang/it.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Mostra Informazioni Memoria" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Mostra Informazioni Filesystem" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Immagine" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Avvia", "notification": { diff --git a/packages/translation/src/lang/ja.json b/packages/translation/src/lang/ja.json index dd8e59c46..17b5e35af 100644 --- a/packages/translation/src/lang/ja.json +++ b/packages/translation/src/lang/ja.json @@ -1757,12 +1757,18 @@ "memory": { "label": "メモリー情報を表示" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "ファイルシステム情報を表示" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "画像" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "開始", "notification": { diff --git a/packages/translation/src/lang/ko.json b/packages/translation/src/lang/ko.json index e9faa47fc..dd88b63dd 100644 --- a/packages/translation/src/lang/ko.json +++ b/packages/translation/src/lang/ko.json @@ -1757,12 +1757,18 @@ "memory": { "label": "" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "이미지" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "시작", "notification": { diff --git a/packages/translation/src/lang/lt.json b/packages/translation/src/lang/lt.json index 0d6a5d1f3..d28a9d410 100644 --- a/packages/translation/src/lang/lt.json +++ b/packages/translation/src/lang/lt.json @@ -1757,12 +1757,18 @@ "memory": { "label": "" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Nuotrauka" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Paleisti", "notification": { diff --git a/packages/translation/src/lang/lv.json b/packages/translation/src/lang/lv.json index 5b5b4facc..e1b2b2932 100644 --- a/packages/translation/src/lang/lv.json +++ b/packages/translation/src/lang/lv.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Rādīt atmiņas informāciju" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Rādīt failu sistēmas informāciju" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Attēls" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Palaist", "notification": { diff --git a/packages/translation/src/lang/nl.json b/packages/translation/src/lang/nl.json index e17f3c0bb..f50f0865f 100644 --- a/packages/translation/src/lang/nl.json +++ b/packages/translation/src/lang/nl.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Werkgeheugen info weergeven" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Bestandssysteem info weergeven" }, "defaultTab": { "label": "Standaard tab" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "Sectie indicator vereiste" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "Stad / postcode", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Gebruik filter om ratio te berekenen" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "Netwerkcontroller" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "{when} bijgewerkt", "search": "Zoek {count} containers", - "selected": "{selectCount} van {totalCount} containers geselecteerd" + "selected": "{selectCount} van {totalCount} containers geselecteerd", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "Dood" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Image" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Starten", "notification": { diff --git a/packages/translation/src/lang/no.json b/packages/translation/src/lang/no.json index b6bab56f9..d2f803d86 100644 --- a/packages/translation/src/lang/no.json +++ b/packages/translation/src/lang/no.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Vis minneinfo" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Vis filsysteminfo" }, "defaultTab": { "label": "Standard fane" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "Krav til seksjonsindikator" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "By / Postnummer", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Bruk filter for å beregne ratio" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "Oppdatert {when}", "search": "Søk i {count} containere", - "selected": "{selectCount} av {totalCount} containere valgt" + "selected": "{selectCount} av {totalCount} containere valgt", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "Død" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Image" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Start", "notification": { diff --git a/packages/translation/src/lang/pl.json b/packages/translation/src/lang/pl.json index 555d5f761..b1b5e3c4b 100644 --- a/packages/translation/src/lang/pl.json +++ b/packages/translation/src/lang/pl.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Pokaż informacje o pamięci" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Pokaż informacje o systemie plików" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "Miasto / kod pocztowy", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Użyj filtra do obliczenia współczynnika" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Obraz" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Uruchom", "notification": { diff --git a/packages/translation/src/lang/pt.json b/packages/translation/src/lang/pt.json index fc7c8c3e0..aca267d8a 100644 --- a/packages/translation/src/lang/pt.json +++ b/packages/translation/src/lang/pt.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Mostrar informações da memória" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Mostrar informações do sistema de arquivos" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Imagem" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Iniciar", "notification": { diff --git a/packages/translation/src/lang/ro.json b/packages/translation/src/lang/ro.json index a7198f4f1..34501246a 100644 --- a/packages/translation/src/lang/ro.json +++ b/packages/translation/src/lang/ro.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Afișare informații memorie" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Afișare informații despre sistemul de fișiere" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Imagine" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Pornește", "notification": { diff --git a/packages/translation/src/lang/ru.json b/packages/translation/src/lang/ru.json index a62503a30..f903ac075 100644 --- a/packages/translation/src/lang/ru.json +++ b/packages/translation/src/lang/ru.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Показать информацию о памяти" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Показать информацию о файловой системе" }, "defaultTab": { "label": "Вкладка по умолчанию" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "Пороговое значение индикатора раздела" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "Город / Почтовый индекс", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Использовать фильтр при расчёте рейтинга" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "Обновлено {when}", "search": "Поиск среди {count} контейнеров", - "selected": "Выбрано {selectCount} из {totalCount} контейнеров" + "selected": "Выбрано {selectCount} из {totalCount} контейнеров", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "Нерабочий" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Образ" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Запустить", "notification": { diff --git a/packages/translation/src/lang/sk.json b/packages/translation/src/lang/sk.json index 15287909a..bbddc405e 100644 --- a/packages/translation/src/lang/sk.json +++ b/packages/translation/src/lang/sk.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Zobraziť informácie o pamäti" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Zobraziť informácie o súborovom systéme" }, "defaultTab": { "label": "Predvolená karta" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "Mesto / PSČ", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Na výpočet pomeru použite filter" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "Aktualizované {when}", "search": "Vyhľadajte {count} kontajnery", - "selected": "{selectCount} z {totalCount} vybratých kontajnerov" + "selected": "{selectCount} z {totalCount} vybratých kontajnerov", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "Mŕtvy" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Obraz" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Spustiť", "notification": { diff --git a/packages/translation/src/lang/sl.json b/packages/translation/src/lang/sl.json index 1db1be7b6..7b6b779b9 100644 --- a/packages/translation/src/lang/sl.json +++ b/packages/translation/src/lang/sl.json @@ -1757,12 +1757,18 @@ "memory": { "label": "" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Slika" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Zaženi", "notification": { diff --git a/packages/translation/src/lang/sv.json b/packages/translation/src/lang/sv.json index 786efd412..a1db32096 100644 --- a/packages/translation/src/lang/sv.json +++ b/packages/translation/src/lang/sv.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Visa minnesinformation" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "Visa information om filsystemet" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Starta", "notification": { diff --git a/packages/translation/src/lang/tr.json b/packages/translation/src/lang/tr.json index d83e83977..b48b1e00a 100644 --- a/packages/translation/src/lang/tr.json +++ b/packages/translation/src/lang/tr.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Bellek Bilgilerini Göster" }, + "showUptime": { + "label": "Çalışma Süresini Göster" + }, "fileSystem": { "label": "Dosya Sistemi Bilgilerini Göster" }, "defaultTab": { "label": "Varsayılan sekme" }, + "visibleClusterSections": { + "label": "Görünür küme alanları" + }, "sectionIndicatorRequirement": { "label": "Bölüm göstergesi gereksinimi" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "Docker istatistikleri", + "description": "Konteynerlerinizin istatistikleri (Bu widget yalnızca yönetici ayrıcalıklarıyla eklenebilir)", + "option": {}, + "error": { + "internalServerError": "Konteyner istatistikleri alınamadı" + } + }, "common": { "location": { "query": "Şehir / Posta kodu", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Oranı hesaplamak için filtreyi kullanın" + }, + "limitPerIntegration": { + "label": "Her entegrasyon için öğe sınırı", + "description": "Bu, gösterilecek öğe sayısını tüm entegrasyonlar için değil, her entegrasyon özelinde sınırlar" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "Ağ Denetleyicisi" + }, + "dockerContainers": { + "label": "Docker konteynerleri" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "{when} Güncellendi", "search": "{count} konteyner içinde ara", - "selected": "{selectCount} / {totalCount} konteyner seçildi" + "selected": "{selectCount} / {totalCount} konteyner seçildi", + "footer": "Toplam {count} konteyner" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "Ölü" } }, + "stats": { + "cpu": { + "label": "İşlemci" + }, + "memory": { + "label": "Bellek" + } + }, "containerImage": { "label": "İmaj" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "Eylemler", "start": { "label": "Başlat", "notification": { diff --git a/packages/translation/src/lang/uk.json b/packages/translation/src/lang/uk.json index 1ddca84c7..a3562f9e3 100644 --- a/packages/translation/src/lang/uk.json +++ b/packages/translation/src/lang/uk.json @@ -1757,12 +1757,18 @@ "memory": { "label": "Показати інформацію про пам'ять" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "Місто / Поштовий індекс", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "Використати фільтр при розрахунку рейтингу" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "Оновлено {when}", "search": "", - "selected": "Вибрано {selectCount} із {totalCount} контейнерів" + "selected": "Вибрано {selectCount} із {totalCount} контейнерів", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "Несправний" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Образ" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Пуск", "notification": { diff --git a/packages/translation/src/lang/vi.json b/packages/translation/src/lang/vi.json index b04d50f53..f7f79efcd 100644 --- a/packages/translation/src/lang/vi.json +++ b/packages/translation/src/lang/vi.json @@ -1757,12 +1757,18 @@ "memory": { "label": "" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "" }, "defaultTab": { "label": "" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "", "search": "", - "selected": "" + "selected": "", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "Hình ảnh" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "Bắt đầu", "notification": { diff --git a/packages/translation/src/lang/zh.json b/packages/translation/src/lang/zh.json index fd14c0617..b36d01dfc 100644 --- a/packages/translation/src/lang/zh.json +++ b/packages/translation/src/lang/zh.json @@ -1757,12 +1757,18 @@ "memory": { "label": "顯示記憶體訊息" }, + "showUptime": { + "label": "" + }, "fileSystem": { "label": "顯示檔案系統訊息" }, "defaultTab": { "label": "預設頁面" }, + "visibleClusterSections": { + "label": "" + }, "sectionIndicatorRequirement": { "label": "部分指示需求" } @@ -1832,6 +1838,14 @@ } } }, + "dockerContainers": { + "name": "", + "description": "", + "option": {}, + "error": { + "internalServerError": "" + } + }, "common": { "location": { "query": "城市 / 郵遞區號", @@ -1945,6 +1959,10 @@ }, "applyFilterToRatio": { "label": "使用篩選器來計算速率" + }, + "limitPerIntegration": { + "label": "", + "description": "" } }, "errors": { @@ -3091,6 +3109,9 @@ }, "networkController": { "label": "網路控制" + }, + "dockerContainers": { + "label": "" } } }, @@ -3155,7 +3176,8 @@ "table": { "updated": "已更新於 {when}", "search": "搜尋 {count} 容器", - "selected": "{totalCount} 容器的 {selectCount}" + "selected": "{totalCount} 容器的 {selectCount}", + "footer": "" }, "field": { "name": { @@ -3173,6 +3195,14 @@ "dead": "廢棄" } }, + "stats": { + "cpu": { + "label": "" + }, + "memory": { + "label": "" + } + }, "containerImage": { "label": "鏡像" }, @@ -3181,6 +3211,7 @@ } }, "action": { + "title": "", "start": { "label": "啟動", "notification": { diff --git a/packages/ui/package.json b/packages/ui/package.json index 02e1916ed..22966ac47 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -29,12 +29,12 @@ "@homarr/log": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^8.0.1", - "@mantine/dates": "^8.0.1", - "@mantine/hooks": "^8.0.1", + "@mantine/core": "^8.0.2", + "@mantine/dates": "^8.0.2", + "@mantine/hooks": "^8.0.2", "@tabler/icons-react": "^3.33.0", "mantine-react-table": "2.0.0-beta.9", - "next": "15.3.2", + "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0" }, diff --git a/packages/validation/package.json b/packages/validation/package.json index 106c127c2..013027c9e 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -24,7 +24,7 @@ "dependencies": { "@homarr/definitions": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", - "zod": "^3.25.23", + "zod": "^3.25.42", "zod-form-data": "^2.0.7" }, "devDependencies": { diff --git a/packages/validation/src/app.ts b/packages/validation/src/app.ts index 278f4a8b5..c50b17fe0 100644 --- a/packages/validation/src/app.ts +++ b/packages/validation/src/app.ts @@ -4,7 +4,7 @@ export const appHrefSchema = z .string() .trim() .url() - .regex(/^https?:\/\//) // Only allow http and https for security reasons (javascript: is not allowed) + .regex(/^(?!javascript)[a-zA-Z]*:\/\//i) // javascript: is not allowed, i for case insensitive (so Javascript: is also not allowed) .or(z.literal("")) .transform((value) => (value.length === 0 ? null : value)) .nullable(); diff --git a/packages/widgets/package.json b/packages/widgets/package.json index 757586ea7..2dcc2b592 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -48,9 +48,9 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/charts": "^8.0.1", - "@mantine/core": "^8.0.1", - "@mantine/hooks": "^8.0.1", + "@mantine/charts": "^8.0.2", + "@mantine/core": "^8.0.2", + "@mantine/hooks": "^8.0.2", "@tabler/icons-react": "^3.33.0", "@tiptap/extension-color": "2.12.0", "@tiptap/extension-highlight": "2.12.0", @@ -70,13 +70,13 @@ "clsx": "^2.1.1", "dayjs": "^1.11.13", "mantine-react-table": "2.0.0-beta.9", - "next": "15.3.2", + "next": "15.3.3", "react": "19.1.0", "react-dom": "19.1.0", "react-markdown": "^10.1.0", "recharts": "^2.15.3", "video.js": "^8.22.0", - "zod": "^3.25.23" + "zod": "^3.25.42" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/widgets/src/calendar/calender-day.tsx b/packages/widgets/src/calendar/calender-day.tsx index 7fcef5396..a0d2644ee 100644 --- a/packages/widgets/src/calendar/calender-day.tsx +++ b/packages/widgets/src/calendar/calender-day.tsx @@ -44,8 +44,8 @@ export const CalendarDay = ({ date, events, disabled, rootHeight, rootWidth }: C h="100%" w="100%" p={0} - pt={isSmall ? 5 : 20} - pb={isSmall ? 5 : 20} + pt={isSmall ? 0 : 10} + pb={isSmall ? 0 : 10} m={0} bd={`2px solid ${opened && !disabled ? primaryColor : "transparent"}`} style={{ diff --git a/packages/widgets/src/calendar/component.tsx b/packages/widgets/src/calendar/component.tsx index 45e48bde2..bb9a067c1 100644 --- a/packages/widgets/src/calendar/component.tsx +++ b/packages/widgets/src/calendar/component.tsx @@ -68,6 +68,7 @@ const CalendarBase = ({ isEditMode, events, month, setMonth, options }: Calendar const mantineTheme = useMantineTheme(); const actualItemRadius = mantineTheme.radius[board.itemRadius]; const { ref, width, height } = useElementSize(); + const isSmall = width < 256; return ( { @@ -536,7 +538,7 @@ export default function DownloadClientsWidget({ sortUndefined: "last", Cell: ({ cell }) => { const upSpeed = cell.getValue(); - return upSpeed && {humanFileSize(upSpeed, "/s")}; + return upSpeed && {humanFileSize(upSpeed, "/s")}; }, }, ], diff --git a/packages/widgets/src/downloads/index.ts b/packages/widgets/src/downloads/index.ts index 5323c20df..edd4506e0 100644 --- a/packages/widgets/src/downloads/index.ts +++ b/packages/widgets/src/downloads/index.ts @@ -82,6 +82,11 @@ export const { definition, componentLoader } = createWidgetDefinition("downloads applyFilterToRatio: factory.switch({ defaultValue: true, }), + limitPerIntegration: factory.number({ + defaultValue: 50, + validate: z.number().min(1), + withDescription: true, + }), }), { defaultSort: { diff --git a/packages/widgets/src/health-monitoring/cluster/cluster-health.tsx b/packages/widgets/src/health-monitoring/cluster/cluster-health.tsx index db9718990..3ffa99bdc 100644 --- a/packages/widgets/src/health-monitoring/cluster/cluster-health.tsx +++ b/packages/widgets/src/health-monitoring/cluster/cluster-health.tsx @@ -72,126 +72,156 @@ export const ClusterHealthMonitoring = ({ const cpuPercent = maxCpu ? (usedCpu / maxCpu) * 100 : 0; const memPercent = maxMem ? (usedMem / maxMem) * 100 : 0; + const defaultValue = [options.visibleClusterSections.at(0) ?? "node"]; const isTiny = width < 256; return ( - - - {formatUptime(uptime, t)} - - - - - - - + {options.showUptime && ( + + + {formatUptime(uptime, t)} + + + )} + + {options.visibleClusterSections.length >= 1 && ( + + {options.visibleClusterSections.includes("node") && ( + + + + )} - - - + {options.visibleClusterSections.includes("qemu") && ( + + + + )} - - - + {options.visibleClusterSections.includes("lxc") && ( + + + + )} - - - - + {options.visibleClusterSections.includes("storage") && ( + + + + )} + + )} ); }; interface SummaryHeaderProps { - cpu: number; - memory: number; + cpu: { value: number; hidden: boolean }; + memory: { value: number; hidden: boolean }; isTiny: boolean; } const SummaryHeader = ({ cpu, memory, isTiny }: SummaryHeaderProps) => { const t = useI18n(); + + if (cpu.hidden && memory.hidden) return null; + return (
- - - -
- } - sections={[{ value: cpu, color: cpu > 75 ? "orange" : "green" }]} - /> - - - {t("widget.healthMonitoring.cluster.summary.cpu")} - - {cpu.toFixed(1)}% - - - - - - - } - sections={[{ value: memory, color: memory > 75 ? "orange" : "green" }]} - /> - - - {t("widget.healthMonitoring.cluster.summary.memory")} - - {memory.toFixed(1)}% - - + {!cpu.hidden && ( + + + + + } + sections={[{ value: cpu.value, color: cpu.value > 75 ? "orange" : "green" }]} + /> + + + {t("widget.healthMonitoring.cluster.summary.cpu")} + + {cpu.value.toFixed(1)}% + + + )} + {!memory.hidden && ( + + + + + } + sections={[{ value: memory.value, color: memory.value > 75 ? "orange" : "green" }]} + /> + + + {t("widget.healthMonitoring.cluster.summary.memory")} + + {memory.value.toFixed(1)}% + + + )} ); diff --git a/packages/widgets/src/health-monitoring/cluster/resource-table.tsx b/packages/widgets/src/health-monitoring/cluster/resource-table.tsx index 8f3637f19..1b0d4fe6f 100644 --- a/packages/widgets/src/health-monitoring/cluster/resource-table.tsx +++ b/packages/widgets/src/health-monitoring/cluster/resource-table.tsx @@ -38,34 +38,40 @@ export const ResourceTable = ({ type, data, isTiny }: ResourceTableProps) => { - {data.map((item) => { - return ( - - - - - - - - {item.name} - - - - {item.type === "storage" ? ( - {item.node} - ) : ( - <> - {(item.cpu.utilization * 100).toFixed(1)}% - - {(item.memory.total ? (item.memory.used / item.memory.total) * 100 : 0).toFixed(1)}% - - - )} - - - - ); - })} + {data + .sort((itemA, itemB) => { + const nodeResult = itemA.node.localeCompare(itemB.node); + if (nodeResult !== 0) return nodeResult; + return itemA.name.localeCompare(itemB.name); + }) + .map((item) => { + return ( + + + + + + + + {item.name} + + + + {item.type === "storage" ? ( + {item.node} + ) : ( + <> + {(item.cpu.utilization * 100).toFixed(1)}% + + {(item.memory.total ? (item.memory.used / item.memory.total) * 100 : 0).toFixed(1)}% + + + )} + + + + ); + })} ); diff --git a/packages/widgets/src/health-monitoring/index.ts b/packages/widgets/src/health-monitoring/index.ts index b3bc28980..8ed669750 100644 --- a/packages/widgets/src/health-monitoring/index.ts +++ b/packages/widgets/src/health-monitoring/index.ts @@ -8,34 +8,92 @@ import { optionsBuilder } from "../options"; export const { definition, componentLoader } = createWidgetDefinition("healthMonitoring", { icon: IconHeartRateMonitor, createOptions() { - return optionsBuilder.from((factory) => ({ - fahrenheit: factory.switch({ - defaultValue: false, + return optionsBuilder.from( + (factory) => ({ + fahrenheit: factory.switch({ + defaultValue: false, + }), + cpu: factory.switch({ + defaultValue: true, + }), + memory: factory.switch({ + defaultValue: true, + }), + showUptime: factory.switch({ + defaultValue: true, + }), + fileSystem: factory.switch({ + defaultValue: true, + }), + visibleClusterSections: factory.multiSelect({ + options: [ + { + value: "node", + label: (t) => t("widget.healthMonitoring.cluster.resource.node.name"), + }, + { + value: "qemu", + label: (t) => t("widget.healthMonitoring.cluster.resource.qemu.name"), + }, + { + value: "lxc", + label: (t) => t("widget.healthMonitoring.cluster.resource.lxc.name"), + }, + { + value: "storage", + label: (t) => t("widget.healthMonitoring.cluster.resource.storage.name"), + }, + ] as const, + defaultValue: ["node", "qemu", "lxc", "storage"] as const, + }), + defaultTab: factory.select({ + defaultValue: "system", + options: [ + { value: "system", label: "System" }, + { value: "cluster", label: "Cluster" }, + ] as const, + }), + sectionIndicatorRequirement: factory.select({ + defaultValue: "all", + options: [ + { value: "all", label: "All active" }, + { value: "any", label: "Any active" }, + ] as const, + }), }), - cpu: factory.switch({ - defaultValue: true, - }), - memory: factory.switch({ - defaultValue: true, - }), - fileSystem: factory.switch({ - defaultValue: true, - }), - defaultTab: factory.select({ - defaultValue: "system", - options: [ - { value: "system", label: "System" }, - { value: "cluster", label: "Cluster" }, - ] as const, - }), - sectionIndicatorRequirement: factory.select({ - defaultValue: "all", - options: [ - { value: "all", label: "All active" }, - { value: "any", label: "Any active" }, - ] as const, - }), - })); + { + fahrenheit: { + shouldHide(_, integrationKinds) { + // File system is only shown on system health tab + return integrationKinds.every((kind) => kind === "proxmox") || integrationKinds.length === 0; + }, + }, + fileSystem: { + shouldHide(_, integrationKinds) { + // File system is only shown on system health tab + return integrationKinds.every((kind) => kind === "proxmox") || integrationKinds.length === 0; + }, + }, + showUptime: { + shouldHide(_, integrationKinds) { + // Uptime is only shown on cluster health tab + return !integrationKinds.includes("proxmox"); + }, + }, + sectionIndicatorRequirement: { + shouldHide(_, integrationKinds) { + // Section indicator requirement is only shown on cluster health tab + return !integrationKinds.includes("proxmox"); + }, + }, + visibleClusterSections: { + shouldHide(_, integrationKinds) { + // Cluster sections are only shown on cluster health tab + return !integrationKinds.includes("proxmox"); + }, + }, + }, + ); }, supportedIntegrations: getIntegrationKindsByCategory("healthMonitoring"), errors: { diff --git a/packages/widgets/src/media-requests/stats/component.tsx b/packages/widgets/src/media-requests/stats/component.tsx index 87e7da8aa..ea6ca302d 100644 --- a/packages/widgets/src/media-requests/stats/component.tsx +++ b/packages/widgets/src/media-requests/stats/component.tsx @@ -96,6 +96,7 @@ export default function MediaServerWidget({ gap="xs" p="sm" align="center" + justify="space-between" style={{ pointerEvents: isEditMode ? "none" : undefined }} > @@ -123,7 +124,7 @@ export default function MediaServerWidget({ ))} - + {t("titles.users.main")} ({t("titles.users.requests")}) diff --git a/packages/widgets/src/options.ts b/packages/widgets/src/options.ts index 8ea413c50..194759396 100644 --- a/packages/widgets/src/options.ts +++ b/packages/widgets/src/options.ts @@ -43,7 +43,7 @@ interface SelectInput searchable?: boolean; } -interface NumberInput extends CommonInput { +interface NumberInput extends CommonInput { validate: z.ZodNumber; step?: number; } @@ -87,7 +87,7 @@ const optionsFactory = { }), number: (input: NumberInput) => ({ type: "number" as const, - defaultValue: input.defaultValue ?? ("" as const), + defaultValue: input.defaultValue ?? 0, step: input.step, withDescription: input.withDescription ?? false, validate: input.validate, diff --git a/packages/widgets/src/rssFeed/component.tsx b/packages/widgets/src/rssFeed/component.tsx index 672c264ec..7b3b0a5e9 100644 --- a/packages/widgets/src/rssFeed/component.tsx +++ b/packages/widgets/src/rssFeed/component.tsx @@ -55,7 +55,7 @@ export default function RssFeed({ options }: WidgetComponentProps<"rssFeed">) { dir={languageDir} c="dimmed" size="sm" - lineClamp={options.textLinesClamp as number} + lineClamp={options.textLinesClamp} dangerouslySetInnerHTML={{ __html: feedEntry.description }} /> )} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index defc3fccb..80de90671 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,28 +21,28 @@ importers: version: link:tooling/prettier '@semantic-release/changelog': specifier: ^6.0.3 - version: 6.0.3(semantic-release@24.2.4(typescript@5.8.3)) + version: 6.0.3(semantic-release@24.2.5(typescript@5.8.3)) '@semantic-release/commit-analyzer': specifier: ^13.0.1 - version: 13.0.1(semantic-release@24.2.4(typescript@5.8.3)) + version: 13.0.1(semantic-release@24.2.5(typescript@5.8.3)) '@semantic-release/git': specifier: ^10.0.1 - version: 10.0.1(semantic-release@24.2.4(typescript@5.8.3)) + version: 10.0.1(semantic-release@24.2.5(typescript@5.8.3)) '@semantic-release/github': - specifier: ^11.0.2 - version: 11.0.2(semantic-release@24.2.4(typescript@5.8.3)) + specifier: ^11.0.3 + version: 11.0.3(semantic-release@24.2.5(typescript@5.8.3)) '@semantic-release/npm': specifier: ^12.0.1 - version: 12.0.1(semantic-release@24.2.4(typescript@5.8.3)) + version: 12.0.1(semantic-release@24.2.5(typescript@5.8.3)) '@semantic-release/release-notes-generator': specifier: ^14.0.3 - version: 14.0.3(semantic-release@24.2.4(typescript@5.8.3)) + version: 14.0.3(semantic-release@24.2.5(typescript@5.8.3)) '@turbo/gen': - specifier: ^2.5.3 - version: 2.5.3(@types/node@22.15.21)(typescript@5.8.3) + specifier: ^2.5.4 + version: 2.5.4(@types/node@22.15.28)(typescript@5.8.3) '@vitejs/plugin-react': specifier: ^4.5.0 - version: 4.5.0(vite@5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0)) + version: 4.5.0(vite@5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0)) '@vitest/coverage-v8': specifier: ^3.1.4 version: 3.1.4(vitest@3.1.4) @@ -50,8 +50,8 @@ importers: specifier: ^3.1.4 version: 3.1.4(vitest@3.1.4) conventional-changelog-conventionalcommits: - specifier: ^8.0.0 - version: 8.0.0 + specifier: ^9.0.0 + version: 9.0.0 cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -62,23 +62,23 @@ importers: specifier: ^3.5.3 version: 3.5.3 semantic-release: - specifier: ^24.2.4 - version: 24.2.4(typescript@5.8.3) + specifier: ^24.2.5 + version: 24.2.5(typescript@5.8.3) testcontainers: specifier: ^10.28.0 version: 10.28.0 turbo: - specifier: ^2.5.3 - version: 2.5.3 + specifier: ^2.5.4 + version: 2.5.4 typescript: specifier: ^5.8.3 version: 5.8.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0)) + version: 5.1.4(typescript@5.8.3)(vite@5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0)) vitest: specifier: ^3.1.4 - version: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.21)(@vitest/ui@3.1.4)(jsdom@26.1.0)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) + version: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(@vitest/ui@3.1.4)(jsdom@26.1.0)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) apps/nextjs: dependencies: @@ -182,23 +182,23 @@ importers: specifier: workspace:^0.1.0 version: link:../../packages/widgets '@mantine/colors-generator': - specifier: ^8.0.1 - version: 8.0.1(chroma-js@3.1.2) + specifier: ^8.0.2 + version: 8.0.2(chroma-js@3.1.2) '@mantine/core': - specifier: ^8.0.1 - version: 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/dropzone': - specifier: ^8.0.1 - version: 8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': - specifier: ^8.0.1 - version: 8.0.1(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(react@19.1.0) '@mantine/modals': - specifier: ^8.0.1 - version: 8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/tiptap': - specifier: ^8.0.1 - version: 8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(@tiptap/extension-link@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0))(@tiptap/react@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(@tiptap/extension-link@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0))(@tiptap/react@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@million/lint': specifier: 1.0.14 version: 1.0.14(rollup@4.21.3)(webpack-sources@3.2.3) @@ -206,26 +206,26 @@ importers: specifier: ^3.33.0 version: 3.33.0(react@19.1.0) '@tanstack/react-query': - specifier: ^5.76.2 - version: 5.76.2(react@19.1.0) + specifier: ^5.79.0 + version: 5.79.0(react@19.1.0) '@tanstack/react-query-devtools': - specifier: ^5.76.2 - version: 5.76.2(@tanstack/react-query@5.76.2(react@19.1.0))(react@19.1.0) + specifier: ^5.79.0 + version: 5.79.0(@tanstack/react-query@5.79.0(react@19.1.0))(react@19.1.0) '@tanstack/react-query-next-experimental': - specifier: ^5.76.2 - version: 5.76.2(@tanstack/react-query@5.76.2(react@19.1.0))(next@15.3.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0) + specifier: ^5.79.0 + version: 5.79.0(@tanstack/react-query@5.79.0(react@19.1.0))(next@15.3.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0) '@trpc/client': - specifier: ^11.1.2 - version: 11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3) + specifier: ^11.1.4 + version: 11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3) '@trpc/next': - specifier: ^11.1.2 - version: 11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/react-query@11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(next@15.3.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + specifier: ^11.1.4 + version: 11.1.4(@tanstack/react-query@5.79.0(react@19.1.0))(@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3))(@trpc/react-query@11.1.4(@tanstack/react-query@5.79.0(react@19.1.0))(@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.4(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3))(@trpc/server@11.1.4(typescript@5.8.3))(next@15.3.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) '@trpc/react-query': - specifier: ^11.1.2 - version: 11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + specifier: ^11.1.4 + version: 11.1.4(@tanstack/react-query@5.79.0(react@19.1.0))(@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.4(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) '@trpc/server': - specifier: ^11.1.2 - version: 11.1.2(typescript@5.8.3) + specifier: ^11.1.4 + version: 11.1.4(typescript@5.8.3) '@xterm/addon-canvas': specifier: ^0.7.0 version: 0.7.0(@xterm/xterm@5.5.0) @@ -248,20 +248,20 @@ importers: specifier: ^16.5.0 version: 16.5.0 flag-icons: - specifier: ^7.3.2 - version: 7.3.2 + specifier: ^7.5.0 + version: 7.5.0 glob: specifier: ^11.0.2 version: 11.0.2 jotai: - specifier: ^2.12.4 - version: 2.12.4(@types/react@19.1.5)(react@19.1.0) + specifier: ^2.12.5 + version: 2.12.5(@types/react@19.1.6)(react@19.1.0) mantine-react-table: specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(@tabler/icons-react@3.33.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.0.0-beta.9(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(@tabler/icons-react@3.33.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) postcss-preset-mantine: specifier: ^1.17.0 version: 1.17.0(postcss@8.4.47) @@ -288,13 +288,13 @@ importers: version: 2.2.2 swagger-ui-react: specifier: ^5.22.0 - version: 5.22.0(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 5.22.0(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) use-deep-compare-effect: specifier: ^1.8.1 version: 1.8.1(react@19.1.0) zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -309,17 +309,17 @@ importers: specifier: 3.1.1 version: 3.1.1 '@types/node': - specifier: ^22.15.21 - version: 22.15.21 + specifier: ^22.15.28 + version: 22.15.28 '@types/prismjs': specifier: ^1.26.5 version: 1.26.5 '@types/react': - specifier: 19.1.5 - version: 19.1.5 + specifier: 19.1.6 + version: 19.1.6 '@types/react-dom': specifier: 19.1.5 - version: 19.1.5(@types/react@19.1.5) + version: 19.1.5(@types/react@19.1.6) '@types/swagger-ui-react': specifier: ^5.18.0 version: 5.18.0 @@ -409,14 +409,14 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/node': - specifier: ^22.15.21 - version: 22.15.21 + specifier: ^22.15.28 + version: 22.15.28 dotenv-cli: specifier: ^8.0.0 version: 8.0.0 esbuild: - specifier: ^0.25.4 - version: 0.25.4 + specifier: ^0.25.5 + version: 0.25.5 eslint: specifier: ^9.27.0 version: 9.27.0 @@ -479,8 +479,8 @@ importers: specifier: ^8.18.1 version: 8.18.1 esbuild: - specifier: ^0.25.4 - version: 0.25.4 + specifier: ^0.25.5 + version: 0.25.5 eslint: specifier: ^9.27.0 version: 9.27.0 @@ -585,29 +585,29 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@kubernetes/client-node': - specifier: ^1.2.0 - version: 1.2.0(ws@8.18.2) + specifier: ^1.3.0 + version: 1.3.0 '@tanstack/react-query': - specifier: ^5.76.2 - version: 5.76.2(react@19.1.0) + specifier: ^5.79.0 + version: 5.79.0(react@19.1.0) '@trpc/client': - specifier: ^11.1.2 - version: 11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3) + specifier: ^11.1.4 + version: 11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3) '@trpc/react-query': - specifier: ^11.1.2 - version: 11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + specifier: ^11.1.4 + version: 11.1.4(@tanstack/react-query@5.79.0(react@19.1.0))(@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.4(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) '@trpc/server': - specifier: ^11.1.2 - version: 11.1.2(typescript@5.8.3) + specifier: ^11.1.4 + version: 11.1.4(typescript@5.8.3) '@trpc/tanstack-react-query': - specifier: ^11.1.2 - version: 11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + specifier: ^11.1.4 + version: 11.1.4(@tanstack/react-query@5.79.0(react@19.1.0))(@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.4(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) lodash.clonedeep: specifier: ^4.5.0 version: 4.5.0 next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: specifier: 19.1.0 version: 19.1.0 @@ -618,11 +618,11 @@ importers: specifier: 2.2.2 version: 2.2.2 trpc-to-openapi: - specifier: ^2.2.0 - version: 2.2.0(@trpc/server@11.1.2(typescript@5.8.3))(zod-openapi@2.19.0(zod@3.25.23))(zod@3.25.23) + specifier: ^2.3.1 + version: 2.3.1(@trpc/server@11.1.4(typescript@5.8.3))(zod-openapi@2.19.0(zod@3.25.42))(zod@3.25.42) zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -679,14 +679,14 @@ importers: specifier: ^0.9.1 version: 0.9.1 ldapts: - specifier: 8.0.0 - version: 8.0.0 + specifier: 8.0.1 + version: 8.0.1 next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) next-auth: specifier: 5.0.0-beta.28 - version: 5.0.0-beta.28(next@15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0) + version: 5.0.0-beta.28(next@15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -694,8 +694,8 @@ importers: specifier: 19.1.0 version: 19.1.0(react@19.1.0) zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -809,8 +809,8 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript esbuild: - specifier: ^0.25.4 - version: 0.25.4 + specifier: ^0.25.5 + version: 0.25.5 eslint: specifier: ^9.27.0 version: 9.27.0 @@ -830,8 +830,8 @@ importers: specifier: ^1.11.13 version: 1.11.13 next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: specifier: 19.1.0 version: 19.1.0 @@ -842,11 +842,11 @@ importers: specifier: 7.10.0 version: 7.10.0 zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 zod-validation-error: specifier: ^3.4.1 - version: 3.4.1(zod@3.25.23) + version: 3.4.1(zod@3.25.42) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -996,8 +996,8 @@ importers: specifier: workspace:^0.1.0 version: link:../common node-cron: - specifier: ^3.0.3 - version: 3.0.3 + specifier: ^4.0.7 + version: 4.0.7 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1039,8 +1039,8 @@ importers: specifier: workspace:^0.1.0 version: link:../server-settings '@mantine/core': - specifier: ^8.0.1 - version: 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@paralleldrive/cuid2': specifier: ^2.2.2 version: 2.2.2 @@ -1057,11 +1057,11 @@ importers: specifier: ^0.31.1 version: 0.31.1 drizzle-orm: - specifier: ^0.43.1 - version: 0.43.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(gel@2.0.0)(mysql2@3.14.1) + specifier: ^0.44.0 + version: 0.44.0(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(gel@2.0.0)(mysql2@3.14.1) drizzle-zod: specifier: ^0.7.1 - version: 0.7.1(drizzle-orm@0.43.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(gel@2.0.0)(mysql2@3.14.1))(zod@3.25.23) + version: 0.7.1(drizzle-orm@0.44.0(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(gel@2.0.0)(mysql2@3.14.1))(zod@3.25.42) mysql2: specifier: 3.14.1 version: 3.14.1 @@ -1082,8 +1082,8 @@ importers: specifier: ^8.0.0 version: 8.0.0 esbuild: - specifier: ^0.25.4 - version: 0.25.4 + specifier: ^0.25.5 + version: 0.25.5 eslint: specifier: ^9.27.0 version: 9.27.0 @@ -1106,8 +1106,8 @@ importers: specifier: ^5.2.3 version: 5.2.3 zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1162,11 +1162,11 @@ importers: packages/env: dependencies: '@t3-oss/env-nextjs': - specifier: ^0.13.4 - version: 0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.23) + specifier: ^0.13.6 + version: 0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.42) zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1196,11 +1196,11 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/form': - specifier: ^8.0.1 - version: 8.0.1(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(react@19.1.0) zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1242,14 +1242,14 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^8.0.1 - version: 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1355,8 +1355,8 @@ importers: specifier: ^0.6.2 version: 0.6.2 zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1395,8 +1395,8 @@ importers: specifier: 3.17.0 version: 3.17.0 zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1423,11 +1423,11 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/core': - specifier: ^8.0.1 - version: 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': - specifier: ^8.0.1 - version: 8.0.1(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -1484,8 +1484,8 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^8.0.1 - version: 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tabler/icons-react': specifier: ^3.33.0 version: 3.33.0(react@19.1.0) @@ -1493,8 +1493,8 @@ importers: specifier: ^1.11.13 version: 1.11.13 next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: specifier: 19.1.0 version: 19.1.0 @@ -1502,8 +1502,8 @@ importers: specifier: 19.1.0 version: 19.1.0(react@19.1.0) zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1527,8 +1527,8 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/notifications': - specifier: ^8.0.1 - version: 8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tabler/icons-react': specifier: ^3.33.0 version: 3.33.0(react@19.1.0) @@ -1585,17 +1585,17 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^8.0.1 - version: 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': - specifier: ^8.0.1 - version: 8.0.1(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(react@19.1.0) adm-zip: specifier: 0.5.16 version: 0.5.16 next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: specifier: 19.1.0 version: 19.1.0 @@ -1606,11 +1606,11 @@ importers: specifier: 2.2.2 version: 2.2.2 zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 zod-form-data: specifier: ^2.0.7 - version: 2.0.7(zod@3.25.23) + version: 2.0.7(zod@3.25.42) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1637,8 +1637,8 @@ importers: specifier: workspace:^0.1.0 version: link:../common zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1748,8 +1748,8 @@ importers: specifier: ^1.11.13 version: 1.11.13 octokit: - specifier: ^5.0.2 - version: 5.0.2 + specifier: ^5.0.3 + version: 5.0.3 superjson: specifier: 2.2.2 version: 2.2.2 @@ -1807,11 +1807,11 @@ importers: specifier: workspace:^0.1.0 version: link:../server-settings '@mantine/dates': - specifier: ^8.0.1 - version: 8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: specifier: 19.1.0 version: 19.1.0 @@ -1868,23 +1868,23 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/core': - specifier: ^8.0.1 - version: 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': - specifier: ^8.0.1 - version: 8.0.1(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(react@19.1.0) '@mantine/spotlight': - specifier: ^8.0.1 - version: 8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tabler/icons-react': specifier: ^3.33.0 version: 3.33.0(react@19.1.0) jotai: - specifier: ^2.12.4 - version: 2.12.4(@types/react@19.1.5)(react@19.1.0) + specifier: ^2.12.5 + version: 2.12.5(@types/react@19.1.6)(react@19.1.0) next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: specifier: 19.1.0 version: 19.1.0 @@ -1927,13 +1927,13 @@ importers: version: 4.3.1 mantine-react-table: specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(@tabler/icons-react@3.33.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.0.0-beta.9(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(@tabler/icons-react@3.33.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) next-intl: specifier: 4.1.0 - version: 4.1.0(next@15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0)(typescript@5.8.3) + version: 4.1.0(next@15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0)(typescript@5.8.3) react: specifier: 19.1.0 version: 19.1.0 @@ -1975,23 +1975,23 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^8.0.1 - version: 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/dates': - specifier: ^8.0.1 - version: 8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': - specifier: ^8.0.1 - version: 8.0.1(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(react@19.1.0) '@tabler/icons-react': specifier: ^3.33.0 version: 3.33.0(react@19.1.0) mantine-react-table: specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(@tabler/icons-react@3.33.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.0.0-beta.9(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(@tabler/icons-react@3.33.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: specifier: 19.1.0 version: 19.1.0 @@ -2027,11 +2027,11 @@ importers: specifier: workspace:^0.1.0 version: link:../translation zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 zod-form-data: specifier: ^2.0.7 - version: 2.0.7(zod@3.25.23) + version: 2.0.7(zod@3.25.42) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2121,14 +2121,14 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/charts': - specifier: ^8.0.1 - version: 8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(recharts@2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + specifier: ^8.0.2 + version: 8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(recharts@2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) '@mantine/core': - specifier: ^8.0.1 - version: 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': - specifier: ^8.0.1 - version: 8.0.1(react@19.1.0) + specifier: ^8.0.2 + version: 8.0.2(react@19.1.0) '@tabler/icons-react': specifier: ^3.33.0 version: 3.33.0(react@19.1.0) @@ -2185,10 +2185,10 @@ importers: version: 1.11.13 mantine-react-table: specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(@tabler/icons-react@3.33.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.0.0-beta.9(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(@tabler/icons-react@3.33.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: specifier: 19.1.0 version: 19.1.0 @@ -2197,7 +2197,7 @@ importers: version: 19.1.0(react@19.1.0) react-markdown: specifier: ^10.1.0 - version: 10.1.0(@types/react@19.1.5)(react@19.1.0) + version: 10.1.0(@types/react@19.1.6)(react@19.1.0) recharts: specifier: ^2.15.3 version: 2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -2205,8 +2205,8 @@ importers: specifier: ^8.22.0 version: 8.22.0 zod: - specifier: ^3.25.23 - version: 3.25.23 + specifier: ^3.25.42 + version: 3.25.42 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -2230,17 +2230,17 @@ importers: tooling/eslint: dependencies: '@next/eslint-plugin-next': - specifier: 15.3.2 - version: 15.3.2 + specifier: 15.3.3 + version: 15.3.3 eslint-config-prettier: specifier: ^10.1.5 version: 10.1.5(eslint@9.27.0) eslint-config-turbo: - specifier: ^2.5.3 - version: 2.5.3(eslint@9.27.0)(turbo@2.5.3) + specifier: ^2.5.4 + version: 2.5.4(eslint@9.27.0)(turbo@2.5.4) eslint-plugin-import: specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) + version: 2.31.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) eslint-plugin-jsx-a11y: specifier: ^6.10.2 version: 6.10.2(eslint@9.27.0) @@ -2251,8 +2251,8 @@ importers: specifier: ^5.2.0 version: 5.2.0(eslint@9.27.0) typescript-eslint: - specifier: ^8.32.1 - version: 8.32.1(eslint@9.27.0)(typescript@5.8.3) + specifier: ^8.33.0 + version: 8.33.0(eslint@9.27.0)(typescript@5.8.3) devDependencies: '@homarr/prettier-config': specifier: workspace:^0.1.0 @@ -2272,8 +2272,8 @@ importers: tooling/prettier: dependencies: '@ianvs/prettier-plugin-sort-imports': - specifier: ^4.4.1 - version: 4.4.1(prettier@3.5.3) + specifier: ^4.4.2 + version: 4.4.2(prettier@3.5.3) prettier: specifier: ^3.5.3 version: 3.5.3 @@ -2422,10 +2422,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime-corejs3@7.27.0': - resolution: {integrity: sha512-UWjX6t+v+0ckwZ50Y5ShZLnlk95pP5MyW/pon9tiYzl3+18pkTHTFNTKr7rQbfRXPkowt2QAn30o1b6oswszew==} - engines: {node: '>=6.9.0'} - '@babel/runtime-corejs3@7.27.1': resolution: {integrity: sha512-909rVuj3phpjW6y0MCXAZ5iNeORePa6ldJvp2baWGcTjwqbBDDz6xoS5JHJ7lS88NlwLYj07ImL/8IUMtDZzTA==} engines: {node: '>=6.9.0'} @@ -2600,8 +2596,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.4': - resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} + '@esbuild/aix-ppc64@0.25.5': + resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -2624,8 +2620,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.4': - resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} + '@esbuild/android-arm64@0.25.5': + resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -2648,8 +2644,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.4': - resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} + '@esbuild/android-arm@0.25.5': + resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -2672,8 +2668,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.4': - resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} + '@esbuild/android-x64@0.25.5': + resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -2696,8 +2692,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.4': - resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} + '@esbuild/darwin-arm64@0.25.5': + resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -2720,8 +2716,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.4': - resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} + '@esbuild/darwin-x64@0.25.5': + resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -2744,8 +2740,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.4': - resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} + '@esbuild/freebsd-arm64@0.25.5': + resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -2768,8 +2764,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.4': - resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} + '@esbuild/freebsd-x64@0.25.5': + resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -2792,8 +2788,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.4': - resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} + '@esbuild/linux-arm64@0.25.5': + resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -2816,8 +2812,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.4': - resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} + '@esbuild/linux-arm@0.25.5': + resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -2840,8 +2836,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.4': - resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} + '@esbuild/linux-ia32@0.25.5': + resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -2864,8 +2860,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.4': - resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} + '@esbuild/linux-loong64@0.25.5': + resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2888,8 +2884,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.4': - resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} + '@esbuild/linux-mips64el@0.25.5': + resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2912,8 +2908,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.4': - resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} + '@esbuild/linux-ppc64@0.25.5': + resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2936,8 +2932,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.4': - resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} + '@esbuild/linux-riscv64@0.25.5': + resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2960,8 +2956,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.4': - resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} + '@esbuild/linux-s390x@0.25.5': + resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2984,14 +2980,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.4': - resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} + '@esbuild/linux-x64@0.25.5': + resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.4': - resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} + '@esbuild/netbsd-arm64@0.25.5': + resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -3014,14 +3010,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.4': - resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} + '@esbuild/netbsd-x64@0.25.5': + resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.4': - resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} + '@esbuild/openbsd-arm64@0.25.5': + resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -3044,8 +3040,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.4': - resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} + '@esbuild/openbsd-x64@0.25.5': + resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -3068,8 +3064,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.4': - resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} + '@esbuild/sunos-x64@0.25.5': + resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -3092,8 +3088,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.4': - resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} + '@esbuild/win32-arm64@0.25.5': + resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -3116,8 +3112,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.4': - resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} + '@esbuild/win32-ia32@0.25.5': + resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -3140,8 +3136,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.4': - resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} + '@esbuild/win32-x64@0.25.5': + resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -3273,11 +3269,11 @@ packages: resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} - '@ianvs/prettier-plugin-sort-imports@4.4.1': - resolution: {integrity: sha512-F0/Hrcfpy8WuxlQyAWJTEren/uxKhYonOGY4OyWmwRdeTvkh9mMSCxowZLjNkhwi/2ipqCgtXwwOk7tW0mWXkA==} + '@ianvs/prettier-plugin-sort-imports@4.4.2': + resolution: {integrity: sha512-KkVFy3TLh0OFzimbZglMmORi+vL/i2OFhEs5M07R9w0IwWAGpsNNyE4CY/2u0YoMF5bawKC2+8/fUH60nnNtjw==} peerDependencies: '@vue/compiler-sfc': 2.7.x || 3.x - prettier: 2 || 3 + prettier: 2 || 3 || ^4.0.0-0 peerDependenciesMeta: '@vue/compiler-sfc': optional: true @@ -3451,8 +3447,8 @@ packages: peerDependencies: jsep: ^0.4.0||^1.0.0 - '@kubernetes/client-node@1.2.0': - resolution: {integrity: sha512-poAuFgw571HYaaCp+96Zm82CUJY95Nf3f6Qfsv/Ah/fj8ra2558xX07u0FmGgCR2EJj2mLyFqVGdT5MndRcawQ==} + '@kubernetes/client-node@1.3.0': + resolution: {integrity: sha512-IE0yrIpOT97YS5fg2QpzmPzm8Wmcdf4ueWMn+FiJSI3jgTTQT1u+LUhoYpdfhdHAVxdrNsaBg2C0UXSnOgMoCQ==} '@libsql/client-wasm@0.14.0': resolution: {integrity: sha512-gB/jtz0xuwrqAHApBv9e9JSew2030Fhj2edyZ83InZ4yPj/Q2LTUlEhaspEYT0T0xsAGqPy38uGrmq/OGS+DdQ==} @@ -3462,88 +3458,88 @@ packages: '@libsql/core@0.14.0': resolution: {integrity: sha512-nhbuXf7GP3PSZgdCY2Ecj8vz187ptHlZQ0VRc751oB2C1W8jQUXKKklvt7t1LJiUTQBVJuadF628eUk+3cRi4Q==} - '@mantine/charts@8.0.1': - resolution: {integrity: sha512-yntk4siXpQGSj83tDwftJw6fHTOBS6c/VWinjvTW29ptEdjBCxbKFfyyDc9UGVVuO7ovbdtpfCZBpuN2I7HPCA==} + '@mantine/charts@8.0.2': + resolution: {integrity: sha512-hVS1+CT+7e3+ZbU1xx7Nyx/5ZBSxzS+68SKeVLeOZPGl9Wx35CY1oLn0n53vQPWV2WFKd0u0Bq3d1iuaDpkzGA==} peerDependencies: - '@mantine/core': 8.0.1 - '@mantine/hooks': 8.0.1 + '@mantine/core': 8.0.2 + '@mantine/hooks': 8.0.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x recharts: ^2.13.3 - '@mantine/colors-generator@8.0.1': - resolution: {integrity: sha512-3xc0MYQGIwY+NH8tk/ANRfULBpKY2yjoaK68Uz1uRr8KqZJ8iSk1bZMph1ZxzIr48WPG/iNpEJv+ZZt+Ns7raQ==} + '@mantine/colors-generator@8.0.2': + resolution: {integrity: sha512-c/eqgYorwhUNVBogup1ZoEQI+x+E0t1UKdr2Bzpmdmt1E4OAggdcnjwEzMCOoIl78xO4M1t8qNRPuFtDbq3Qqw==} peerDependencies: chroma-js: '>=2.4.2' - '@mantine/core@8.0.1': - resolution: {integrity: sha512-4ezaxKjChSPtawamQ3KrJq+x506uTouXlL0Z5fP+t105KnyxMrAJUENhbh2ivD4pq9Zh1BFiD9IWzyu3IXFR8w==} + '@mantine/core@8.0.2': + resolution: {integrity: sha512-2Ps7bRTeTbRwAKTCL9xdflPz0pwOlTq6ohyTbDZMCADqecf09GHI7GiX+HJatqbPZ2t8jK0fN1b48YhjJaxTqg==} peerDependencies: - '@mantine/hooks': 8.0.1 + '@mantine/hooks': 8.0.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/dates@8.0.1': - resolution: {integrity: sha512-YCmV5jiGE9Ts2uhNS217IA1Hd5kAa8oaEtfnU0bS1sL36zKEf2s6elmzY718XdF8tFil0jJWAj0jiCrA3/udMg==} + '@mantine/dates@8.0.2': + resolution: {integrity: sha512-V1xU00gECfykA4UFln8ulPsPHvaTncsg9zUbzCwqwEAYlZFG3Nnj5eBzzpV3IN1LNDPEVGb1gAOM6jZ+fi2uRQ==} peerDependencies: - '@mantine/core': 8.0.1 - '@mantine/hooks': 8.0.1 + '@mantine/core': 8.0.2 + '@mantine/hooks': 8.0.2 dayjs: '>=1.0.0' react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/dropzone@8.0.1': - resolution: {integrity: sha512-8PH5yrtA/ebCIwjs0m4J9qOvEyS/P4XmNlHrw0E389/qq64Ol7+/ZH7Xtiq64IaY8kvsMW1XHaV0c+bdYrijiA==} + '@mantine/dropzone@8.0.2': + resolution: {integrity: sha512-dWsz99QjWOQy7wDx4zzvBrPQ6l3201kg0iugk2Dm+MmN9mlboychz/LIZzoCGsodtQRLAsoTlN2zOqhsiggRfw==} peerDependencies: - '@mantine/core': 8.0.1 - '@mantine/hooks': 8.0.1 + '@mantine/core': 8.0.2 + '@mantine/hooks': 8.0.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/form@8.0.1': - resolution: {integrity: sha512-lQ94gn/9p60C+tKEW7psQ1tZHod58Q0bXLbRDadRKMwnqBb2WFoIuaQWPDo7ox+PqyOv28dtflgS+Lm95EbBhg==} + '@mantine/form@8.0.2': + resolution: {integrity: sha512-vSp9BfrhC9o7RMRYMaND2UAflXO4i6c5F1qPkiM2FID6ye2RJxW8YHaGa3kA0VfBbhDw9sFBbl8p7ttE4RPzcw==} peerDependencies: react: ^18.x || ^19.x - '@mantine/hooks@8.0.1': - resolution: {integrity: sha512-GvLdM4Ro3QcDyIgqrdXsUZmeeKye2TNL/k3mEr9JhM5KacHQjr83JPp0u9eLobn7kiyBqpLTYmVYAbmjJdCxHw==} + '@mantine/hooks@8.0.2': + resolution: {integrity: sha512-0jpEdC0KIAZ54D5kd9rJudrEm6vkvnrL9yYHnkuNbxokXSzDdYA/wpHnKR5WW+u6fW4JF6A6A7gN1vXKeC9MSw==} peerDependencies: react: ^18.x || ^19.x - '@mantine/modals@8.0.1': - resolution: {integrity: sha512-pC9dl1N115Wx42QHJFUMNC1IheL+MLrsPPHOZER+882DTWsoO+O6d668ZffuXIKLpkCj87uaDm9Pom1GAHiA/Q==} + '@mantine/modals@8.0.2': + resolution: {integrity: sha512-AAYDotb7vWZcBdCph4rjy7VNn9AyReRa+bea+g5xplC2G03Fxcd9Lve2rodhuNx/l6IQe7INRkD+fzXvpDGnew==} peerDependencies: - '@mantine/core': 8.0.1 - '@mantine/hooks': 8.0.1 + '@mantine/core': 8.0.2 + '@mantine/hooks': 8.0.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/notifications@8.0.1': - resolution: {integrity: sha512-7TX9OyAmUcok3qffnheS7gTAMKDczETy8XEYDr38Sy/XIoXLjM+3CwO+a/vfd1F9oW2LvkahkHT0Ey+vBOVd0Q==} + '@mantine/notifications@8.0.2': + resolution: {integrity: sha512-whSuoCCZxQF3VM40sumCte9tA79to8OCV/vv0z8PeVTj/eKlaTR+P9LKigO9ovhuNELrvvO3Rxcnno5aMBz0oA==} peerDependencies: - '@mantine/core': 8.0.1 - '@mantine/hooks': 8.0.1 + '@mantine/core': 8.0.2 + '@mantine/hooks': 8.0.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/spotlight@8.0.1': - resolution: {integrity: sha512-ZJE7yELMT5bGf3OBQQ4RexKkC3TRB7PIuPA8+b6ASiTKF41g0a8dQWOZDfMb+el1D7m+9wtggQBZVO8F6JsqQQ==} + '@mantine/spotlight@8.0.2': + resolution: {integrity: sha512-uqzSAaIAk7zQxs7uMWj/YFJA+EXmrnhYy7Y/kG4c/Us2QI2VWb2cgHVGhb3yzJFmjPhiXWjsaLf25AiyNdO53A==} peerDependencies: - '@mantine/core': 8.0.1 - '@mantine/hooks': 8.0.1 + '@mantine/core': 8.0.2 + '@mantine/hooks': 8.0.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/store@8.0.1': - resolution: {integrity: sha512-3wfUDeiERXJEI+MGgRAbh+9aY35D9oE4UzquLqZh8cIiH5i5g64Y/eJx3PfjHgO5+Zeu6lbgTgL6k4lg4a2SBQ==} + '@mantine/store@8.0.2': + resolution: {integrity: sha512-/LuizGWAXjVnLLZ55f0QYotiqb8GlHpIb4KRf4LqRkbsA6UAZEVb6beuk0vI2Azf6vfuh7sTHu1xVC5zI6C+Cw==} peerDependencies: react: ^18.x || ^19.x - '@mantine/tiptap@8.0.1': - resolution: {integrity: sha512-Gitt1UNGbbgtTmqwEcDpE81aTqPpz+SjBwy2nKETnG1QMjqbB8Yr7EBIZm7GVuFhrt8ml6QJu+3WW2GslkPtAQ==} + '@mantine/tiptap@8.0.2': + resolution: {integrity: sha512-Yg+bBDhxM5MC10EUVtJCri6TcbUj36E6/8YRVi7+deYXBX8zakkhaPiBzlA3kbx2TcXShVDFyV5c0CSxFtO9QQ==} peerDependencies: - '@mantine/core': 8.0.1 - '@mantine/hooks': 8.0.1 + '@mantine/core': 8.0.2 + '@mantine/hooks': 8.0.2 '@tiptap/extension-link': '>=2.1.12' '@tiptap/react': '>=2.1.12' react: ^18.x || ^19.x @@ -3560,56 +3556,56 @@ packages: '@ndaidong/bellajs@12.0.1': resolution: {integrity: sha512-1iY42uiHz0cxNMbde7O3zVN+ZX1viOOUOBRt6ht6lkRZbSjwOnFV34Zv4URp3hGzEe6L9Byk7BOq/41H0PzAOQ==} - '@next/env@15.3.2': - resolution: {integrity: sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==} + '@next/env@15.3.3': + resolution: {integrity: sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==} - '@next/eslint-plugin-next@15.3.2': - resolution: {integrity: sha512-ijVRTXBgnHT33aWnDtmlG+LJD+5vhc9AKTJPquGG5NKXjpKNjc62woIhFtrAcWdBobt8kqjCoaJ0q6sDQoX7aQ==} + '@next/eslint-plugin-next@15.3.3': + resolution: {integrity: sha512-VKZJEiEdpKkfBmcokGjHu0vGDG+8CehGs90tBEy/IDoDDKGngeyIStt2MmE5FYNyU9BhgR7tybNWTAJY/30u+Q==} - '@next/swc-darwin-arm64@15.3.2': - resolution: {integrity: sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==} + '@next/swc-darwin-arm64@15.3.3': + resolution: {integrity: sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.3.2': - resolution: {integrity: sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==} + '@next/swc-darwin-x64@15.3.3': + resolution: {integrity: sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.3.2': - resolution: {integrity: sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==} + '@next/swc-linux-arm64-gnu@15.3.3': + resolution: {integrity: sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.3.2': - resolution: {integrity: sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==} + '@next/swc-linux-arm64-musl@15.3.3': + resolution: {integrity: sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.3.2': - resolution: {integrity: sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==} + '@next/swc-linux-x64-gnu@15.3.3': + resolution: {integrity: sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.3.2': - resolution: {integrity: sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==} + '@next/swc-linux-x64-musl@15.3.3': + resolution: {integrity: sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.3.2': - resolution: {integrity: sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==} + '@next/swc-win32-arm64-msvc@15.3.3': + resolution: {integrity: sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.3.2': - resolution: {integrity: sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==} + '@next/swc-win32-x64-msvc@15.3.3': + resolution: {integrity: sha512-4QZG6F8enl9/S2+yIiOiju0iCTFd93d8VC1q9LZS4p/Xuk81W2QDjCFeoogmrWWkAD59z8ZxepBQap2dKS5ruw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3650,10 +3646,6 @@ packages: resolution: {integrity: sha512-GV9IW134PHsLhtUad21WIeP9mlJ+QNpFd6V9vuPWmaiN25HEJeEQUcS4y5oRuqCm9iWDLtfIs+9K8uczBXKr6A==} engines: {node: '>= 20'} - '@octokit/auth-token@5.1.1': - resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} - engines: {node: '>= 18'} - '@octokit/auth-token@6.0.0': resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} engines: {node: '>= 20'} @@ -3662,26 +3654,14 @@ packages: resolution: {integrity: sha512-qVq1vdjLLZdE8kH2vDycNNjuJRCD1q2oet1nA/GXWaYlpDxlR7rdVhX/K/oszXslXiQIiqrQf+rdhDlA99JdTQ==} engines: {node: '>= 20'} - '@octokit/core@6.1.5': - resolution: {integrity: sha512-vvmsN0r7rguA+FySiCsbaTTobSftpIDIpPW81trAmsv9TGxg3YCujAxRYp/Uy8xmDgYCzzgulG62H7KYUFmeIg==} - engines: {node: '>= 18'} - '@octokit/core@7.0.2': resolution: {integrity: sha512-ODsoD39Lq6vR6aBgvjTnA3nZGliknKboc9Gtxr7E4WDNqY24MxANKcuDQSF0jzapvGb3KWOEDrKfve4HoWGK+g==} engines: {node: '>= 20'} - '@octokit/endpoint@10.1.4': - resolution: {integrity: sha512-OlYOlZIsfEVZm5HCSR8aSg02T2lbUWOsCQoPKfTXJwDzcHQBrVBGdGXb89dv2Kw2ToZaRtudp8O3ZIYoaOjKlA==} - engines: {node: '>= 18'} - '@octokit/endpoint@11.0.0': resolution: {integrity: sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==} engines: {node: '>= 20'} - '@octokit/graphql@8.2.2': - resolution: {integrity: sha512-Yi8hcoqsrXGdt0yObxbebHXFOiUA+2v3n53epuOg1QUgOB6c4XzvisBNVXJSl8RYA5KrDuSL2yq9Qmqe5N0ryA==} - engines: {node: '>= 18'} - '@octokit/graphql@9.0.1': resolution: {integrity: sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==} engines: {node: '>= 20'} @@ -3701,6 +3681,9 @@ packages: '@octokit/openapi-types@25.0.0': resolution: {integrity: sha512-FZvktFu7HfOIJf2BScLKIEYjDsw6RKc7rBJCdvCTfKsVnx2GEB/Nbzjr29DUdb7vQhlzS/j8qDzdditP0OC6aw==} + '@octokit/openapi-types@25.1.0': + resolution: {integrity: sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==} + '@octokit/openapi-webhooks-types@11.0.0': resolution: {integrity: sha512-ZBzCFj98v3SuRM7oBas6BHZMJRadlnDoeFfvm1olVxZnYeU6Vh97FhPxyS5aLh5pN51GYv2I51l/hVUAVkGBlA==} @@ -3710,52 +3693,30 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-paginate-rest@12.0.0': - resolution: {integrity: sha512-MPd6WK1VtZ52lFrgZ0R2FlaoiWllzgqFHaSZxvp72NmoDeZ0m8GeJdg4oB6ctqMTYyrnDYp592Xma21mrgiyDA==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '>=6' - '@octokit/plugin-paginate-rest@13.0.0': resolution: {integrity: sha512-nPXM3wgil9ONnAINcm8cN+nwso4QhNB13PtnlRFkYFHCUIogcH9DHak/StQYcwkkjuc7pUluLG1AWZNscgvH7Q==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-rest-endpoint-methods@15.0.0': - resolution: {integrity: sha512-db6UdWvpX7O6tNsdkPk1BttVwTeVdA4n8RDFeXOyjBCPjE2YPufIAlzWh8CyeH8hl/3dSuQXDa+qLmsBlkTY+Q==} + '@octokit/plugin-rest-endpoint-methods@16.0.0': + resolution: {integrity: sha512-kJVUQk6/dx/gRNLWUnAWKFs1kVPn5O5CYZyssyEoNYaFedqZxsfYs7DwI3d67hGz4qOwaJ1dpm07hOAD1BXx6g==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-retry@7.2.1': - resolution: {integrity: sha512-wUc3gv0D6vNHpGxSaR3FlqJpTXGWgqmk607N9L3LvPL4QjaxDgX/1nY2mGpT37Khn+nlIXdljczkRnNdTTV3/A==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '>=6' - '@octokit/plugin-retry@8.0.1': resolution: {integrity: sha512-KUoYR77BjF5O3zcwDQHRRZsUvJwepobeqiSSdCJ8lWt27FZExzb0GgVxrhhfuyF6z2B2zpO0hN5pteni1sqWiw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=7' - '@octokit/plugin-throttling@10.0.0': - resolution: {integrity: sha512-Kuq5/qs0DVYTHZuBAzCZStCzo2nKvVRo/TDNhCcpC2TKiOGz/DisXMCvjt3/b5kr6SCI1Y8eeeJTHBxxpFvZEg==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': ^6.1.3 - '@octokit/plugin-throttling@11.0.1': resolution: {integrity: sha512-S+EVhy52D/272L7up58dr3FNSMXWuNZolkL4zMJBNIfIxyZuUcczsQAU4b5w6dewJXnKYVgSHSV5wxitMSW1kw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': ^7.0.0 - '@octokit/request-error@6.1.8': - resolution: {integrity: sha512-WEi/R0Jmq+IJKydWlKDmryPcmdYSVjL3ekaiEL1L9eo1sUnqMJ+grqmC9cjk7CA7+b2/T397tO5d8YLOH3qYpQ==} - engines: {node: '>= 18'} - '@octokit/request-error@7.0.0': resolution: {integrity: sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==} engines: {node: '>= 20'} @@ -3764,13 +3725,12 @@ packages: resolution: {integrity: sha512-iYj4SJG/2bbhh+iIpFmG5u49DtJ4lipQ+aPakjL9OKpsGY93wM8w06gvFbEQxcMsZcCvk5th5KkIm2m8o14aWA==} engines: {node: '>= 20'} - '@octokit/request@9.2.3': - resolution: {integrity: sha512-Ma+pZU8PXLOEYzsWf0cn/gY+ME57Wq8f49WTXA8FMHp2Ps9djKw//xYJ1je8Hm0pR2lU9FUGeJRWOtxq6olt4w==} - engines: {node: '>= 18'} - '@octokit/types@14.0.0': resolution: {integrity: sha512-VVmZP0lEhbo2O1pdq63gZFiGCKkm8PPp8AUOijlwPO6hojEVjspA0MWKP7E4hbvGxzFKNqKr6p0IYtOH/Wf/zA==} + '@octokit/types@14.1.0': + resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} + '@octokit/webhooks-methods@6.0.0': resolution: {integrity: sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ==} engines: {node: '>= 20'} @@ -4069,8 +4029,8 @@ packages: peerDependencies: semantic-release: '>=18.0.0' - '@semantic-release/github@11.0.2': - resolution: {integrity: sha512-EhHimj3/eOSPu0OflgDzwgrawoGJIn8XLOkNS6WzwuTr8ebxyX976Y4mCqJ8MlkdQpV5+8T+49sy8xXlcm6uCg==} + '@semantic-release/github@11.0.3': + resolution: {integrity: sha512-T2fKUyFkHHkUNa5XNmcsEcDPuG23hwBKptfUVcFXDVG2cSjXXZYDOfVYwfouqbWo/8UefotLaoGfQeK+k3ep6A==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=24.1.0' @@ -4230,14 +4190,16 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@t3-oss/env-core@0.13.4': - resolution: {integrity: sha512-zVOiYO0+CF7EnBScz8s0O5JnJLPTU0lrUi8qhKXfIxIJXvI/jcppSiXXsEJwfB4A6XZawY/Wg/EQGKANi/aPmQ==} + '@t3-oss/env-core@0.13.6': + resolution: {integrity: sha512-rH7FgcB1YGbv/tvv7mdJAxnNvRkK/gEqdVYBwO1AVvaWOTNuftqskxkEYyhM2O+lkNPJmTq5YBE7H+Unl7CLjg==} peerDependencies: arktype: ^2.1.0 typescript: '>=5.0.0' valibot: ^1.0.0-beta.7 || ^1.0.0 zod: ^3.24.0 || ^4.0.0-beta.0 peerDependenciesMeta: + arktype: + optional: true typescript: optional: true valibot: @@ -4245,13 +4207,16 @@ packages: zod: optional: true - '@t3-oss/env-nextjs@0.13.4': - resolution: {integrity: sha512-6ecXR7SH7zJKVcBODIkB7wV9QLMU23uV8D9ec6P+ULHJ5Ea/YXEHo+Z/2hSYip5i9ptD/qZh8VuOXyldspvTTg==} + '@t3-oss/env-nextjs@0.13.6': + resolution: {integrity: sha512-KcA5U8L+Be4OuR5YxmrBzkeo7WsKkEFJDwcAgYFwcBgxxc3oJBdTB7KPQfVrx7wjtX5aDr2jZ0LG55yEXqQi9A==} peerDependencies: + arktype: ^2.1.0 typescript: '>=5.0.0' valibot: ^1.0.0-beta.7 || ^1.0.0 zod: ^3.24.0 || ^4.0.0-beta.0 peerDependenciesMeta: + arktype: + optional: true typescript: optional: true valibot: @@ -4271,27 +4236,27 @@ packages: resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} - '@tanstack/query-core@5.76.2': - resolution: {integrity: sha512-PFGwWh5ss9cJQ67l6bZ7hqXbisX2gy13G2jP+VGY1bgdbCfOMWh6UBVnN62QbFXro6CCoX9hYzTnZHr6Rz00YQ==} + '@tanstack/query-core@5.79.0': + resolution: {integrity: sha512-s+epTqqLM0/TbJzMAK7OEhZIzh63P9sWz5HEFc5XHL4FvKQXQkcjI8F3nee+H/xVVn7mrP610nVXwOytTSYd0w==} '@tanstack/query-devtools@5.76.0': resolution: {integrity: sha512-1p92nqOBPYVqVDU0Ua5nzHenC6EGZNrLnB2OZphYw8CNA1exuvI97FVgIKON7Uug3uQqvH/QY8suUKpQo8qHNQ==} - '@tanstack/react-query-devtools@5.76.2': - resolution: {integrity: sha512-XQqPM7ByqhitYtzzRXpFcPXY2FIMGY13atJoQnDInxX+ko7wOhAJg51QGzSxQwZ2JEy91taj0IaIUh3pOz2buw==} + '@tanstack/react-query-devtools@5.79.0': + resolution: {integrity: sha512-YVRWxjxsWycWChjKxvaIAPdNC5LX0zpiHoNyTB8teDZpQstM1b7mCuAp3x60cjX1MhLoO3vbaeY29EKst4D4ug==} peerDependencies: - '@tanstack/react-query': ^5.76.2 + '@tanstack/react-query': ^5.79.0 react: ^18 || ^19 - '@tanstack/react-query-next-experimental@5.76.2': - resolution: {integrity: sha512-h6CZtNEnf+3x9TPERhxuSnZA7nlmugjREsCRpeSWZUvG2uqUatUoN/oINrpXI780OOJRtREM4S9E+PPXaWErCw==} + '@tanstack/react-query-next-experimental@5.79.0': + resolution: {integrity: sha512-uzbLajqx8/j9k7P8aDXsLtdk4lPvG6mrWoANt/JhSyPWvBhW1RSgQFHcyk08Qe1jWrScmkkeuIJ1SmaC7Z+2Xg==} peerDependencies: - '@tanstack/react-query': ^5.76.2 + '@tanstack/react-query': ^5.79.0 next: ^13 || ^14 || ^15 react: ^18 || ^19 - '@tanstack/react-query@5.76.2': - resolution: {integrity: sha512-rGkWberCrFdIxMdvSAJM/UOKeu0O/JVTbMmfhQoJpiU9Uq0EDx2EMCadnNuJWbXR4smDA2t7DY3NKkYFmDVS5A==} + '@tanstack/react-query@5.79.0': + resolution: {integrity: sha512-DjC4JIYZnYzxaTzbg3osOU63VNLP67dOrWet2cZvXgmgwAXNxfS52AMq86M5++ILuzW+BqTUEVMTjhrZ7/XBuA==} peerDependencies: react: ^18 || ^19 @@ -4524,19 +4489,19 @@ packages: tree-sitter: optional: true - '@trpc/client@11.1.2': - resolution: {integrity: sha512-RpifJOAv+ql9gF3oafa3dLCF01AzWu2DzejvehAPG2IlwHxopKoYXaImJ8zPwRkZokuWiKz5v65HjElmi8TlrQ==} + '@trpc/client@11.1.4': + resolution: {integrity: sha512-QDaIdwhZlHKMhDAr5m4dJNAYkX4ydo63Up0M01mGcdpnOOmGlvGMRWzdVSLIvGc1JasPSvC15RsgrjMzXpElzw==} peerDependencies: - '@trpc/server': 11.1.2 + '@trpc/server': 11.1.4 typescript: '>=5.7.2' - '@trpc/next@11.1.2': - resolution: {integrity: sha512-dtk8p/al4p5BU4Otol8ufM3sjuJT/1do0wR912OjetRLwG0Y41FTwhUeXcfLpUMjWUWy+dnCwG8aH/sDvLO5RQ==} + '@trpc/next@11.1.4': + resolution: {integrity: sha512-ndNsIBh6sPYfq4i+AAHCoeGpqcH9bZOveK8IfbUMnz3HFtZ9Hh6o5TxDxr/W/GtTsExQbJNlVM+ytcIwX2m+UA==} peerDependencies: '@tanstack/react-query': ^5.59.15 - '@trpc/client': 11.1.2 - '@trpc/react-query': 11.1.2 - '@trpc/server': 11.1.2 + '@trpc/client': 11.1.4 + '@trpc/react-query': 11.1.4 + '@trpc/server': 11.1.4 next: '*' react: '>=16.8.0' react-dom: '>=16.8.0' @@ -4547,27 +4512,27 @@ packages: '@trpc/react-query': optional: true - '@trpc/react-query@11.1.2': - resolution: {integrity: sha512-Ws3oIaj0qqbVIUyfYd9uFBwqk7eRqsxaLhLKN7grskoBo8wkh/CUADcN6ZD+GGogC3Dsg9S4WhgU1jVgfc/ahg==} + '@trpc/react-query@11.1.4': + resolution: {integrity: sha512-vMwE3Jif7rJcrqWsQ1aKn43xpmwastYPPftMM5CgdcmF9IuvigH/NTLdWRfSzKtbXmNE6wLI45gU1R77uF86yA==} peerDependencies: '@tanstack/react-query': ^5.67.1 - '@trpc/client': 11.1.2 - '@trpc/server': 11.1.2 + '@trpc/client': 11.1.4 + '@trpc/server': 11.1.4 react: '>=18.2.0' react-dom: '>=18.2.0' typescript: '>=5.7.2' - '@trpc/server@11.1.2': - resolution: {integrity: sha512-Oi9zWHG0ZDkbDo4sYkduoV7q4sIe6UwjrRLC91vNMYQK+PVgpbTCmK1laRwewAGu0zaayqcGDosANjceOIC3GA==} + '@trpc/server@11.1.4': + resolution: {integrity: sha512-X3TSLwQQh5+zi+yY7BnnmUUwVNdeBj3BAt580sAJ+Qd5PvDhz1gSNHGOAlOLulCFn6g/JHf8n+DbnPF/Gb63SA==} peerDependencies: typescript: '>=5.7.2' - '@trpc/tanstack-react-query@11.1.2': - resolution: {integrity: sha512-c+NupnmIQmwgwYVTaHgDg59BZBtJ6KxqB0cxF9FBhKHPY6PlwGLdU8+mo25C5VIpofZYEII4H7NKE4yKGFSe3w==} + '@trpc/tanstack-react-query@11.1.4': + resolution: {integrity: sha512-q4BE8Qi8qq+2Z1lzjR39+33NwphBXd0t/zeayTlgl/OUmHmmZ/v3DcOqLfL1GcNl/Jc+qE/9lc6U/WDoaMyXyw==} peerDependencies: '@tanstack/react-query': ^5.67.1 - '@trpc/client': 11.1.2 - '@trpc/server': 11.1.2 + '@trpc/client': 11.1.4 + '@trpc/server': 11.1.4 react: '>=18.2.0' react-dom: '>=18.2.0' typescript: '>=5.7.2' @@ -4587,12 +4552,12 @@ packages: '@tsconfig/svelte@1.0.13': resolution: {integrity: sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA==} - '@turbo/gen@2.5.3': - resolution: {integrity: sha512-Pek4Amm5HcBzHkR0GdnMmRZlMwIRkgKW2SZ4/BfN+CY8BolJH6Wesjg1FkFEYD/DqnqeKUf98YWDsxmfILrpSA==} + '@turbo/gen@2.5.4': + resolution: {integrity: sha512-e69ut1PHTuwjqoZNF4Zpi8mOvh6EIkbUthh797y+Z/46bwiQfGsEKfw94t0CT+8UcwMvRZCbRXU7xo8hI86eDQ==} hasBin: true - '@turbo/workspaces@2.5.3': - resolution: {integrity: sha512-Kqo+gKJleFB+GkKiSHCCb4RB46VDBTWRKdp08RQ4rtL60+SU89M6F7gpTGG/4nL2eYD98mOKp3Lyzfk/Auht7A==} + '@turbo/workspaces@2.5.4': + resolution: {integrity: sha512-LLmImNOyDOZ8XNsNolefa7wQdrzAss0CoedPADCZFB+iIDXW+8w4YkgOvKaLKBLcm9kb7gWCP4L0o0EiZLXBUA==} hasBin: true '@types/adm-zip@0.5.7': @@ -4757,8 +4722,8 @@ packages: '@types/node@18.19.50': resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@22.15.21': - resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} + '@types/node@22.15.28': + resolution: {integrity: sha512-I0okKVDmyKR281I0UIFV7EWAWRnR0gkuSKob5wVcByyyhr7Px/slhkQapcYX4u00ekzNWaS1gznKZnuzxwo4pw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4780,8 +4745,8 @@ packages: peerDependencies: '@types/react': ^19.0.0 - '@types/react@19.1.5': - resolution: {integrity: sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==} + '@types/react@19.1.6': + resolution: {integrity: sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -4837,51 +4802,61 @@ packages: '@types/xml2js@0.4.14': resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} - '@typescript-eslint/eslint-plugin@8.32.1': - resolution: {integrity: sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==} + '@typescript-eslint/eslint-plugin@8.33.0': + resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.33.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.32.1': - resolution: {integrity: sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==} + '@typescript-eslint/parser@8.33.0': + resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.32.1': - resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} + '@typescript-eslint/project-service@8.33.0': + resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.32.1': - resolution: {integrity: sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==} + '@typescript-eslint/scope-manager@8.33.0': + resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.33.0': + resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/type-utils@8.33.0': + resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.32.1': - resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} + '@typescript-eslint/types@8.33.0': + resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.32.1': - resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==} + '@typescript-eslint/typescript-estree@8.33.0': + resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.32.1': - resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} + '@typescript-eslint/utils@8.33.0': + resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.32.1': - resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} + '@typescript-eslint/visitor-keys@8.33.0': + resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@umami/node@0.4.0': @@ -5344,9 +5319,6 @@ packages: resolution: {integrity: sha512-cU8v/EGSrnH+HnxV2z0J7/blxH8gq7Xh2JFT6Aroax7UohdmiJJlxApMxtKfuI7z68NvvVcmR78k2LbT6efhRg==} engines: {node: '>= 18'} - before-after-hook@3.0.2: - resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} - before-after-hook@4.0.0: resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} @@ -5483,8 +5455,8 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} change-case@3.1.0: @@ -5681,8 +5653,8 @@ packages: resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} engines: {node: '>=18'} - conventional-changelog-conventionalcommits@8.0.0: - resolution: {integrity: sha512-eOvlTO6OcySPyyyk8pKz2dP4jjElYunj9hn9/s0OB+gapTO8zwS9UQWrZ1pmF2hFs3vw1xhonOLGcGjy/zgsuA==} + conventional-changelog-conventionalcommits@9.0.0: + resolution: {integrity: sha512-5e48V0+DsWvQBEnnbBFhYQwYDzFPXVrakGPP1uSxekDkr5d7YWrmaWsgJpKFR0SkXmxK6qQr9O42uuLb9wpKxA==} engines: {node: '>=18'} conventional-changelog-writer@8.0.0: @@ -5916,6 +5888,15 @@ packages: supports-color: optional: true + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js-light@2.5.1: resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} @@ -6076,8 +6057,8 @@ packages: resolution: {integrity: sha512-PUjYKWtzOzPtdtQlTHQG3qfv4Y0XT8+Eas6UbxCmxTj7qgMf+39dDujf1BP1I+qqZtw9uzwTh8jYtkMuCq+B0Q==} hasBin: true - drizzle-orm@0.43.1: - resolution: {integrity: sha512-dUcDaZtE/zN4RV/xqGrVSMpnEczxd5cIaoDeor7Zst9wOe/HzC/7eAaulywWGYXdDEc9oBPMjayVEDg0ziTLJA==} + drizzle-orm@0.44.0: + resolution: {integrity: sha512-/8wYepe887Gp1eCVILKitNegclGLPUMdK4oDDyDftKJOeHoCylY+XM++chMJloy9oKTceWOALiQMl2aAuFuPTw==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=4' @@ -6093,6 +6074,7 @@ packages: '@types/better-sqlite3': '*' '@types/pg': '*' '@types/sql.js': '*' + '@upstash/redis': '>=1.34.7' '@vercel/postgres': '>=0.8.0' '@xata.io/client': '*' better-sqlite3: '>=7' @@ -6136,6 +6118,8 @@ packages: optional: true '@types/sql.js': optional: true + '@upstash/redis': + optional: true '@vercel/postgres': optional: true '@xata.io/client': @@ -6317,8 +6301,8 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.25.4: - resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} + esbuild@0.25.5: + resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} engines: {node: '>=18'} hasBin: true @@ -6353,8 +6337,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.5.3: - resolution: {integrity: sha512-KuW20TUDfLooS38gSquL6Gi+ZjaMlno0N3hBe8c+F8+nRYUhbF2fNhuyzl9ScNHx6aJT2eVhLBfGELg7N5+sog==} + eslint-config-turbo@2.5.4: + resolution: {integrity: sha512-OpjpDLXIaus0N/Y+pMj17K430xjpd6WTo0xPUESqYZ9BkMngv2n0ZdjktgJTbJVnDmK7gHrXgJAljtdIMcYBIg==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -6411,8 +6395,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-turbo@2.5.3: - resolution: {integrity: sha512-DlXZd+LgpDlxH/6IsiAXLhy82x0jeJDm0XBEqP6Le08uy0HBQkjCUt7SmXNp8esAtX9RYe6oDClbNbmI1jtK5g==} + eslint-plugin-turbo@2.5.4: + resolution: {integrity: sha512-IZsW61DFj5mLMMaCJxhh1VE4HvNhfdnHnAaXajgne+LUzdyHk2NvYT0ECSa/1SssArcqgTvV74MrLL68hWLLFw==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -6526,9 +6510,6 @@ packages: resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==} engines: {node: '>=8.0.0'} - fast-content-type-parse@2.0.1: - resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==} - fast-content-type-parse@3.0.0: resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} @@ -6641,8 +6622,8 @@ packages: resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} engines: {node: '>=18'} - flag-icons@7.3.2: - resolution: {integrity: sha512-QkaZ6Zvai8LIjx+UNAHUJ5Dhz9OLZpBDwCRWxF6YErxIcR16jTkIFm3bFu54EkvKQy4+wicW+Gm7/0631wVQyQ==} + flag-icons@7.5.0: + resolution: {integrity: sha512-kd+MNXviFIg5hijH766tt+3x76ele1AXlo4zDdCxIvqWZhKt4T83bOtxUOOMlTx/EcFdUMH5yvQgYlFh1EqqFg==} flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -7464,8 +7445,8 @@ packages: jose@6.0.8: resolution: {integrity: sha512-EyUPtOKyTYq+iMOszO42eobQllaIjJnwkZ2U93aJzNyPibCy7CEvT9UQnaCVB51IAd49gbNdCew1c0LcLTCB2g==} - jotai@2.12.4: - resolution: {integrity: sha512-eFXLJol4oOLM8BS1+QV+XwaYQITG8n1tatBCFl4F5HE3zR5j2WIK8QpMt7VJIYmlogNUZfvB7wjwLoVk+umB9Q==} + jotai@2.12.5: + resolution: {integrity: sha512-G8m32HW3lSmcz/4mbqx0hgJIQ0ekndKWiYP7kWVKi0p6saLXdSoye+FZiOFyonnd7Q482LCzm8sMDl7Ar1NWDw==} engines: {node: '>=12.20.0'} peerDependencies: '@types/react': '>=17.0.0' @@ -7578,8 +7559,8 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} - ldapts@8.0.0: - resolution: {integrity: sha512-kYMCIXy0mU3qnEnXnaPGimVEqPjbNNpw1yftiaru+Mub5h8Jl7/QqovFAOqFJow+Pe5VZ8p5Q7P8PohLdo6ieQ==} + ldapts@8.0.1: + resolution: {integrity: sha512-ItE52wO3TewMQjT1Ee7KKxOtKL6Pr2+uf2ySwoxUX5g4iKXGampkovADkQwCAnDKk65FJZWiaoYjQN8Oyy2vfQ==} engines: {node: '>=20'} levn@0.4.1: @@ -7751,11 +7732,11 @@ packages: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true - marked-terminal@7.2.1: - resolution: {integrity: sha512-rQ1MoMFXZICWNsKMiiHwP/Z+92PLKskTPXj+e7uwXmuMPkNn7iTqC+IvDekVm1MPeC9wYQeLxeFaOvudRR/XbQ==} + marked-terminal@7.3.0: + resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} engines: {node: '>=16.0.0'} peerDependencies: - marked: '>=1 <15' + marked: '>=1 <16' marked@15.0.11: resolution: {integrity: sha512-1BEXAU2euRCG3xwgLVT1y0xbJEld1XOrmRJpUwRCcy7rxhSCwMrmEu9LXoPhHSCJG41V7YcQ2mjKRr5BA3ITIA==} @@ -8055,8 +8036,8 @@ packages: typescript: optional: true - next@15.3.2: - resolution: {integrity: sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==} + next@15.3.3: + resolution: {integrity: sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -8100,8 +8081,8 @@ packages: resolution: {integrity: sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==} engines: {node: ^18 || ^20 || >= 21} - node-cron@3.0.3: - resolution: {integrity: sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==} + node-cron@4.0.7: + resolution: {integrity: sha512-A37UUDpxRT/kWanELr/oMayCWQFk9Zx9BEUoXrAKuKwKzH4XuAX+vMixMBPkgZBkADgJwXv91w5cMRTNSVP/mA==} engines: {node: '>=6.0.0'} node-domexception@1.0.0: @@ -8306,8 +8287,8 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - octokit@5.0.2: - resolution: {integrity: sha512-WCO9Oip2F+qsrIcNMfLwm1+dL2g70oO++pkmiluisJDMXXwdO4susVaVg1iQZgZNiDtA1qcLXs5662Mdj/vqdw==} + octokit@5.0.3: + resolution: {integrity: sha512-+bwYsAIRmYv30NTmBysPIlgH23ekVDriB07oRxlPIAH5PI0yTMSxg5i5Xy0OetcnZw+nk/caD4szD7a9YZ3QyQ==} engines: {node: '>= 20'} ofetch@1.4.1: @@ -9221,8 +9202,8 @@ packages: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} - semantic-release@24.2.4: - resolution: {integrity: sha512-WnzIiRUzEUSHWuCH1S9ifa7eA3g4b5fpCzFQoTA5yZcyTra5P2gaYoCV5iX3VR5xB2h/laQfz3NXTCN4qdK/AQ==} + semantic-release@24.2.5: + resolution: {integrity: sha512-9xV49HNY8C0/WmPWxTlaNleiXhWb//qfMzG2c5X8/k7tuWcu8RssbuS+sujb/h7PiWSXv53mrQvV9hrO9b7vuQ==} engines: {node: '>=20.8.1'} hasBin: true @@ -9841,8 +9822,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - trpc-to-openapi@2.2.0: - resolution: {integrity: sha512-tIKpykAKsZqad/AQXc0JKDd1Evq8fm8j3jVMVVJ+keo2KUb67uyucHRzEsJWSN99RPf6esuytsmnetx7Q0S9wg==} + trpc-to-openapi@2.3.1: + resolution: {integrity: sha512-5AjKSjk7AGkC8haFufD3skeCClzT3TrhdbIF4E/zVukiOPCdgA2RDgZWnsXk6zPDM4Ni8uLWDEm2ILdweMsWew==} peerDependencies: '@trpc/server': ^11.1.0 zod: ^3.23.8 @@ -9912,38 +9893,38 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - turbo-darwin-64@2.5.3: - resolution: {integrity: sha512-YSItEVBUIvAGPUDpAB9etEmSqZI3T6BHrkBkeSErvICXn3dfqXUfeLx35LfptLDEbrzFUdwYFNmt8QXOwe9yaw==} + turbo-darwin-64@2.5.4: + resolution: {integrity: sha512-ah6YnH2dErojhFooxEzmvsoZQTMImaruZhFPfMKPBq8sb+hALRdvBNLqfc8NWlZq576FkfRZ/MSi4SHvVFT9PQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.5.3: - resolution: {integrity: sha512-5PefrwHd42UiZX7YA9m1LPW6x9YJBDErXmsegCkVp+GjmWrADfEOxpFrGQNonH3ZMj77WZB2PVE5Aw3gA+IOhg==} + turbo-darwin-arm64@2.5.4: + resolution: {integrity: sha512-2+Nx6LAyuXw2MdXb7pxqle3MYignLvS7OwtsP9SgtSBaMlnNlxl9BovzqdYAgkUW3AsYiQMJ/wBRb7d+xemM5A==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.5.3: - resolution: {integrity: sha512-M9xigFgawn5ofTmRzvjjLj3Lqc05O8VHKuOlWNUlnHPUltFquyEeSkpQNkE/vpPdOR14AzxqHbhhxtfS4qvb1w==} + turbo-linux-64@2.5.4: + resolution: {integrity: sha512-5May2kjWbc8w4XxswGAl74GZ5eM4Gr6IiroqdLhXeXyfvWEdm2mFYCSWOzz0/z5cAgqyGidF1jt1qzUR8hTmOA==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.5.3: - resolution: {integrity: sha512-auJRbYZ8SGJVqvzTikpg1bsRAsiI9Tk0/SDkA5Xgg0GdiHDH/BOzv1ZjDE2mjmlrO/obr19Dw+39OlMhwLffrw==} + turbo-linux-arm64@2.5.4: + resolution: {integrity: sha512-/2yqFaS3TbfxV3P5yG2JUI79P7OUQKOUvAnx4MV9Bdz6jqHsHwc9WZPpO4QseQm+NvmgY6ICORnoVPODxGUiJg==} cpu: [arm64] os: [linux] - turbo-windows-64@2.5.3: - resolution: {integrity: sha512-arLQYohuHtIEKkmQSCU9vtrKUg+/1TTstWB9VYRSsz+khvg81eX6LYHtXJfH/dK7Ho6ck+JaEh5G+QrE1jEmCQ==} + turbo-windows-64@2.5.4: + resolution: {integrity: sha512-EQUO4SmaCDhO6zYohxIjJpOKRN3wlfU7jMAj3CgcyTPvQR/UFLEKAYHqJOnJtymbQmiiM/ihX6c6W6Uq0yC7mA==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.5.3: - resolution: {integrity: sha512-3JPn66HAynJ0gtr6H+hjY4VHpu1RPKcEwGATvGUTmLmYSYBQieVlnGDRMMoYN066YfyPqnNGCfhYbXfH92Cm0g==} + turbo-windows-arm64@2.5.4: + resolution: {integrity: sha512-oQ8RrK1VS8lrxkLriotFq+PiF7iiGgkZtfLKF4DDKsmdbPo0O9R2mQxm7jHLuXraRCuIQDWMIw6dpcr7Iykf4A==} cpu: [arm64] os: [win32] - turbo@2.5.3: - resolution: {integrity: sha512-iHuaNcq5GZZnr3XDZNuu2LSyCzAOPwDuo5Qt+q64DfsTP1i3T2bKfxJhni2ZQxsvAoxRbuUK5QetJki4qc5aYA==} + turbo@2.5.4: + resolution: {integrity: sha512-kc8ZibdRcuWUG1pbYSBFWqmIjynlD8Lp7IB6U3vIzvOv9VG+6Sp8bzyeBWE3Oi8XV5KsQrznyRTBPvrf99E4mA==} hasBin: true tweetnacl@0.14.5: @@ -10019,8 +10000,8 @@ packages: types-ramda@0.30.1: resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==} - typescript-eslint@8.32.1: - resolution: {integrity: sha512-D7el+eaDHAmXvrZBy1zpzSNIRqnCOrkwTgZxTu3MUqRWk8k0q9m9Ho4+vPf7iHtgUfrK/o8IZaEApsxPlHTFCg==} + typescript-eslint@8.33.0: + resolution: {integrity: sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -10625,8 +10606,8 @@ packages: peerDependencies: zod: ^3.24.4 - zod@3.25.23: - resolution: {integrity: sha512-Od2bdMosahjSrSgJtakrwjMDb1zM1A3VIHCPGveZt/3/wlrTWBya2lmEh2OYe4OIu8mPTmmr0gnLHIWQXdtWBg==} + zod@3.25.42: + resolution: {integrity: sha512-PcALTLskaucbeHc41tU/xfjfhcz8z0GdhhDcSgrCTmSazUuqnYqiXO63M0QUBVwpBlsLsNVn5qHSC5Dw3KZvaQ==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -10643,8 +10624,10 @@ snapshots: '@ark/schema@0.46.0': dependencies: '@ark/util': 0.46.0 + optional: true - '@ark/util@0.46.0': {} + '@ark/util@0.46.0': + optional: true '@asamuzakjp/css-color@2.8.2': dependencies: @@ -10727,8 +10710,8 @@ snapshots: '@babel/generator@7.26.2': dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 @@ -10769,7 +10752,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color @@ -10778,7 +10761,7 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color @@ -10802,7 +10785,7 @@ snapshots: '@babel/parser@7.26.2': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.27.0 '@babel/parser@7.27.0': dependencies: @@ -10818,11 +10801,6 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.25.9 - '@babel/runtime-corejs3@7.27.0': - dependencies: - core-js-pure: 3.38.1 - regenerator-runtime: 0.14.1 - '@babel/runtime-corejs3@7.27.1': dependencies: core-js-pure: 3.38.1 @@ -10846,10 +10824,10 @@ snapshots: '@babel/traverse@7.25.9': dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.27.0 debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: @@ -11033,7 +11011,7 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.25.4': + '@esbuild/aix-ppc64@0.25.5': optional: true '@esbuild/android-arm64@0.18.20': @@ -11045,7 +11023,7 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.25.4': + '@esbuild/android-arm64@0.25.5': optional: true '@esbuild/android-arm@0.18.20': @@ -11057,7 +11035,7 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.25.4': + '@esbuild/android-arm@0.25.5': optional: true '@esbuild/android-x64@0.18.20': @@ -11069,7 +11047,7 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.25.4': + '@esbuild/android-x64@0.25.5': optional: true '@esbuild/darwin-arm64@0.18.20': @@ -11081,7 +11059,7 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.25.4': + '@esbuild/darwin-arm64@0.25.5': optional: true '@esbuild/darwin-x64@0.18.20': @@ -11093,7 +11071,7 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.25.4': + '@esbuild/darwin-x64@0.25.5': optional: true '@esbuild/freebsd-arm64@0.18.20': @@ -11105,7 +11083,7 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.25.4': + '@esbuild/freebsd-arm64@0.25.5': optional: true '@esbuild/freebsd-x64@0.18.20': @@ -11117,7 +11095,7 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.25.4': + '@esbuild/freebsd-x64@0.25.5': optional: true '@esbuild/linux-arm64@0.18.20': @@ -11129,7 +11107,7 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.25.4': + '@esbuild/linux-arm64@0.25.5': optional: true '@esbuild/linux-arm@0.18.20': @@ -11141,7 +11119,7 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.25.4': + '@esbuild/linux-arm@0.25.5': optional: true '@esbuild/linux-ia32@0.18.20': @@ -11153,7 +11131,7 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.25.4': + '@esbuild/linux-ia32@0.25.5': optional: true '@esbuild/linux-loong64@0.18.20': @@ -11165,7 +11143,7 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.25.4': + '@esbuild/linux-loong64@0.25.5': optional: true '@esbuild/linux-mips64el@0.18.20': @@ -11177,7 +11155,7 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.25.4': + '@esbuild/linux-mips64el@0.25.5': optional: true '@esbuild/linux-ppc64@0.18.20': @@ -11189,7 +11167,7 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.25.4': + '@esbuild/linux-ppc64@0.25.5': optional: true '@esbuild/linux-riscv64@0.18.20': @@ -11201,7 +11179,7 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.25.4': + '@esbuild/linux-riscv64@0.25.5': optional: true '@esbuild/linux-s390x@0.18.20': @@ -11213,7 +11191,7 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.25.4': + '@esbuild/linux-s390x@0.25.5': optional: true '@esbuild/linux-x64@0.18.20': @@ -11225,10 +11203,10 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.25.4': + '@esbuild/linux-x64@0.25.5': optional: true - '@esbuild/netbsd-arm64@0.25.4': + '@esbuild/netbsd-arm64@0.25.5': optional: true '@esbuild/netbsd-x64@0.18.20': @@ -11240,10 +11218,10 @@ snapshots: '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.25.4': + '@esbuild/netbsd-x64@0.25.5': optional: true - '@esbuild/openbsd-arm64@0.25.4': + '@esbuild/openbsd-arm64@0.25.5': optional: true '@esbuild/openbsd-x64@0.18.20': @@ -11255,7 +11233,7 @@ snapshots: '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.25.4': + '@esbuild/openbsd-x64@0.25.5': optional: true '@esbuild/sunos-x64@0.18.20': @@ -11267,7 +11245,7 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.25.4': + '@esbuild/sunos-x64@0.25.5': optional: true '@esbuild/win32-arm64@0.18.20': @@ -11279,7 +11257,7 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.25.4': + '@esbuild/win32-arm64@0.25.5': optional: true '@esbuild/win32-ia32@0.18.20': @@ -11291,7 +11269,7 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.25.4': + '@esbuild/win32-ia32@0.25.5': optional: true '@esbuild/win32-x64@0.18.20': @@ -11303,7 +11281,7 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@esbuild/win32-x64@0.25.4': + '@esbuild/win32-x64@0.25.5': optional: true '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0)': @@ -11457,14 +11435,14 @@ snapshots: '@humanwhocodes/retry@0.4.2': {} - '@ianvs/prettier-plugin-sort-imports@4.4.1(prettier@3.5.3)': + '@ianvs/prettier-plugin-sort-imports@4.4.2(prettier@3.5.3)': dependencies: - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 prettier: 3.5.3 - semver: 7.6.3 + semver: 7.7.1 transitivePeerDependencies: - supports-color @@ -11606,10 +11584,10 @@ snapshots: dependencies: jsep: 1.4.0 - '@kubernetes/client-node@1.2.0(ws@8.18.2)': + '@kubernetes/client-node@1.3.0': dependencies: '@types/js-yaml': 4.0.9 - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/node-fetch': 2.6.12 '@types/stream-buffers': 3.0.7 form-data: 4.0.1 @@ -11623,11 +11601,13 @@ snapshots: socks-proxy-agent: 8.0.5 stream-buffers: 3.0.3 tar-fs: 3.0.8 + ws: 8.18.2 transitivePeerDependencies: - bare-buffer + - bufferutil - encoding - supports-color - - ws + - utf-8-validate '@libsql/client-wasm@0.14.0': dependencies: @@ -11640,91 +11620,91 @@ snapshots: js-base64: 3.7.7 optional: true - '@mantine/charts@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(recharts@2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': + '@mantine/charts@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(recharts@2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))': dependencies: - '@mantine/core': 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 8.0.1(react@19.1.0) + '@mantine/core': 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.0.2(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) recharts: 2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/colors-generator@8.0.1(chroma-js@3.1.2)': + '@mantine/colors-generator@8.0.2(chroma-js@3.1.2)': dependencies: chroma-js: 3.1.2 - '@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react': 0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 8.0.1(react@19.1.0) + '@mantine/hooks': 8.0.2(react@19.1.0) clsx: 2.1.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-number-format: 5.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-remove-scroll: 2.6.2(@types/react@19.1.5)(react@19.1.0) - react-textarea-autosize: 8.5.9(@types/react@19.1.5)(react@19.1.0) + react-remove-scroll: 2.6.2(@types/react@19.1.6)(react@19.1.0) + react-textarea-autosize: 8.5.9(@types/react@19.1.6)(react@19.1.0) type-fest: 4.40.0 transitivePeerDependencies: - '@types/react' - '@mantine/dates@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/dates@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@mantine/core': 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 8.0.1(react@19.1.0) + '@mantine/core': 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.0.2(react@19.1.0) clsx: 2.1.1 dayjs: 1.11.13 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@mantine/dropzone@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/dropzone@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@mantine/core': 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 8.0.1(react@19.1.0) + '@mantine/core': 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.0.2(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-dropzone: 14.3.8(react@19.1.0) - '@mantine/form@8.0.1(react@19.1.0)': + '@mantine/form@8.0.2(react@19.1.0)': dependencies: fast-deep-equal: 3.1.3 klona: 2.0.6 react: 19.1.0 - '@mantine/hooks@8.0.1(react@19.1.0)': + '@mantine/hooks@8.0.2(react@19.1.0)': dependencies: react: 19.1.0 - '@mantine/modals@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/modals@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@mantine/core': 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 8.0.1(react@19.1.0) + '@mantine/core': 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.0.2(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@mantine/notifications@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/notifications@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@mantine/core': 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 8.0.1(react@19.1.0) - '@mantine/store': 8.0.1(react@19.1.0) + '@mantine/core': 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.0.2(react@19.1.0) + '@mantine/store': 8.0.2(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-transition-group: 4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/spotlight@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/spotlight@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@mantine/core': 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 8.0.1(react@19.1.0) - '@mantine/store': 8.0.1(react@19.1.0) + '@mantine/core': 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.0.2(react@19.1.0) + '@mantine/store': 8.0.2(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@mantine/store@8.0.1(react@19.1.0)': + '@mantine/store@8.0.2(react@19.1.0)': dependencies: react: 19.1.0 - '@mantine/tiptap@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(@tiptap/extension-link@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0))(@tiptap/react@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/tiptap@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(@tiptap/extension-link@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0))(@tiptap/react@2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@mantine/core': 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 8.0.1(react@19.1.0) + '@mantine/core': 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.0.2(react@19.1.0) '@tiptap/extension-link': 2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0) '@tiptap/react': 2.12.0(@tiptap/core@2.12.0(@tiptap/pm@2.12.0))(@tiptap/pm@2.12.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 @@ -11785,34 +11765,34 @@ snapshots: '@ndaidong/bellajs@12.0.1': {} - '@next/env@15.3.2': {} + '@next/env@15.3.3': {} - '@next/eslint-plugin-next@15.3.2': + '@next/eslint-plugin-next@15.3.3': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@15.3.2': + '@next/swc-darwin-arm64@15.3.3': optional: true - '@next/swc-darwin-x64@15.3.2': + '@next/swc-darwin-x64@15.3.3': optional: true - '@next/swc-linux-arm64-gnu@15.3.2': + '@next/swc-linux-arm64-gnu@15.3.3': optional: true - '@next/swc-linux-arm64-musl@15.3.2': + '@next/swc-linux-arm64-musl@15.3.3': optional: true - '@next/swc-linux-x64-gnu@15.3.2': + '@next/swc-linux-x64-gnu@15.3.3': optional: true - '@next/swc-linux-x64-musl@15.3.2': + '@next/swc-linux-x64-musl@15.3.3': optional: true - '@next/swc-win32-arm64-msvc@15.3.2': + '@next/swc-win32-arm64-msvc@15.3.3': optional: true - '@next/swc-win32-x64-msvc@15.3.2': + '@next/swc-win32-x64-msvc@15.3.3': optional: true '@noble/hashes@1.5.0': {} @@ -11873,8 +11853,6 @@ snapshots: '@octokit/types': 14.0.0 universal-user-agent: 7.0.2 - '@octokit/auth-token@5.1.1': {} - '@octokit/auth-token@6.0.0': {} '@octokit/auth-unauthenticated@7.0.1': @@ -11882,16 +11860,6 @@ snapshots: '@octokit/request-error': 7.0.0 '@octokit/types': 14.0.0 - '@octokit/core@6.1.5': - dependencies: - '@octokit/auth-token': 5.1.1 - '@octokit/graphql': 8.2.2 - '@octokit/request': 9.2.3 - '@octokit/request-error': 6.1.8 - '@octokit/types': 14.0.0 - before-after-hook: 3.0.2 - universal-user-agent: 7.0.2 - '@octokit/core@7.0.2': dependencies: '@octokit/auth-token': 6.0.0 @@ -11902,22 +11870,11 @@ snapshots: before-after-hook: 4.0.0 universal-user-agent: 7.0.2 - '@octokit/endpoint@10.1.4': - dependencies: - '@octokit/types': 14.0.0 - universal-user-agent: 7.0.2 - '@octokit/endpoint@11.0.0': dependencies: '@octokit/types': 14.0.0 universal-user-agent: 7.0.2 - '@octokit/graphql@8.2.2': - dependencies: - '@octokit/request': 9.2.3 - '@octokit/types': 14.0.0 - universal-user-agent: 7.0.2 - '@octokit/graphql@9.0.1': dependencies: '@octokit/request': 10.0.2 @@ -11946,33 +11903,23 @@ snapshots: '@octokit/openapi-types@25.0.0': {} + '@octokit/openapi-types@25.1.0': {} + '@octokit/openapi-webhooks-types@11.0.0': {} '@octokit/plugin-paginate-graphql@6.0.0(@octokit/core@7.0.2)': dependencies: '@octokit/core': 7.0.2 - '@octokit/plugin-paginate-rest@12.0.0(@octokit/core@6.1.5)': - dependencies: - '@octokit/core': 6.1.5 - '@octokit/types': 14.0.0 - '@octokit/plugin-paginate-rest@13.0.0(@octokit/core@7.0.2)': dependencies: '@octokit/core': 7.0.2 '@octokit/types': 14.0.0 - '@octokit/plugin-rest-endpoint-methods@15.0.0(@octokit/core@7.0.2)': + '@octokit/plugin-rest-endpoint-methods@16.0.0(@octokit/core@7.0.2)': dependencies: '@octokit/core': 7.0.2 - '@octokit/types': 14.0.0 - - '@octokit/plugin-retry@7.2.1(@octokit/core@6.1.5)': - dependencies: - '@octokit/core': 6.1.5 - '@octokit/request-error': 6.1.8 - '@octokit/types': 14.0.0 - bottleneck: 2.19.5 + '@octokit/types': 14.1.0 '@octokit/plugin-retry@8.0.1(@octokit/core@7.0.2)': dependencies: @@ -11981,22 +11928,12 @@ snapshots: '@octokit/types': 14.0.0 bottleneck: 2.19.5 - '@octokit/plugin-throttling@10.0.0(@octokit/core@6.1.5)': - dependencies: - '@octokit/core': 6.1.5 - '@octokit/types': 14.0.0 - bottleneck: 2.19.5 - '@octokit/plugin-throttling@11.0.1(@octokit/core@7.0.2)': dependencies: '@octokit/core': 7.0.2 '@octokit/types': 14.0.0 bottleneck: 2.19.5 - '@octokit/request-error@6.1.8': - dependencies: - '@octokit/types': 14.0.0 - '@octokit/request-error@7.0.0': dependencies: '@octokit/types': 14.0.0 @@ -12009,18 +11946,14 @@ snapshots: fast-content-type-parse: 3.0.0 universal-user-agent: 7.0.2 - '@octokit/request@9.2.3': - dependencies: - '@octokit/endpoint': 10.1.4 - '@octokit/request-error': 6.1.8 - '@octokit/types': 14.0.0 - fast-content-type-parse: 2.0.1 - universal-user-agent: 7.0.2 - '@octokit/types@14.0.0': dependencies: '@octokit/openapi-types': 25.0.0 + '@octokit/types@14.1.0': + dependencies: + '@octokit/openapi-types': 25.1.0 + '@octokit/webhooks-methods@6.0.0': {} '@octokit/webhooks@14.0.0': @@ -12221,15 +12154,15 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@semantic-release/changelog@6.0.3(semantic-release@24.2.4(typescript@5.8.3))': + '@semantic-release/changelog@6.0.3(semantic-release@24.2.5(typescript@5.8.3))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 fs-extra: 11.2.0 lodash: 4.17.21 - semantic-release: 24.2.4(typescript@5.8.3) + semantic-release: 24.2.5(typescript@5.8.3) - '@semantic-release/commit-analyzer@13.0.1(semantic-release@24.2.4(typescript@5.8.3))': + '@semantic-release/commit-analyzer@13.0.1(semantic-release@24.2.5(typescript@5.8.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 @@ -12239,7 +12172,7 @@ snapshots: import-from-esm: 2.0.0 lodash-es: 4.17.21 micromatch: 4.0.8 - semantic-release: 24.2.4(typescript@5.8.3) + semantic-release: 24.2.5(typescript@5.8.3) transitivePeerDependencies: - supports-color @@ -12247,7 +12180,7 @@ snapshots: '@semantic-release/error@4.0.0': {} - '@semantic-release/git@10.0.1(semantic-release@24.2.4(typescript@5.8.3))': + '@semantic-release/git@10.0.1(semantic-release@24.2.5(typescript@5.8.3))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 @@ -12257,16 +12190,16 @@ snapshots: lodash: 4.17.21 micromatch: 4.0.8 p-reduce: 2.1.0 - semantic-release: 24.2.4(typescript@5.8.3) + semantic-release: 24.2.5(typescript@5.8.3) transitivePeerDependencies: - supports-color - '@semantic-release/github@11.0.2(semantic-release@24.2.4(typescript@5.8.3))': + '@semantic-release/github@11.0.3(semantic-release@24.2.5(typescript@5.8.3))': dependencies: - '@octokit/core': 6.1.5 - '@octokit/plugin-paginate-rest': 12.0.0(@octokit/core@6.1.5) - '@octokit/plugin-retry': 7.2.1(@octokit/core@6.1.5) - '@octokit/plugin-throttling': 10.0.0(@octokit/core@6.1.5) + '@octokit/core': 7.0.2 + '@octokit/plugin-paginate-rest': 13.0.0(@octokit/core@7.0.2) + '@octokit/plugin-retry': 8.0.1(@octokit/core@7.0.2) + '@octokit/plugin-throttling': 11.0.1(@octokit/core@7.0.2) '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 debug: 4.4.0 @@ -12278,12 +12211,12 @@ snapshots: lodash-es: 4.17.21 mime: 4.0.4 p-filter: 4.1.0 - semantic-release: 24.2.4(typescript@5.8.3) + semantic-release: 24.2.5(typescript@5.8.3) url-join: 5.0.0 transitivePeerDependencies: - supports-color - '@semantic-release/npm@12.0.1(semantic-release@24.2.4(typescript@5.8.3))': + '@semantic-release/npm@12.0.1(semantic-release@24.2.5(typescript@5.8.3))': dependencies: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 @@ -12296,11 +12229,11 @@ snapshots: rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 24.2.4(typescript@5.8.3) + semantic-release: 24.2.5(typescript@5.8.3) semver: 7.6.3 tempy: 3.1.0 - '@semantic-release/release-notes-generator@14.0.3(semantic-release@24.2.4(typescript@5.8.3))': + '@semantic-release/release-notes-generator@14.0.3(semantic-release@24.2.5(typescript@5.8.3))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 @@ -12312,7 +12245,7 @@ snapshots: into-stream: 7.0.0 lodash-es: 4.17.21 read-package-up: 11.0.0 - semantic-release: 24.2.4(typescript@5.8.3) + semantic-release: 24.2.5(typescript@5.8.3) transitivePeerDependencies: - supports-color @@ -12772,21 +12705,19 @@ snapshots: dependencies: tslib: 2.8.1 - '@t3-oss/env-core@0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.23)': - dependencies: + '@t3-oss/env-core@0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.42)': + optionalDependencies: arktype: 2.1.20 - optionalDependencies: typescript: 5.8.3 - zod: 3.25.23 + zod: 3.25.42 - '@t3-oss/env-nextjs@0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.23)': + '@t3-oss/env-nextjs@0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.42)': dependencies: - '@t3-oss/env-core': 0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.23) + '@t3-oss/env-core': 0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.42) optionalDependencies: + arktype: 2.1.20 typescript: 5.8.3 - zod: 3.25.23 - transitivePeerDependencies: - - arktype + zod: 3.25.42 '@tabler/icons-react@3.33.0(react@19.1.0)': dependencies: @@ -12799,25 +12730,25 @@ snapshots: dependencies: remove-accents: 0.5.0 - '@tanstack/query-core@5.76.2': {} + '@tanstack/query-core@5.79.0': {} '@tanstack/query-devtools@5.76.0': {} - '@tanstack/react-query-devtools@5.76.2(@tanstack/react-query@5.76.2(react@19.1.0))(react@19.1.0)': + '@tanstack/react-query-devtools@5.79.0(@tanstack/react-query@5.79.0(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/query-devtools': 5.76.0 - '@tanstack/react-query': 5.76.2(react@19.1.0) + '@tanstack/react-query': 5.79.0(react@19.1.0) react: 19.1.0 - '@tanstack/react-query-next-experimental@5.76.2(@tanstack/react-query@5.76.2(react@19.1.0))(next@15.3.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0)': + '@tanstack/react-query-next-experimental@5.79.0(@tanstack/react-query@5.79.0(react@19.1.0))(next@15.3.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0)': dependencies: - '@tanstack/react-query': 5.76.2(react@19.1.0) - next: 15.3.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + '@tanstack/react-query': 5.79.0(react@19.1.0) + next: 15.3.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: 19.1.0 - '@tanstack/react-query@5.76.2(react@19.1.0)': + '@tanstack/react-query@5.79.0(react@19.1.0)': dependencies: - '@tanstack/query-core': 5.76.2 + '@tanstack/query-core': 5.79.0 react: 19.1.0 '@tanstack/react-table@8.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': @@ -13060,41 +12991,41 @@ snapshots: tree-sitter: 0.22.1 optional: true - '@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3)': + '@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3)': dependencies: - '@trpc/server': 11.1.2(typescript@5.8.3) + '@trpc/server': 11.1.4(typescript@5.8.3) typescript: 5.8.3 - '@trpc/next@11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/react-query@11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(next@15.3.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)': + '@trpc/next@11.1.4(@tanstack/react-query@5.79.0(react@19.1.0))(@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3))(@trpc/react-query@11.1.4(@tanstack/react-query@5.79.0(react@19.1.0))(@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.4(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3))(@trpc/server@11.1.4(typescript@5.8.3))(next@15.3.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)': dependencies: - '@trpc/client': 11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3) - '@trpc/server': 11.1.2(typescript@5.8.3) - next: 15.3.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + '@trpc/client': 11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3) + '@trpc/server': 11.1.4(typescript@5.8.3) + next: 15.3.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) typescript: 5.8.3 optionalDependencies: - '@tanstack/react-query': 5.76.2(react@19.1.0) - '@trpc/react-query': 11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) + '@tanstack/react-query': 5.79.0(react@19.1.0) + '@trpc/react-query': 11.1.4(@tanstack/react-query@5.79.0(react@19.1.0))(@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.4(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) - '@trpc/react-query@11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)': + '@trpc/react-query@11.1.4(@tanstack/react-query@5.79.0(react@19.1.0))(@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.4(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)': dependencies: - '@tanstack/react-query': 5.76.2(react@19.1.0) - '@trpc/client': 11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3) - '@trpc/server': 11.1.2(typescript@5.8.3) + '@tanstack/react-query': 5.79.0(react@19.1.0) + '@trpc/client': 11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3) + '@trpc/server': 11.1.4(typescript@5.8.3) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) typescript: 5.8.3 - '@trpc/server@11.1.2(typescript@5.8.3)': + '@trpc/server@11.1.4(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@trpc/tanstack-react-query@11.1.2(@tanstack/react-query@5.76.2(react@19.1.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)': + '@trpc/tanstack-react-query@11.1.4(@tanstack/react-query@5.79.0(react@19.1.0))(@trpc/client@11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.4(typescript@5.8.3))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)': dependencies: - '@tanstack/react-query': 5.76.2(react@19.1.0) - '@trpc/client': 11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3) - '@trpc/server': 11.1.2(typescript@5.8.3) + '@tanstack/react-query': 5.79.0(react@19.1.0) + '@trpc/client': 11.1.4(@trpc/server@11.1.4(typescript@5.8.3))(typescript@5.8.3) + '@trpc/server': 11.1.4(typescript@5.8.3) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) typescript: 5.8.3 @@ -13109,9 +13040,9 @@ snapshots: '@tsconfig/svelte@1.0.13': {} - '@turbo/gen@2.5.3(@types/node@22.15.21)(typescript@5.8.3)': + '@turbo/gen@2.5.4(@types/node@22.15.28)(typescript@5.8.3)': dependencies: - '@turbo/workspaces': 2.5.3 + '@turbo/workspaces': 2.5.4 commander: 10.0.1 fs-extra: 10.1.0 inquirer: 8.2.6 @@ -13119,7 +13050,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.5.0 - ts-node: 10.9.2(@types/node@22.15.21)(typescript@5.8.3) + ts-node: 10.9.2(@types/node@22.15.28)(typescript@5.8.3) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -13129,7 +13060,7 @@ snapshots: - supports-color - typescript - '@turbo/workspaces@2.5.3': + '@turbo/workspaces@2.5.4': dependencies: commander: 10.0.1 execa: 5.1.1 @@ -13145,11 +13076,11 @@ snapshots: '@types/adm-zip@0.5.7': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/asn1@0.2.4': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/aws-lambda@8.10.146': {} @@ -13176,22 +13107,22 @@ snapshots: '@types/bcrypt@5.0.2': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/better-sqlite3@7.6.13': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/chroma-js@3.1.1': {} '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/cookie@0.4.1': {} @@ -13200,11 +13131,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/cors@2.8.17': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/css-font-loading-module@0.0.7': {} @@ -13240,13 +13171,13 @@ snapshots: '@types/docker-modem@3.0.6': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/ssh2': 1.15.1 '@types/dockerode@3.3.39': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/ssh2': 1.15.1 '@types/estree-jsx@1.0.5': @@ -13259,7 +13190,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -13274,7 +13205,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/hast@2.3.10': dependencies: @@ -13322,7 +13253,7 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 form-data: 4.0.1 '@types/node-unifi@2.5.1(patch_hash=5e6ae51e2a17a7f9729bfa30b0eb3d0842a5810ac6db47603ab4a6efa1ed84c5)': @@ -13333,7 +13264,7 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.15.21': + '@types/node@22.15.28': dependencies: undici-types: 6.21.0 @@ -13349,11 +13280,11 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.1.5(@types/react@19.1.5)': + '@types/react-dom@19.1.5(@types/react@19.1.6)': dependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@types/react@19.1.5': + '@types/react@19.1.6': dependencies: csstype: 3.1.3 @@ -13362,21 +13293,21 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/send': 0.17.4 '@types/ssh2-streams@0.1.12': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/ssh2@0.5.52': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/ssh2-streams': 0.1.12 '@types/ssh2@1.15.1': @@ -13385,15 +13316,15 @@ snapshots: '@types/stream-buffers@3.0.7': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/swagger-ui-react@5.18.0': dependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 '@types/through@0.0.33': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/tinycolor2@1.4.6': {} @@ -13412,20 +13343,20 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@types/xml2js@0.4.14': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 - '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/parser': 8.33.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/type-utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.0 eslint: 9.27.0 graphemer: 1.4.0 ignore: 7.0.4 @@ -13435,41 +13366,56 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.0 debug: 4.4.0 eslint: 9.27.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.32.1': + '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + - typescript - '@typescript-eslint/type-utils@8.32.1(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/scope-manager@8.33.0': dependencies: - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - debug: 4.4.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/visitor-keys': 8.33.0 + + '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 + + '@typescript-eslint/type-utils@8.33.0(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3) + debug: 4.4.1 eslint: 9.27.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.32.1': {} + '@typescript-eslint/types@8.33.0': {} - '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/visitor-keys': 8.32.1 - debug: 4.4.0 + '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/visitor-keys': 8.33.0 + debug: 4.4.1 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 @@ -13479,20 +13425,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.32.1(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.33.0(eslint@9.27.0)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) eslint: 9.27.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.32.1': + '@typescript-eslint/visitor-keys@8.33.0': dependencies: - '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/types': 8.33.0 eslint-visitor-keys: 4.2.0 '@umami/node@0.4.0': {} @@ -13527,7 +13473,7 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@4.5.0(vite@5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0))': + '@vitejs/plugin-react@4.5.0(vite@5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) @@ -13535,7 +13481,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.9 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) + vite: 5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) transitivePeerDependencies: - supports-color @@ -13553,7 +13499,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.21)(@vitest/ui@3.1.4)(jsdom@26.1.0)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) + vitest: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(@vitest/ui@3.1.4)(jsdom@26.1.0)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) transitivePeerDependencies: - supports-color @@ -13564,13 +13510,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.4(vite@5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0))': + '@vitest/mocker@3.1.4(vite@5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0))': dependencies: '@vitest/spy': 3.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) + vite: 5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) '@vitest/pretty-format@3.1.4': dependencies: @@ -13600,7 +13546,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.13 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.21)(@vitest/ui@3.1.4)(jsdom@26.1.0)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) + vitest: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(@vitest/ui@3.1.4)(jsdom@26.1.0)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) '@vitest/utils@3.1.4': dependencies: @@ -13841,6 +13787,7 @@ snapshots: dependencies: '@ark/schema': 0.46.0 '@ark/util': 0.46.0 + optional: true array-buffer-byte-length@1.0.1: dependencies: @@ -14045,8 +13992,6 @@ snapshots: node-addon-api: 8.3.0 node-gyp-build: 4.8.4 - before-after-hook@3.0.2: {} - before-after-hook@4.0.0: {} better-sqlite3@11.10.0: @@ -14207,7 +14152,7 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} + chalk@5.4.1: {} change-case@3.1.0: dependencies: @@ -14425,7 +14370,7 @@ snapshots: dependencies: compare-func: 2.0.0 - conventional-changelog-conventionalcommits@8.0.0: + conventional-changelog-conventionalcommits@9.0.0: dependencies: compare-func: 2.0.0 @@ -14435,7 +14380,7 @@ snapshots: conventional-commits-filter: 5.0.0 handlebars: 4.7.8 meow: 13.2.0 - semver: 7.6.3 + semver: 7.7.1 conventional-commits-filter@5.0.0: {} @@ -14641,6 +14586,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.1: + dependencies: + ms: 2.1.3 + decimal.js-light@2.5.1: {} decimal.js@10.5.0: {} @@ -14796,12 +14745,12 @@ snapshots: dependencies: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 - esbuild: 0.25.4 - esbuild-register: 3.6.0(esbuild@0.25.4) + esbuild: 0.25.5 + esbuild-register: 3.6.0(esbuild@0.25.5) transitivePeerDependencies: - supports-color - drizzle-orm@0.43.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(gel@2.0.0)(mysql2@3.14.1): + drizzle-orm@0.44.0(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(gel@2.0.0)(mysql2@3.14.1): optionalDependencies: '@libsql/client-wasm': 0.14.0 '@types/better-sqlite3': 7.6.13 @@ -14809,10 +14758,10 @@ snapshots: gel: 2.0.0 mysql2: 3.14.1 - drizzle-zod@0.7.1(drizzle-orm@0.43.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(gel@2.0.0)(mysql2@3.14.1))(zod@3.25.23): + drizzle-zod@0.7.1(drizzle-orm@0.44.0(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(gel@2.0.0)(mysql2@3.14.1))(zod@3.25.42): dependencies: - drizzle-orm: 0.43.1(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(gel@2.0.0)(mysql2@3.14.1) - zod: 3.25.23 + drizzle-orm: 0.44.0(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(gel@2.0.0)(mysql2@3.14.1) + zod: 3.25.42 dunder-proto@1.0.1: dependencies: @@ -14867,7 +14816,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 22.15.21 + '@types/node': 22.15.28 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -15061,10 +15010,10 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild-register@3.6.0(esbuild@0.25.4): + esbuild-register@3.6.0(esbuild@0.25.5): dependencies: debug: 4.4.0 - esbuild: 0.25.4 + esbuild: 0.25.5 transitivePeerDependencies: - supports-color @@ -15145,33 +15094,33 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - esbuild@0.25.4: + esbuild@0.25.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.4 - '@esbuild/android-arm': 0.25.4 - '@esbuild/android-arm64': 0.25.4 - '@esbuild/android-x64': 0.25.4 - '@esbuild/darwin-arm64': 0.25.4 - '@esbuild/darwin-x64': 0.25.4 - '@esbuild/freebsd-arm64': 0.25.4 - '@esbuild/freebsd-x64': 0.25.4 - '@esbuild/linux-arm': 0.25.4 - '@esbuild/linux-arm64': 0.25.4 - '@esbuild/linux-ia32': 0.25.4 - '@esbuild/linux-loong64': 0.25.4 - '@esbuild/linux-mips64el': 0.25.4 - '@esbuild/linux-ppc64': 0.25.4 - '@esbuild/linux-riscv64': 0.25.4 - '@esbuild/linux-s390x': 0.25.4 - '@esbuild/linux-x64': 0.25.4 - '@esbuild/netbsd-arm64': 0.25.4 - '@esbuild/netbsd-x64': 0.25.4 - '@esbuild/openbsd-arm64': 0.25.4 - '@esbuild/openbsd-x64': 0.25.4 - '@esbuild/sunos-x64': 0.25.4 - '@esbuild/win32-arm64': 0.25.4 - '@esbuild/win32-ia32': 0.25.4 - '@esbuild/win32-x64': 0.25.4 + '@esbuild/aix-ppc64': 0.25.5 + '@esbuild/android-arm': 0.25.5 + '@esbuild/android-arm64': 0.25.5 + '@esbuild/android-x64': 0.25.5 + '@esbuild/darwin-arm64': 0.25.5 + '@esbuild/darwin-x64': 0.25.5 + '@esbuild/freebsd-arm64': 0.25.5 + '@esbuild/freebsd-x64': 0.25.5 + '@esbuild/linux-arm': 0.25.5 + '@esbuild/linux-arm64': 0.25.5 + '@esbuild/linux-ia32': 0.25.5 + '@esbuild/linux-loong64': 0.25.5 + '@esbuild/linux-mips64el': 0.25.5 + '@esbuild/linux-ppc64': 0.25.5 + '@esbuild/linux-riscv64': 0.25.5 + '@esbuild/linux-s390x': 0.25.5 + '@esbuild/linux-x64': 0.25.5 + '@esbuild/netbsd-arm64': 0.25.5 + '@esbuild/netbsd-x64': 0.25.5 + '@esbuild/openbsd-arm64': 0.25.5 + '@esbuild/openbsd-x64': 0.25.5 + '@esbuild/sunos-x64': 0.25.5 + '@esbuild/win32-arm64': 0.25.5 + '@esbuild/win32-ia32': 0.25.5 + '@esbuild/win32-x64': 0.25.5 escalade@3.2.0: {} @@ -15195,11 +15144,11 @@ snapshots: dependencies: eslint: 9.27.0 - eslint-config-turbo@2.5.3(eslint@9.27.0)(turbo@2.5.3): + eslint-config-turbo@2.5.4(eslint@9.27.0)(turbo@2.5.4): dependencies: eslint: 9.27.0 - eslint-plugin-turbo: 2.5.3(eslint@9.27.0)(turbo@2.5.3) - turbo: 2.5.3 + eslint-plugin-turbo: 2.5.4(eslint@9.27.0)(turbo@2.5.4) + turbo: 2.5.4 eslint-import-resolver-node@0.3.9: dependencies: @@ -15209,17 +15158,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.0(eslint@9.27.0)(typescript@5.8.3) eslint: 9.27.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -15230,7 +15179,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.27.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -15242,7 +15191,7 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.0(eslint@9.27.0)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -15293,11 +15242,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-turbo@2.5.3(eslint@9.27.0)(turbo@2.5.3): + eslint-plugin-turbo@2.5.4(eslint@9.27.0)(turbo@2.5.4): dependencies: dotenv: 16.0.3 eslint: 9.27.0 - turbo: 2.5.3 + turbo: 2.5.4 eslint-scope@5.1.1: dependencies: @@ -15446,8 +15395,6 @@ snapshots: dependencies: pure-rand: 6.1.0 - fast-content-type-parse@2.0.1: {} - fast-content-type-parse@3.0.0: {} fast-deep-equal@3.1.3: {} @@ -15550,7 +15497,7 @@ snapshots: semver-regex: 4.0.5 super-regex: 1.0.0 - flag-icons@7.3.2: {} + flag-icons@7.5.0: {} flat-cache@4.0.1: dependencies: @@ -15632,7 +15579,7 @@ snapshots: gel@2.0.0: dependencies: '@petamoriken/float16': 3.9.1 - debug: 4.4.0 + debug: 4.4.1 env-paths: 3.0.0 semver: 7.7.1 shell-quote: 1.8.1 @@ -15723,7 +15670,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.0 + debug: 4.4.1 fs-extra: 11.2.0 transitivePeerDependencies: - supports-color @@ -15844,7 +15791,7 @@ snapshots: iron-webcrypto: 1.2.1 node-mock-http: 1.0.0 radix3: 1.1.2 - ufo: 1.5.4 + ufo: 1.6.1 uncrypto: 0.1.3 handlebars@4.7.8: @@ -16442,15 +16389,15 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 merge-stream: 2.0.0 supports-color: 8.1.1 jose@6.0.8: {} - jotai@2.12.4(@types/react@19.1.5)(react@19.1.0): + jotai@2.12.5(@types/react@19.1.6)(react@19.1.0): optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 react: 19.1.0 js-base64@3.7.7: @@ -16558,11 +16505,11 @@ snapshots: dependencies: readable-stream: 2.3.8 - ldapts@8.0.0: + ldapts@8.0.1: dependencies: '@types/asn1': 0.2.4 asn1: 0.2.6 - debug: 4.4.0 + debug: 4.4.1 strict-event-emitter-types: 2.0.0 uuid: 11.1.0 whatwg-url: 14.2.0 @@ -16711,11 +16658,11 @@ snapshots: make-error@1.3.6: {} - mantine-react-table@2.0.0-beta.9(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(@tabler/icons-react@3.33.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + mantine-react-table@2.0.0-beta.9(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(@tabler/icons-react@3.33.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@mantine/core': 8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/dates': 8.0.1(@mantine/core@8.0.1(@mantine/hooks@8.0.1(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.1(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/hooks': 8.0.1(react@19.1.0) + '@mantine/core': 8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/dates': 8.0.2(@mantine/core@8.0.2(@mantine/hooks@8.0.2(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.0.2(react@19.1.0))(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.0.2(react@19.1.0) '@tabler/icons-react': 3.33.0(react@19.1.0) '@tanstack/match-sorter-utils': 8.19.4 '@tanstack/react-table': 8.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -16736,11 +16683,11 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 - marked-terminal@7.2.1(marked@15.0.11): + marked-terminal@7.3.0(marked@15.0.11): dependencies: ansi-escapes: 7.0.0 ansi-regex: 6.1.0 - chalk: 5.3.0 + chalk: 5.4.1 cli-highlight: 2.1.11 cli-table3: 0.6.5 marked: 15.0.11 @@ -16964,7 +16911,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0 + debug: 4.4.1 decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -17115,25 +17062,25 @@ snapshots: netmask@2.0.2: {} - next-auth@5.0.0-beta.28(next@15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0): + next-auth@5.0.0-beta.28(next@15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0): dependencies: '@auth/core': 0.39.1 - next: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + next: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: 19.1.0 - next-intl@4.1.0(next@15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0)(typescript@5.8.3): + next-intl@4.1.0(next@15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0))(react@19.1.0)(typescript@5.8.3): dependencies: '@formatjs/intl-localematcher': 0.5.5 negotiator: 1.0.0 - next: 15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) + next: 15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0) react: 19.1.0 use-intl: 4.1.0(react@19.1.0) optionalDependencies: typescript: 5.8.3 - next@15.3.2(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0): + next@15.3.3(@babel/core@7.26.0)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0): dependencies: - '@next/env': 15.3.2 + '@next/env': 15.3.3 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 @@ -17143,14 +17090,14 @@ snapshots: react-dom: 19.1.0(react@19.1.0) styled-jsx: 5.1.6(@babel/core@7.26.0)(react@19.1.0) optionalDependencies: - '@next/swc-darwin-arm64': 15.3.2 - '@next/swc-darwin-x64': 15.3.2 - '@next/swc-linux-arm64-gnu': 15.3.2 - '@next/swc-linux-arm64-musl': 15.3.2 - '@next/swc-linux-x64-gnu': 15.3.2 - '@next/swc-linux-x64-musl': 15.3.2 - '@next/swc-win32-arm64-msvc': 15.3.2 - '@next/swc-win32-x64-msvc': 15.3.2 + '@next/swc-darwin-arm64': 15.3.3 + '@next/swc-darwin-x64': 15.3.3 + '@next/swc-linux-arm64-gnu': 15.3.3 + '@next/swc-linux-arm64-musl': 15.3.3 + '@next/swc-linux-x64-gnu': 15.3.3 + '@next/swc-linux-x64-musl': 15.3.3 + '@next/swc-win32-arm64-msvc': 15.3.3 + '@next/swc-win32-x64-msvc': 15.3.3 '@playwright/test': 1.49.1 sass: 1.89.0 sharp: 0.34.1 @@ -17158,9 +17105,9 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.3.2(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0): + next@15.3.3(@babel/core@7.26.10)(@playwright/test@1.49.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.89.0): dependencies: - '@next/env': 15.3.2 + '@next/env': 15.3.3 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 @@ -17170,14 +17117,14 @@ snapshots: react-dom: 19.1.0(react@19.1.0) styled-jsx: 5.1.6(@babel/core@7.26.10)(react@19.1.0) optionalDependencies: - '@next/swc-darwin-arm64': 15.3.2 - '@next/swc-darwin-x64': 15.3.2 - '@next/swc-linux-arm64-gnu': 15.3.2 - '@next/swc-linux-arm64-musl': 15.3.2 - '@next/swc-linux-x64-gnu': 15.3.2 - '@next/swc-linux-x64-musl': 15.3.2 - '@next/swc-win32-arm64-msvc': 15.3.2 - '@next/swc-win32-x64-msvc': 15.3.2 + '@next/swc-darwin-arm64': 15.3.3 + '@next/swc-darwin-x64': 15.3.3 + '@next/swc-linux-arm64-gnu': 15.3.3 + '@next/swc-linux-arm64-musl': 15.3.3 + '@next/swc-linux-x64-gnu': 15.3.3 + '@next/swc-linux-x64-musl': 15.3.3 + '@next/swc-win32-arm64-msvc': 15.3.3 + '@next/swc-win32-x64-msvc': 15.3.3 '@playwright/test': 1.49.1 sass: 1.89.0 sharp: 0.34.1 @@ -17209,9 +17156,7 @@ snapshots: node-addon-api@8.3.0: {} - node-cron@3.0.3: - dependencies: - uuid: 8.3.2 + node-cron@4.0.7: {} node-domexception@1.0.0: {} @@ -17255,7 +17200,7 @@ snapshots: node-plop@0.26.3: dependencies: - '@babel/runtime-corejs3': 7.27.0 + '@babel/runtime-corejs3': 7.27.1 '@types/inquirer': 6.5.0 change-case: 3.1.0 del: 5.1.0 @@ -17357,14 +17302,14 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - octokit@5.0.2: + octokit@5.0.3: dependencies: '@octokit/app': 16.0.1 '@octokit/core': 7.0.2 '@octokit/oauth-app': 8.0.1 '@octokit/plugin-paginate-graphql': 6.0.0(@octokit/core@7.0.2) '@octokit/plugin-paginate-rest': 13.0.0(@octokit/core@7.0.2) - '@octokit/plugin-rest-endpoint-methods': 15.0.0(@octokit/core@7.0.2) + '@octokit/plugin-rest-endpoint-methods': 16.0.0(@octokit/core@7.0.2) '@octokit/plugin-retry': 8.0.1(@octokit/core@7.0.2) '@octokit/plugin-throttling': 11.0.1(@octokit/core@7.0.2) '@octokit/request-error': 7.0.0 @@ -17488,7 +17433,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -17883,7 +17828,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.15.21 + '@types/node': 22.15.28 long: 5.2.3 proxmox-api@1.1.1: @@ -17893,7 +17838,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -18007,11 +17952,11 @@ snapshots: react-is@18.3.1: {} - react-markdown@10.1.0(@types/react@19.1.5)(react@19.1.0): + react-markdown@10.1.0(@types/react@19.1.6)(react@19.1.0): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 19.1.5 + '@types/react': 19.1.6 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 @@ -18030,35 +17975,35 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-redux@9.2.0(@types/react@19.1.5)(react@19.1.0)(redux@5.0.1): + react-redux@9.2.0(@types/react@19.1.6)(react@19.1.0)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.6 react: 19.1.0 use-sync-external-store: 1.4.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 redux: 5.0.1 react-refresh@0.17.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.5)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.5)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.6)(react@19.1.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - react-remove-scroll@2.6.2(@types/react@19.1.5)(react@19.1.0): + react-remove-scroll@2.6.2(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.5)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.1.5)(react@19.1.0) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.6)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.6)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.5)(react@19.1.0) - use-sidecar: 1.1.2(@types/react@19.1.5)(react@19.1.0) + use-callback-ref: 1.3.3(@types/react@19.1.6)(react@19.1.0) + use-sidecar: 1.1.2(@types/react@19.1.6)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 react-scan@0.0.31: dependencies: @@ -18081,13 +18026,13 @@ snapshots: react-dom: 19.1.0(react@19.1.0) react-transition-group: 4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-style-singleton@2.2.3(@types/react@19.1.5)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@19.1.6)(react@19.1.0): dependencies: get-nonce: 1.0.1 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 react-syntax-highlighter@15.6.1(react@19.1.0): dependencies: @@ -18099,12 +18044,12 @@ snapshots: react: 19.1.0 refractor: 3.6.0 - react-textarea-autosize@8.5.9(@types/react@19.1.5)(react@19.1.0): + react-textarea-autosize@8.5.9(@types/react@19.1.6)(react@19.1.0): dependencies: '@babel/runtime': 7.25.6 react: 19.1.0 use-composed-ref: 1.3.0(react@19.1.0) - use-latest: 1.2.1(@types/react@19.1.5)(react@19.1.0) + use-latest: 1.2.1(@types/react@19.1.6)(react@19.1.0) transitivePeerDependencies: - '@types/react' @@ -18453,13 +18398,13 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) - semantic-release@24.2.4(typescript@5.8.3): + semantic-release@24.2.5(typescript@5.8.3): dependencies: - '@semantic-release/commit-analyzer': 13.0.1(semantic-release@24.2.4(typescript@5.8.3)) + '@semantic-release/commit-analyzer': 13.0.1(semantic-release@24.2.5(typescript@5.8.3)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 11.0.2(semantic-release@24.2.4(typescript@5.8.3)) - '@semantic-release/npm': 12.0.1(semantic-release@24.2.4(typescript@5.8.3)) - '@semantic-release/release-notes-generator': 14.0.3(semantic-release@24.2.4(typescript@5.8.3)) + '@semantic-release/github': 11.0.3(semantic-release@24.2.5(typescript@5.8.3)) + '@semantic-release/npm': 12.0.1(semantic-release@24.2.5(typescript@5.8.3)) + '@semantic-release/release-notes-generator': 14.0.3(semantic-release@24.2.5(typescript@5.8.3)) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.8.3) debug: 4.4.0 @@ -18474,7 +18419,7 @@ snapshots: import-from-esm: 2.0.0 lodash-es: 4.17.21 marked: 15.0.11 - marked-terminal: 7.2.1(marked@15.0.11) + marked-terminal: 7.3.0(marked@15.0.11) micromatch: 4.0.8 p-each-series: 3.0.0 p-reduce: 3.0.0 @@ -18995,7 +18940,7 @@ snapshots: transitivePeerDependencies: - debug - swagger-ui-react@5.22.0(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + swagger-ui-react@5.22.0(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime-corejs3': 7.27.1 '@scarf/scarf': 1.4.0 @@ -19019,7 +18964,7 @@ snapshots: react-immutable-proptypes: 2.2.0(immutable@3.8.2) react-immutable-pure-component: 2.2.2(immutable@3.8.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-inspector: 6.0.2(react@19.1.0) - react-redux: 9.2.0(@types/react@19.1.5)(react@19.1.0)(redux@5.0.1) + react-redux: 9.2.0(@types/react@19.1.6)(react@19.1.0)(redux@5.0.1) react-syntax-highlighter: 15.6.1(react@19.1.0) redux: 5.0.1 redux-immutable: 4.0.0(immutable@3.8.2) @@ -19254,14 +19199,14 @@ snapshots: trough@2.2.0: {} - trpc-to-openapi@2.2.0(@trpc/server@11.1.2(typescript@5.8.3))(zod-openapi@2.19.0(zod@3.25.23))(zod@3.25.23): + trpc-to-openapi@2.3.1(@trpc/server@11.1.4(typescript@5.8.3))(zod-openapi@2.19.0(zod@3.25.42))(zod@3.25.42): dependencies: - '@trpc/server': 11.1.2(typescript@5.8.3) + '@trpc/server': 11.1.4(typescript@5.8.3) co-body: 6.2.0 h3: 1.15.1 openapi3-ts: 4.4.0 - zod: 3.25.23 - zod-openapi: 2.19.0(zod@3.25.23) + zod: 3.25.42 + zod-openapi: 2.19.0(zod@3.25.42) optionalDependencies: '@rollup/rollup-linux-x64-gnu': 4.6.1 @@ -19271,14 +19216,14 @@ snapshots: ts-mixer@6.0.4: {} - ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3): + ts-node@10.9.2(@types/node@22.15.28)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.21 + '@types/node': 22.15.28 acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -19322,7 +19267,7 @@ snapshots: tsx@4.19.4: dependencies: - esbuild: 0.25.4 + esbuild: 0.25.5 get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 @@ -19331,32 +19276,32 @@ snapshots: dependencies: safe-buffer: 5.2.1 - turbo-darwin-64@2.5.3: + turbo-darwin-64@2.5.4: optional: true - turbo-darwin-arm64@2.5.3: + turbo-darwin-arm64@2.5.4: optional: true - turbo-linux-64@2.5.3: + turbo-linux-64@2.5.4: optional: true - turbo-linux-arm64@2.5.3: + turbo-linux-arm64@2.5.4: optional: true - turbo-windows-64@2.5.3: + turbo-windows-64@2.5.4: optional: true - turbo-windows-arm64@2.5.3: + turbo-windows-arm64@2.5.4: optional: true - turbo@2.5.3: + turbo@2.5.4: optionalDependencies: - turbo-darwin-64: 2.5.3 - turbo-darwin-arm64: 2.5.3 - turbo-linux-64: 2.5.3 - turbo-linux-arm64: 2.5.3 - turbo-windows-64: 2.5.3 - turbo-windows-arm64: 2.5.3 + turbo-darwin-64: 2.5.4 + turbo-darwin-arm64: 2.5.4 + turbo-linux-64: 2.5.4 + turbo-linux-arm64: 2.5.4 + turbo-windows-64: 2.5.4 + turbo-windows-arm64: 2.5.4 tweetnacl@0.14.5: {} @@ -19454,11 +19399,11 @@ snapshots: dependencies: ts-toolbelt: 9.6.0 - typescript-eslint@8.32.1(eslint@9.27.0)(typescript@5.8.3): + typescript-eslint@8.33.0(eslint@9.27.0)(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3) eslint: 9.27.0 typescript: 5.8.3 transitivePeerDependencies: @@ -19624,12 +19569,12 @@ snapshots: url-toolkit@2.2.5: {} - use-callback-ref@1.3.3(@types/react@19.1.5)(react@19.1.0): + use-callback-ref@1.3.3(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 use-composed-ref@1.3.0(react@19.1.0): dependencies: @@ -19648,26 +19593,26 @@ snapshots: intl-messageformat: 10.7.1 react: 19.1.0 - use-isomorphic-layout-effect@1.1.2(@types/react@19.1.5)(react@19.1.0): + use-isomorphic-layout-effect@1.1.2(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - use-latest@1.2.1(@types/react@19.1.5)(react@19.1.0): + use-latest@1.2.1(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 - use-isomorphic-layout-effect: 1.1.2(@types/react@19.1.5)(react@19.1.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@19.1.6)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - use-sidecar@1.1.2(@types/react@19.1.5)(react@19.1.0): + use-sidecar@1.1.2(@types/react@19.1.6)(react@19.1.0): dependencies: detect-node-es: 1.1.0 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 use-sync-external-store@1.4.0(react@19.1.0): dependencies: @@ -19745,13 +19690,13 @@ snapshots: dependencies: global: 4.4.0 - vite-node@3.1.4(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0): + vite-node@3.1.4(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) + vite: 5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) transitivePeerDependencies: - '@types/node' - less @@ -19763,33 +19708,33 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.8.3) optionalDependencies: - vite: 5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) + vite: 5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0): + vite@5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.21.3 optionalDependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.28 fsevents: 2.3.3 sass: 1.89.0 sugarss: 4.0.1(postcss@8.4.47) terser: 5.39.0 - vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.21)(@vitest/ui@3.1.4)(jsdom@26.1.0)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0): + vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(@vitest/ui@3.1.4)(jsdom@26.1.0)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0): dependencies: '@vitest/expect': 3.1.4 - '@vitest/mocker': 3.1.4(vite@5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0)) + '@vitest/mocker': 3.1.4(vite@5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0)) '@vitest/pretty-format': 3.1.4 '@vitest/runner': 3.1.4 '@vitest/snapshot': 3.1.4 @@ -19806,12 +19751,12 @@ snapshots: tinyglobby: 0.2.13 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 5.4.5(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) - vite-node: 3.1.4(@types/node@22.15.21)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) + vite: 5.4.5(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) + vite-node: 3.1.4(@types/node@22.15.28)(sass@1.89.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.39.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.15.21 + '@types/node': 22.15.28 '@vitest/ui': 3.1.4(vitest@3.1.4) jsdom: 26.1.0 transitivePeerDependencies: @@ -20103,19 +20048,19 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.5.2 - zod-form-data@2.0.7(zod@3.25.23): + zod-form-data@2.0.7(zod@3.25.42): dependencies: '@rvf/set-get': 7.0.1 - zod: 3.25.23 + zod: 3.25.42 - zod-openapi@2.19.0(zod@3.25.23): + zod-openapi@2.19.0(zod@3.25.42): dependencies: - zod: 3.25.23 + zod: 3.25.42 - zod-validation-error@3.4.1(zod@3.25.23): + zod-validation-error@3.4.1(zod@3.25.42): dependencies: - zod: 3.25.23 + zod: 3.25.42 - zod@3.25.23: {} + zod@3.25.42: {} zwitch@2.0.4: {} diff --git a/static-data/contributors.json b/static-data/contributors.json index e4acbabb4..01e0894a8 100644 --- a/static-data/contributors.json +++ b/static-data/contributors.json @@ -1 +1 @@ -[{"login":"ajnart","avatar_url":"https://avatars.githubusercontent.com/u/49837342?v=4"},{"login":"manuel-rw","avatar_url":"https://avatars.githubusercontent.com/u/30572287?v=4"},{"login":"Meierschlumpf","avatar_url":"https://avatars.githubusercontent.com/u/63781622?v=4"},{"login":"SeDemal","avatar_url":"https://avatars.githubusercontent.com/u/26098587?v=4"},{"login":"lammersbjorn","avatar_url":"https://avatars.githubusercontent.com/u/71191962?v=4"},{"login":"LarveyOfficial","avatar_url":"https://avatars.githubusercontent.com/u/39219859?v=4"},{"login":"c00ldude1oo","avatar_url":"https://avatars.githubusercontent.com/u/15677803?v=4"},{"login":"InterN0te","avatar_url":"https://avatars.githubusercontent.com/u/10882916?v=4"},{"login":"Aimsucks","avatar_url":"https://avatars.githubusercontent.com/u/1828486?v=4"},{"login":"JannesV","avatar_url":"https://avatars.githubusercontent.com/u/5984244?v=4"},{"login":"MauriceNino","avatar_url":"https://avatars.githubusercontent.com/u/18658092?v=4"},{"login":"hillaliy","avatar_url":"https://avatars.githubusercontent.com/u/950010?v=4"},{"login":"Skeeww","avatar_url":"https://avatars.githubusercontent.com/u/9639992?v=4"},{"login":"RichyHBM","avatar_url":"https://avatars.githubusercontent.com/u/5472275?v=4"},{"login":"Bonfire","avatar_url":"https://avatars.githubusercontent.com/u/5704760?v=4"},{"login":"wieli99","avatar_url":"https://avatars.githubusercontent.com/u/46794825?v=4"},{"login":"ishaanparlikar","avatar_url":"https://avatars.githubusercontent.com/u/43013132?v=4"},{"login":"Zareix","avatar_url":"https://avatars.githubusercontent.com/u/29818713?v=4"},{"login":"tuggan","avatar_url":"https://avatars.githubusercontent.com/u/4325608?v=4"},{"login":"Spillebulle","avatar_url":"https://avatars.githubusercontent.com/u/46653946?v=4"},{"login":"tancak","avatar_url":"https://avatars.githubusercontent.com/u/11760749?v=4"},{"login":"spkesDE","avatar_url":"https://avatars.githubusercontent.com/u/1682314?v=4"},{"login":"j3lte","avatar_url":"https://avatars.githubusercontent.com/u/2557568?v=4"},{"login":"dslatt","avatar_url":"https://avatars.githubusercontent.com/u/5211001?v=4"},{"login":"Malong11-007","avatar_url":"https://avatars.githubusercontent.com/u/40298510?v=4"},{"login":"StefanB7","avatar_url":"https://avatars.githubusercontent.com/u/22056509?v=4"},{"login":"souravghosh01","avatar_url":"https://avatars.githubusercontent.com/u/37548139?v=4"},{"login":"SR3u","avatar_url":"https://avatars.githubusercontent.com/u/2380522?v=4"},{"login":"Rikpat","avatar_url":"https://avatars.githubusercontent.com/u/33869814?v=4"},{"login":"NormanJS","avatar_url":"https://avatars.githubusercontent.com/u/83409549?v=4"},{"login":"No-Maines-Land","avatar_url":"https://avatars.githubusercontent.com/u/20687725?v=4"},{"login":"stark1tty","avatar_url":"https://avatars.githubusercontent.com/u/69326376?v=4"},{"login":"Momcilo42","avatar_url":"https://avatars.githubusercontent.com/u/10118137?v=4"},{"login":"marius-arch","avatar_url":"https://avatars.githubusercontent.com/u/72494359?v=4"},{"login":"Lumilias","avatar_url":"https://avatars.githubusercontent.com/u/10852161?v=4"},{"login":"Havock94","avatar_url":"https://avatars.githubusercontent.com/u/7635248?v=4"},{"login":"Lollyde","avatar_url":"https://avatars.githubusercontent.com/u/11347524?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"devtobi","avatar_url":"https://avatars.githubusercontent.com/u/28538704?v=4"},{"login":"TyxTang","avatar_url":"https://avatars.githubusercontent.com/u/90897955?v=4"},{"login":"VinnyVynce","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"bo3bdo","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"krishnamuppaneni","avatar_url":"https://avatars.githubusercontent.com/u/4703366?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"}] \ No newline at end of file +[{"login":"ajnart","avatar_url":"https://avatars.githubusercontent.com/u/49837342?v=4"},{"login":"manuel-rw","avatar_url":"https://avatars.githubusercontent.com/u/30572287?v=4"},{"login":"Meierschlumpf","avatar_url":"https://avatars.githubusercontent.com/u/63781622?v=4"},{"login":"SeDemal","avatar_url":"https://avatars.githubusercontent.com/u/26098587?v=4"},{"login":"lammersbjorn","avatar_url":"https://avatars.githubusercontent.com/u/71191962?v=4"},{"login":"LarveyOfficial","avatar_url":"https://avatars.githubusercontent.com/u/39219859?v=4"},{"login":"c00ldude1oo","avatar_url":"https://avatars.githubusercontent.com/u/15677803?v=4"},{"login":"InterN0te","avatar_url":"https://avatars.githubusercontent.com/u/10882916?v=4"},{"login":"Aimsucks","avatar_url":"https://avatars.githubusercontent.com/u/1828486?v=4"},{"login":"JannesV","avatar_url":"https://avatars.githubusercontent.com/u/5984244?v=4"},{"login":"MauriceNino","avatar_url":"https://avatars.githubusercontent.com/u/18658092?v=4"},{"login":"hillaliy","avatar_url":"https://avatars.githubusercontent.com/u/950010?v=4"},{"login":"Skeeww","avatar_url":"https://avatars.githubusercontent.com/u/9639992?v=4"},{"login":"RichyHBM","avatar_url":"https://avatars.githubusercontent.com/u/5472275?v=4"},{"login":"Bonfire","avatar_url":"https://avatars.githubusercontent.com/u/5704760?v=4"},{"login":"wieli99","avatar_url":"https://avatars.githubusercontent.com/u/46794825?v=4"},{"login":"ishaanparlikar","avatar_url":"https://avatars.githubusercontent.com/u/43013132?v=4"},{"login":"Zareix","avatar_url":"https://avatars.githubusercontent.com/u/29818713?v=4"},{"login":"tuggan","avatar_url":"https://avatars.githubusercontent.com/u/4325608?v=4"},{"login":"Spillebulle","avatar_url":"https://avatars.githubusercontent.com/u/46653946?v=4"},{"login":"tancak","avatar_url":"https://avatars.githubusercontent.com/u/11760749?v=4"},{"login":"spkesDE","avatar_url":"https://avatars.githubusercontent.com/u/1682314?v=4"},{"login":"j3lte","avatar_url":"https://avatars.githubusercontent.com/u/2557568?v=4"},{"login":"dslatt","avatar_url":"https://avatars.githubusercontent.com/u/5211001?v=4"},{"login":"Malong11-007","avatar_url":"https://avatars.githubusercontent.com/u/40298510?v=4"},{"login":"StefanB7","avatar_url":"https://avatars.githubusercontent.com/u/22056509?v=4"},{"login":"souravghosh01","avatar_url":"https://avatars.githubusercontent.com/u/37548139?v=4"},{"login":"SR3u","avatar_url":"https://avatars.githubusercontent.com/u/2380522?v=4"},{"login":"Rikpat","avatar_url":"https://avatars.githubusercontent.com/u/33869814?v=4"},{"login":"NormanJS","avatar_url":"https://avatars.githubusercontent.com/u/83409549?v=4"},{"login":"No-Maines-Land","avatar_url":"https://avatars.githubusercontent.com/u/20687725?v=4"},{"login":"stark1tty","avatar_url":"https://avatars.githubusercontent.com/u/69326376?v=4"},{"login":"Momcilo42","avatar_url":"https://avatars.githubusercontent.com/u/10118137?v=4"},{"login":"marius-arch","avatar_url":"https://avatars.githubusercontent.com/u/72494359?v=4"},{"login":"Lumilias","avatar_url":"https://avatars.githubusercontent.com/u/10852161?v=4"},{"login":"Havock94","avatar_url":"https://avatars.githubusercontent.com/u/7635248?v=4"},{"login":"Lollyde","avatar_url":"https://avatars.githubusercontent.com/u/11347524?v=4"},{"login":"huanga","avatar_url":"https://avatars.githubusercontent.com/u/732970?v=4"},{"login":"devtobi","avatar_url":"https://avatars.githubusercontent.com/u/28538704?v=4"},{"login":"TyxTang","avatar_url":"https://avatars.githubusercontent.com/u/90897955?v=4"},{"login":"VinnyVynce","avatar_url":"https://avatars.githubusercontent.com/u/19630511?v=4"},{"login":"WillyJL","avatar_url":"https://avatars.githubusercontent.com/u/49810075?v=4"},{"login":"anonysoul","avatar_url":"https://avatars.githubusercontent.com/u/105715150?v=4"},{"login":"cospeedster","avatar_url":"https://avatars.githubusercontent.com/u/52749645?v=4"},{"login":"diederbert","avatar_url":"https://avatars.githubusercontent.com/u/162878798?v=4"},{"login":"digdilem","avatar_url":"https://avatars.githubusercontent.com/u/4052275?v=4"},{"login":"dinghino","avatar_url":"https://avatars.githubusercontent.com/u/14729459?v=4"},{"login":"gfomichev","avatar_url":"https://avatars.githubusercontent.com/u/1596146?v=4"},{"login":"gnattu","avatar_url":"https://avatars.githubusercontent.com/u/12995396?v=4"},{"login":"tuxpizza","avatar_url":"https://avatars.githubusercontent.com/u/84710786?v=4"},{"login":"xmarkurion","avatar_url":"https://avatars.githubusercontent.com/u/46654687?v=4"},{"login":"taos15","avatar_url":"https://avatars.githubusercontent.com/u/122130728?v=4"},{"login":"arghyadipchak","avatar_url":"https://avatars.githubusercontent.com/u/32430374?v=4"},{"login":"AuthorShin","avatar_url":"https://avatars.githubusercontent.com/u/4959043?v=4"},{"login":"benniblot","avatar_url":"https://avatars.githubusercontent.com/u/47495914?v=4"},{"login":"bebsworthy","avatar_url":"https://avatars.githubusercontent.com/u/5266759?v=4"},{"login":"catrielmuller","avatar_url":"https://avatars.githubusercontent.com/u/2272323?v=4"},{"login":"Vysp3r","avatar_url":"https://avatars.githubusercontent.com/u/62019735?v=4"},{"login":"DR-Blogs","avatar_url":"https://avatars.githubusercontent.com/u/96393186?v=4"},{"login":"singular0","avatar_url":"https://avatars.githubusercontent.com/u/1925883?v=4"},{"login":"diogovalentte","avatar_url":"https://avatars.githubusercontent.com/u/49578155?v=4"},{"login":"codezninja","avatar_url":"https://avatars.githubusercontent.com/u/4400773?v=4"},{"login":"fabricionaweb","avatar_url":"https://avatars.githubusercontent.com/u/15933?v=4"},{"login":"nyok1912","avatar_url":"https://avatars.githubusercontent.com/u/32163949?v=4"},{"login":"bo3bdo","avatar_url":"https://avatars.githubusercontent.com/u/5271380?v=4"},{"login":"hskrtich","avatar_url":"https://avatars.githubusercontent.com/u/1214484?v=4"},{"login":"ishults","avatar_url":"https://avatars.githubusercontent.com/u/7275442?v=4"},{"login":"jelliuk","avatar_url":"https://avatars.githubusercontent.com/u/4790959?v=4"},{"login":"Moohan","avatar_url":"https://avatars.githubusercontent.com/u/5982260?v=4"},{"login":"jbruell","avatar_url":"https://avatars.githubusercontent.com/u/31685172?v=4"},{"login":"JasonLeeB06","avatar_url":"https://avatars.githubusercontent.com/u/82266978?v=4"},{"login":"jeffersonraimon","avatar_url":"https://avatars.githubusercontent.com/u/80064475?v=4"},{"login":"jo-chemla","avatar_url":"https://avatars.githubusercontent.com/u/16822841?v=4"},{"login":"joser93","avatar_url":"https://avatars.githubusercontent.com/u/6912089?v=4"},{"login":"justijndepover","avatar_url":"https://avatars.githubusercontent.com/u/9008623?v=4"},{"login":"krishnamuppaneni","avatar_url":"https://avatars.githubusercontent.com/u/4703366?v=4"},{"login":"Aandree5","avatar_url":"https://avatars.githubusercontent.com/u/32734153?v=4"},{"login":"jackwellerreal","avatar_url":"https://avatars.githubusercontent.com/u/97435840?v=4"},{"login":"toineenzo","avatar_url":"https://avatars.githubusercontent.com/u/4921397?v=4"},{"login":"rezstje","avatar_url":"https://avatars.githubusercontent.com/u/45420315?v=4"},{"login":"MaienM","avatar_url":"https://avatars.githubusercontent.com/u/583129?v=4"},{"login":"oben01","avatar_url":"https://avatars.githubusercontent.com/u/22369027?v=4"},{"login":"m0s4ik","avatar_url":"https://avatars.githubusercontent.com/u/26578395?v=4"},{"login":"ieugen","avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=4"},{"login":"faugusto-oliveira","avatar_url":"https://avatars.githubusercontent.com/u/37384074?v=4"},{"login":"frankvHoof93","avatar_url":"https://avatars.githubusercontent.com/u/7346516?v=4"},{"login":"hotrungnhan","avatar_url":"https://avatars.githubusercontent.com/u/40029631?v=4"},{"login":"pitschi","avatar_url":"https://avatars.githubusercontent.com/u/6841565?v=4"},{"login":"tech62","avatar_url":"https://avatars.githubusercontent.com/u/16237642?v=4"}] \ No newline at end of file diff --git a/static-data/translators.json b/static-data/translators.json index 074f6824b..a3cf8bd31 100644 --- a/static-data/translators.json +++ b/static-data/translators.json @@ -1 +1 @@ -[{"username":"carlchina","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png"},{"username":"zielmann","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png"},{"username":"Thalyn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12494028/medium/5faf5acc945a874ed116c4567edaa09f_default.png"},{"username":"magnushj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12503488/medium/68f32e33ea7b891960055c9f831f7344_default.png"},{"username":"almontegil","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png"},{"username":"Skick","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12619811/medium/0331f1de413a645b4516bc4e037f31bb.jpg"},{"username":"andibing","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg"},{"username":"gronare","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12680911/medium/c6eb14d1504156f34a158e507f73aa3d_default.png"},{"username":"SmartPhoneLover","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg"},{"username":"marcelotk_15","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12773227/medium/ecf6bea16ab0c873c131df2154ee9718_default.png"},{"username":"S3OD177","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13051544/medium/11dd990837f61f7e8f7d36b041a7fddb_default.png"},{"username":"marcg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13153301/medium/ebcf60fbf27deb148ec40a659566c6ff_default.png"},{"username":"BeersTeddy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png"},{"username":"jamesmcmahon0","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg"},{"username":"b1nar10","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13286752/medium/249b02e3368752cb175446082015737c_default.png"},{"username":"vannCN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg"},{"username":"binswm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png"},{"username":"SkewRam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg"},{"username":"raphcatarino","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg"},{"username":"shillos5","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13600557/medium/b17650b2b84f829d54fa548c44c1ab27.jpeg"},{"username":"wolong98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg"},{"username":"spair0039","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png"},{"username":"MajorMarcin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14072183/medium/0a197e64bb92b6ea94cecbb607512c45.jpg"},{"username":"KosmoMoustache","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14103535/medium/51c438cdd9f86e8811c75f4869de479c.png"},{"username":"Soochaehwa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png"},{"username":"garryfield","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14187035/medium/520c964706676045f6eeec1b08edc880.jpg"},{"username":"droidenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg"},{"username":"maathis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14489950/medium/6eeddf13a757ee35f78f1763f94d95e1.jpeg"},{"username":"bukvam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14546502/medium/a819dc40a13c57395a17dc46e847d3ce.jpg"},{"username":"gm.cinalli","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg"},{"username":"antoine2tt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png"},{"username":"cretzen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14799754/medium/3ba5c1805ec20c000d5810c07985afe9.jpg"},{"username":"ktKongTong","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg"},{"username":"Prototypem95","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14847666/medium/2cd318fce482ca828214f35c48d30f6e_default.png"},{"username":"marinkaberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg"},{"username":"djismgaming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg"},{"username":"f1refa11","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png"},{"username":"jeffersonraimon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057621/medium/6dff469563860e2618bc9d45646d0ab4.png"},{"username":"giop98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg"},{"username":"tomislav.kraljevic","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png"},{"username":"Walkx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png"},{"username":"andrea.rosso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png"},{"username":"ajnart","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg"},{"username":"Witchling","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15282238/medium/9e196b6783415b10ca571b7673c2ef33.jpg"},{"username":"guineuu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg"},{"username":"Bulgus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg"},{"username":"Narno","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15314996/medium/a6ba093f24884250a1bf6c6f2ca50f1b_default.png"},{"username":"BySempron","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png"},{"username":"jonathan.berglin.work","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png"},{"username":"icdmkg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405504/medium/f334d16cde1ac4ffb935b440d03465af.gif"},{"username":"irithys","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png"},{"username":"JannesV","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png"},{"username":"benniblot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419914/medium/8086b1573d31f152ba41949b3a172445.jpeg"},{"username":"pacjo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png"},{"username":"Payou6994","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png"},{"username":"fzibi21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png"},{"username":"WowMurdock","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png"},{"username":"hbooo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg"},{"username":"Manicraft1001","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg"},{"username":"Void123","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png"},{"username":"R4cc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg"},{"username":"fabricionaweb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png"},{"username":"JokeOfDead","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg"},{"username":"hkz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png"},{"username":"Steken","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png"},{"username":"flar.anton","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg"},{"username":"Bon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg"},{"username":"bfkadan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png"},{"username":"BunnySweety","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png"},{"username":"HRKings","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png"},{"username":"wiston81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg"},{"username":"qaz0911","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png"},{"username":"qqyule","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png"},{"username":"Bims0n","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg"},{"username":"TariqDaCoder","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png"},{"username":"Anarchon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg"},{"username":"Ashun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png"},{"username":"sebekmartin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg"},{"username":"RagnarGraves","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png"},{"username":"PrtmPhlp","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png"},{"username":"DooYoo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png"},{"username":"espentruls","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg"},{"username":"frisco82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg"},{"username":"lupineDK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png"},{"username":"hillaliy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg"},{"username":"MarcOrfilaCarreras","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png"},{"username":"robertbridda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png"},{"username":"MKoniuszko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg"},{"username":"HeroSizy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png"},{"username":"dwt136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png"},{"username":"asifthewebguy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png"},{"username":"eiloogs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif"},{"username":"_vytdv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png"},{"username":"crendasien","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg"},{"username":"edxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png"},{"username":"somerlev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg"},{"username":"kid1412621","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png"},{"username":"suming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png"},{"username":"nick.gher","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png"},{"username":"DataCat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png"},{"username":"dizo89","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg"},{"username":"tee_noodle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png"},{"username":"Marty88","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg"},{"username":"Spillebulle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15677023/medium/20b98bb85062e07afe0e63618f8a5feb.PNG"},{"username":"petitmewen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg"},{"username":"NoProsNoNoobs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png"},{"username":"y.gybson","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg"},{"username":"inside90","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png"},{"username":"RJSkudra","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png"},{"username":"binge203","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif"},{"username":"Mailootje","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg"},{"username":"tim-wiegers","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png"},{"username":"GkhnG","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png"},{"username":"Zoen-Millo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg"},{"username":"HooinKyoma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg"},{"username":"wathergeen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15794495/medium/a83b7fc80d180669ebfd6deb3544cfd0.png"},{"username":"MoeToo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png"},{"username":"itodouble","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png"},{"username":"loslocitos","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg"},{"username":"Oversleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png"},{"username":"Beardy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png"},{"username":"raelyan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg"},{"username":"dolphin738","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png"},{"username":"brunotco","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png"},{"username":"LukeIsHereToDevelop","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15924739/medium/3e6cd3940297bb4ba7bb039c93e6f918.png"},{"username":"kennit","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png"},{"username":"kuunpire","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg"},{"username":"Sandor-dev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png"},{"username":"Meierschlumpf","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg"},{"username":"harmlesscat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png"},{"username":"OrzWTF","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg"},{"username":"tagaishi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png"},{"username":"azurite928","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png"},{"username":"Ronner231","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg"},{"username":"ugyes","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png"},{"username":"rpieja","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png"},{"username":"flambyisyou","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png"},{"username":"Topbcy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg"},{"username":"ai5d02sb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png"},{"username":"explosiveparrot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png"},{"username":"DestroyCom","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16111544/medium/83e3d3ac5c8bfed634cd1a074854db67.png"},{"username":"neotraxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16116966/medium/b30df957873329019a8a90a69f6efe3a.png"},{"username":"gzxpa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16123314/medium/487b05577310a946b0b98bc72c11213b_default.png"},{"username":"TORIK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16124732/medium/de770890e6411860ac06e8cc2dc0abd0_default.png"},{"username":"sergio.pibot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138114/medium/80db802b2fcd6bbf19ea4c7413367dca.jpeg"},{"username":"karam-ajaj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16139838/medium/7539ab958d3c85d5f67e7849483ea8f7.jpeg"},{"username":"SimonHenz97","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16151520/medium/9b94a85b536688e2d94538c384fd0a76.png"},{"username":"olsson82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16198988/medium/eeaab4cba210c537424d4204754b604e.png"},{"username":"bo3bdo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16222806/medium/8652f3beacb6098dde5a4cd0a29fe80d.jpeg"},{"username":"AngryPlayer04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245192/medium/342715274f4dc31fd4132cdae9126188.jpeg"},{"username":"ehatamm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245884/medium/979d5e5526fe545be9bf46db481f7182.jpeg"},{"username":"Balionelis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16246058/medium/986d62ba363594c517d966fe9178dcbb.png"},{"username":"kwargs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16248816/medium/19ce11f04bf1ae2637e0483399c675f9_default.png"},{"username":"lucicu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16273892/medium/3b09e8f3bead221ef98d6a45a16851dc_default.png"},{"username":"Michael5564445","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16357688/medium/9d9026a8bf3eaccb0417da240932ebf7.png"},{"username":"Netscream","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16359198/medium/694e0c8572dc8a47e6d63da31ec5b992.png"},{"username":"belicstefan04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16368142/medium/4742dcfd7bf7ad7e33e37ac44fba7e0f.png"},{"username":"Hamad2066","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16371478/medium/f37bbc7685b6757defdbd1494236af61.jpeg"},{"username":"3ct0pl4sm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16399616/medium/ce796d1c40163975624c0a483e56374f.png"},{"username":"sanchez.marcell626","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16433865/medium/3ddde1314764cc2205ffdcd1ae719a91.png"},{"username":"Minoctis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16490079/medium/91fd0849303a4eca033d660d0a7b6854.jpeg"},{"username":"vittoriosoccorso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16498805/medium/17086b2f1981f734edd1572f79c3158a.jpeg"},{"username":"Worgen325","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16533177/medium/4a62cc6b06095751aeb4b1b3e96db93f.png"},{"username":"homarr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16657003/medium/3afabfd3de949a54ff5d40ad04552aba.png"},{"username":"mwgg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16658379/medium/763dd09f5c238cc5324d4d5357985292.png"},{"username":"dymek37","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16659221/medium/d1dc6d11d7e7fc370efc5070e837ae03.png"},{"username":"kiwinho","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16671855/medium/bfe3a2d497dc4748a04d02e4ae2139cb.jpeg"},{"username":"tjvg4m34r13","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16679135/medium/7a483b9b0abe0d925e54808e1cb38fa0.jpeg"},{"username":"Diegoem","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16705921/medium/29ce68ebc191fc3f65499511b12de98f_default.png"},{"username":"bouks69","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16746091/medium/b58b1fc08520de416198be9df5d093eb.jpeg"},{"username":"futhgar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16748067/medium/b8c526b097f9aa9d687250cac3df16dc.jpeg"},{"username":"GrimSQL","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16764343/medium/fff729a76d1f8fbcdaee9bb0c0f5f3fd.png"},{"username":"chnikel","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767047/medium/3dda2a37e03049dafefe6697bb00f75c.png"},{"username":"yuki19870616","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767951/medium/f59c848e38382cda6c8464b0a7b9e642_default.png"},{"username":"noamdal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16782245/medium/b4a72a61f9caf138f0322c0cb987e6d0.png"},{"username":"MalithRukshan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16809057/medium/084d6a5b35fbbeacc70e7021197d222f.png"},{"username":"minirope19","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16930929/medium/e8cbbc26747e31c5a8959215e1dd067b.jpeg"},{"username":"toineenzo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12371852/medium/9f1b2bedb4794c59479cd289bdba9fab.png"},{"username":"ArcaneWater","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12421105/medium/1ac82517a6c658f6b62c48aebcb17e86_default.png"},{"username":"SergiSvK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13320543/medium/3df3c79cc5f0c53716c559cd3fd2fc20.png"},{"username":"Cruellest","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13610615/medium/2a74faa0947ee08d18f7946fb8602c1e.jpg"},{"username":"Thario","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14491372/medium/dd5e142070802a672900121aa3f332a6_default.png"},{"username":"regi4","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14842936/medium/f7e1d672f562a7db61ba6b4b8f4de41d.png"},{"username":"baton5129","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14891064/medium/8d438f557b82977dd02f0ead3187265f.PNG"},{"username":"TheRedCyclops","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16486399/medium/7f39226180120d5a9efcb8e13d8aec8e_default.png"},{"username":"B3CKDOOR","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16744975/medium/e6c7b2d45e76465d54e6efb67c83da7d.png"},{"username":"Larsluph","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16779933/medium/ed7d36f8b44013bad3a16ac0491bd0f7.png"},{"username":"FOEDI","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781001/medium/6b4552fb72e359aa016f7a054078fac8.png"},{"username":"xmarkurion","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16805443/medium/34a20428427de5aaef99c7d140646803.png"},{"username":"gregid","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16806705/medium/f3c8f4a20436e8538929130142bbc104.png"},{"username":"Flameberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16820453/medium/d47be866148474c9d05fec6fbe406d88.png"},{"username":"Playfust","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16872865/medium/5f4609cc711e5fb9fa8a0b178635769c.jpeg"},{"username":"Cotignac","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16879297/medium/81ff353edf030699a159bb79cda26e84.jpg"},{"username":"LeaHun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16916375/medium/618520f0543b1e212ebc83d66b683d4b_default.png"},{"username":"jackwellerreal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16919717/medium/37bbfdc03893f141133ccc619593266d.png"},{"username":"andrius.cim","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16967845/medium/46028fc1a0ddfaaeebcb37b39739625d_default.png"},{"username":"xjxexrxrxyx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17041412/medium/d34d664166db6fb25579bca9ff3b50b4.jpeg"},{"username":"bilhal.fellah","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17044572/medium/d1ec6f17e4aa013e9eededc83778d2c6.png"},{"username":"the_octo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17058060/medium/7423ab3a4cabb67f5decb2e2dfa2b675_default.png"},{"username":"BamesJond","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17075846/medium/128d7ffd40254c8e376f45678e2fc620_default.png"}] \ No newline at end of file +[{"username":"carlchina","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/6697/medium/d22bbe7797bbeb30dbdc73a5648d329a_default.png"},{"username":"zielmann","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/7795/medium/ad22b8b8d5eb33e4154d53a454c862fd_default.png"},{"username":"Thalyn","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12494028/medium/5faf5acc945a874ed116c4567edaa09f_default.png"},{"username":"magnushj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12503488/medium/68f32e33ea7b891960055c9f831f7344_default.png"},{"username":"almontegil","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12580457/medium/f4136cacbdfdb4c28ae7f85dc5f840db_default.png"},{"username":"Skick","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12619811/medium/0331f1de413a645b4516bc4e037f31bb.jpg"},{"username":"andibing","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12664938/medium/b8be63e4dcb2e791ced1ffc9e3a049a5.jpg"},{"username":"gronare","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12680911/medium/c6eb14d1504156f34a158e507f73aa3d_default.png"},{"username":"SmartPhoneLover","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12701640/medium/ec95486662ec875cda080e778c3ff702.jpg"},{"username":"marcelotk_15","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12773227/medium/ecf6bea16ab0c873c131df2154ee9718_default.png"},{"username":"S3OD177","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13051544/medium/11dd990837f61f7e8f7d36b041a7fddb_default.png"},{"username":"marcg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13153301/medium/ebcf60fbf27deb148ec40a659566c6ff_default.png"},{"username":"BeersTeddy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13185230/medium/2f1f4e1effe74a23422b195cbefb2a95_default.png"},{"username":"jamesmcmahon0","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13245578/medium/586aa873b4abddbd9abc6f3de99ab70e.jpeg"},{"username":"b1nar10","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13286752/medium/249b02e3368752cb175446082015737c_default.png"},{"username":"vannCN","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13330448/medium/9b8a9ee3611e51e951e22d5fd4eb7d8d.jpg"},{"username":"binswm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13343482/medium/45dde0e6097b9b72705d2eba9dbbc276_default.png"},{"username":"SkewRam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13496556/medium/188f5c2deb7938eda51eb786cc4539ca.jpeg"},{"username":"raphcatarino","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13547726/medium/b003511e67df13a4b4b5689488fa8099.jpg"},{"username":"shillos5","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13600557/medium/b17650b2b84f829d54fa548c44c1ab27.jpeg"},{"username":"wolong98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13641407/medium/f4634edc58c7857a357e5293543c15cf.jpg"},{"username":"spair0039","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14012333/medium/72430e96027c09c19141cac38eae4617.png"},{"username":"MajorMarcin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14072183/medium/0a197e64bb92b6ea94cecbb607512c45.jpg"},{"username":"KosmoMoustache","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14103535/medium/51c438cdd9f86e8811c75f4869de479c.png"},{"username":"Soochaehwa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14118689/medium/496a1ce63111547bf455a1e0a7ac75f1_default.png"},{"username":"garryfield","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14187035/medium/520c964706676045f6eeec1b08edc880.jpg"},{"username":"droidenko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14444264/medium/4aa3a8e824f72bc9e5ec0d8de307095e.jpeg"},{"username":"maathis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14489950/medium/6eeddf13a757ee35f78f1763f94d95e1.jpeg"},{"username":"bukvam","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14546502/medium/a819dc40a13c57395a17dc46e847d3ce.jpg"},{"username":"gm.cinalli","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14670666/medium/2d466a0fdbda40764526be86c97c0ab4.jpeg"},{"username":"antoine2tt","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14722148/medium/f88d926900862dd59007ea4b3419cb9d.png"},{"username":"cretzen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14799754/medium/3ba5c1805ec20c000d5810c07985afe9.jpg"},{"username":"ktKongTong","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14817246/medium/97cfc3c028dbdaf85ebd1102da71e58c.jpeg"},{"username":"Prototypem95","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14847666/medium/2cd318fce482ca828214f35c48d30f6e_default.png"},{"username":"marinkaberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14861042/medium/2d5c4e62613f03082f3e645fa92efd59.jpeg"},{"username":"djismgaming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14934947/medium/f5a8570713c34ab0f7d5405d105e2a9a.jpeg"},{"username":"f1refa11","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14949159/medium/fd2ae63b8eb4462200ba96abf943c1b9.png"},{"username":"jeffersonraimon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057621/medium/6dff469563860e2618bc9d45646d0ab4.png"},{"username":"giop98","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15057987/medium/b8a4825d3fc39fc662f35ee258db4b2d.jpeg"},{"username":"tomislav.kraljevic","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15118857/medium/e133f1061cc92850b854d05d8faaeafd.png"},{"username":"Walkx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15202182/medium/5c37361ae45aeed487b34582c1f7ca37.png"},{"username":"andrea.rosso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15246318/medium/11f3f5ef44ec7f55b6f143090e208704_default.png"},{"username":"ajnart","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15270132/medium/a0f107a463c8910ee96bc2fa843a17e3.jpeg"},{"username":"Witchling","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15282238/medium/9e196b6783415b10ca571b7673c2ef33.jpg"},{"username":"guineuu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15292058/medium/22fbb758bda3b7805d50bf21d38f2c20.jpeg"},{"username":"Bulgus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15304568/medium/0e8787e5ceb02ed5c96a514d0068ae87.jpg"},{"username":"Narno","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15314996/medium/a6ba093f24884250a1bf6c6f2ca50f1b_default.png"},{"username":"BySempron","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15315986/medium/e3d22d7b1423c6823a9f36d595ed4bdb.png"},{"username":"jonathan.berglin.work","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15359236/medium/95930b2093db13b76179782f7322c5d5.png"},{"username":"icdmkg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405504/medium/f334d16cde1ac4ffb935b440d03465af.gif"},{"username":"irithys","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15405614/medium/3086461c47cce0a0c031925e5f943412.png"},{"username":"JannesV","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419912/medium/a7809eb4b817d7c49b62cf10ae86b950.png"},{"username":"benniblot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419914/medium/8086b1573d31f152ba41949b3a172445.jpeg"},{"username":"pacjo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419916/medium/3cbeddbd7bc01faafb5a3bf47bba915b_default.png"},{"username":"Payou6994","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419934/medium/37c9b9b17dfb578404c1c1ddb73ba7a8.png"},{"username":"fzibi21","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15419976/medium/0da688450358e0290a7b7359cc1f7328.png"},{"username":"WowMurdock","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420118/medium/de19576fccb495b6dfe4c4c04a56b834.png"},{"username":"hbooo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420120/medium/6c7c7f8db785061356ebb03d044d3329.jpeg"},{"username":"Manicraft1001","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420178/medium/50ec94563a06a9f74f33bd09f01eed4d.jpg"},{"username":"Void123","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15420354/medium/86929d44df92a00f9fe900a985c196df_default.png"},{"username":"R4cc","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15422606/medium/a390979662b84694f59de30bdb732141.jpeg"},{"username":"fabricionaweb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15425808/medium/a9354142e7ae5152c144409d55fda551_default.png"},{"username":"JokeOfDead","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15426890/medium/a383eac9365e9de64fd4ab1d6fd0cb95.jpeg"},{"username":"hkz","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15427174/medium/c88acefb0d7306e1f7470e872029fb39_default.png"},{"username":"Steken","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428516/medium/d5aea5653c769c3a523182bdb60d1664.png"},{"username":"flar.anton","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15428592/medium/b01fdb365d892e9f811f77fcb50a80a2.jpeg"},{"username":"Bon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15433542/medium/5397da4dfc821f20b6ac14fe0c514e9a.jpeg"},{"username":"bfkadan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434162/medium/4f9a0b43cfe3acaea60124c14ba7f44a.png"},{"username":"BunnySweety","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15434662/medium/f0ef200a6a0dcf0e1d0e9ecd4148f560_default.png"},{"username":"HRKings","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15436168/medium/69a31e461d38549f01864e7ef10d642e.png"},{"username":"wiston81","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15439078/medium/10f292c8d12a7c21a44b54495fa4a3d8.jpeg"},{"username":"qaz0911","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15440860/medium/3d3e50ee388c72dc4bf7a771761f2d89_default.png"},{"username":"qqyule","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15441462/medium/7a3cdf82710ffb5d8f388bc0bd010665.png"},{"username":"Bims0n","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15445560/medium/603220b603eeb3367e0f0d3fa675247c.jpg"},{"username":"TariqDaCoder","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15446228/medium/50b0f4040112bbd67690b769477398e5_default.png"},{"username":"Anarchon","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15449644/medium/e925e1f3e3ffbf0f982391ce263a1a28.jpeg"},{"username":"Ashun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15453020/medium/ccdcf51c73d6aae40751bb30beee1915_default.png"},{"username":"sebekmartin","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15454038/medium/bcfb44598cdfd1d7cd4eb35812538962.jpeg"},{"username":"RagnarGraves","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15459882/medium/143d5af850c1154070a218bea124e9cb_default.png"},{"username":"PrtmPhlp","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15462414/medium/b80db55e9de301432dcd1f8c8b24fd49_default.png"},{"username":"DooYoo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15470768/medium/2a18cf4be67094724b508c9e1e698a21_default.png"},{"username":"espentruls","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486092/medium/8e38afc3a4ff669226a0cfd3e420ff3a.jpeg"},{"username":"frisco82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15486922/medium/4e1c5d4189b42508e660daa3c1c25b2a.jpeg"},{"username":"lupineDK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15491798/medium/461bd501e8371c062bf29ea171aedd36_default.png"},{"username":"hillaliy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15492732/medium/0bae17b421604892d888e3fc70cf0587.jpeg"},{"username":"MarcOrfilaCarreras","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15501072/medium/ea52b26c3c6f21e4931e38e3ce3f3d6e.png"},{"username":"robertbridda","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15507822/medium/a368c2e30411bb2da9b49290084191f3.png"},{"username":"MKoniuszko","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518090/medium/87605434fcc839f6763ab07c50f6d232.jpeg"},{"username":"HeroSizy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15518710/medium/4e79c0e98cbeb536dd961e656331b509.png"},{"username":"dwt136","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15520022/medium/554422503f2baea43ace85facb4546fb_default.png"},{"username":"asifthewebguy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15526719/medium/b18931dd0c800d725048bd440646198b_default.png"},{"username":"eiloogs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15545537/medium/f290a2f1190983530a9b76b2e858a609.gif"},{"username":"_vytdv","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15547289/medium/60d8644cc8ad6f11a92ccea4a14cd098_default.png"},{"username":"crendasien","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15554645/medium/598ab1d4aaf6b8dccd5ba16be92da7b9.jpeg"},{"username":"edxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15573823/medium/8a565b732a75a77f840dd123cdb30bf4.png"},{"username":"somerlev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15617065/medium/f4b13513e311ec902d90b2f718412c55.jpg"},{"username":"kid1412621","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15643771/medium/dd455e32de652fa88e6fd97598bdffa7.png"},{"username":"suming","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15644717/medium/244159dfe10fa03436205506f80c9e25.png"},{"username":"nick.gher","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15647517/medium/5374a2c6fef60a3fbf0edf86b997c351_default.png"},{"username":"DataCat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15650315/medium/ce7c1365adf35c5d490d77500a4607fb_default.png"},{"username":"dizo89","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15658375/medium/0ca745e5017d491fe1b22b0239904de8.jpeg"},{"username":"tee_noodle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674577/medium/804d9cf06f5196026acb6436b809d0da_default.png"},{"username":"Marty88","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15674593/medium/492b1509d52bd2809dea768121217125.jpeg"},{"username":"Spillebulle","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15677023/medium/20b98bb85062e07afe0e63618f8a5feb.PNG"},{"username":"petitmewen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15685239/medium/15de9b62d2e0bc25013435f1784bbcc1.jpeg"},{"username":"NoProsNoNoobs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15687709/medium/ae8f65fafeb8bcf74dcb8871bbe46461.png"},{"username":"y.gybson","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15690777/medium/b5cb5d2d5768904ff6586c727e3a6c77.jpeg"},{"username":"inside90","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15704947/medium/c1355fcb30dd76f8e39d98d1d49f1c52.png"},{"username":"RJSkudra","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15709853/medium/c3abf2774913dc4e81fb261d36d7668c.png"},{"username":"binge203","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15713937/medium/77c1cfa4314673db80e6881fd9f64668.gif"},{"username":"Mailootje","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15714337/medium/743c3bc4ab1989966a375eeeec83d8b8.jpeg"},{"username":"tim-wiegers","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15719805/medium/08a96f064813350661cd6b20bf3d7d99.png"},{"username":"GkhnG","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15722911/medium/71a027caec489ef6ce82bcf1888329d0_default.png"},{"username":"Zoen-Millo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15760967/medium/9e956f11adc5b34f5636268b5c485dbf.jpg"},{"username":"HooinKyoma","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15792897/medium/9489f0a9b368e0e827ae758b740a2eed.jpeg"},{"username":"wathergeen","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15794495/medium/a83b7fc80d180669ebfd6deb3544cfd0.png"},{"username":"MoeToo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15818233/medium/d35cd6953717706eaf20f6c143c62947.png"},{"username":"itodouble","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15836233/medium/e984caea18fb0673bf319fcf28cef649.png"},{"username":"loslocitos","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15847901/medium/fe30d12fd2cf38212f929e13b169f9ec.jpeg"},{"username":"Oversleep","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15849065/medium/06141f13a6d541d753f3c2f2947b8068_default.png"},{"username":"Beardy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15865139/medium/fca6b9d2b3f52e286d1568f52b83b6a0_default.png"},{"username":"raelyan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15875457/medium/2f4fda1d1aaa5dcc79b328baf3f03151.jpeg"},{"username":"dolphin738","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15913763/medium/ee6fede7b8528ca642329ada80d1cc18.png"},{"username":"brunotco","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15916719/medium/09db45880fc05abc18adb8d932a5ecf9_default.png"},{"username":"LukeIsHereToDevelop","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15924739/medium/3e6cd3940297bb4ba7bb039c93e6f918.png"},{"username":"kennit","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15925879/medium/6b0733ad3c5949b91c55e4d8b03db8a5_default.png"},{"username":"kuunpire","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15950309/medium/8192a4f08f07086828ac9f74ed29a169.jpeg"},{"username":"Sandor-dev","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15951759/medium/0216c2da4eb028164ebbecf1c72f6271_default.png"},{"username":"Meierschlumpf","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15953187/medium/23c744faef1ab84fbdc9351a7850aab6.jpeg"},{"username":"harmlesscat","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15970733/medium/dd8d0214a0250c932bb518b1b55e45a2_default.png"},{"username":"OrzWTF","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15976121/medium/4c4557cbff7ff7b0503455bc59c020e0.jpeg"},{"username":"tagaishi","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15977271/medium/eade504c83a5a1ff831c80a538fbdb44_default.png"},{"username":"azurite928","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/15981895/medium/547ccc459ee123e78b5401c499f1022d.png"},{"username":"Ronner231","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16021342/medium/7734d550df2de5a2fec2ffff33e7024c.jpeg"},{"username":"ugyes","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16034148/medium/ed001e3f470a2dea9a8ce955b18e7bd5.png"},{"username":"rpieja","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16045554/medium/bd55baca2ef8b92502a760cc9ee7c505_default.png"},{"username":"flambyisyou","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16051620/medium/3a3bc0c90f6b95ab4ef74396a0a17beb.png"},{"username":"Topbcy","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16077170/medium/d3aed33ea56330338756cfcd89477cfe.jpeg"},{"username":"ai5d02sb","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16084674/medium/7c8119fe2a5ca71bb15f636916a42b95_default.png"},{"username":"explosiveparrot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16097722/medium/7762f80fc1da63f5b2eb87de9d640324_default.png"},{"username":"DestroyCom","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16111544/medium/83e3d3ac5c8bfed634cd1a074854db67.png"},{"username":"neotraxo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16116966/medium/b30df957873329019a8a90a69f6efe3a.png"},{"username":"gzxpa","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16123314/medium/487b05577310a946b0b98bc72c11213b_default.png"},{"username":"TORIK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16124732/medium/de770890e6411860ac06e8cc2dc0abd0_default.png"},{"username":"sergio.pibot","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138114/medium/80db802b2fcd6bbf19ea4c7413367dca.jpeg"},{"username":"karam-ajaj","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16139838/medium/7539ab958d3c85d5f67e7849483ea8f7.jpeg"},{"username":"SimonHenz97","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16151520/medium/9b94a85b536688e2d94538c384fd0a76.png"},{"username":"olsson82","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16198988/medium/eeaab4cba210c537424d4204754b604e.png"},{"username":"bo3bdo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16222806/medium/8652f3beacb6098dde5a4cd0a29fe80d.jpeg"},{"username":"AngryPlayer04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245192/medium/342715274f4dc31fd4132cdae9126188.jpeg"},{"username":"ehatamm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16245884/medium/979d5e5526fe545be9bf46db481f7182.jpeg"},{"username":"Balionelis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16246058/medium/986d62ba363594c517d966fe9178dcbb.png"},{"username":"kwargs","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16248816/medium/19ce11f04bf1ae2637e0483399c675f9_default.png"},{"username":"lucicu","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16273892/medium/3b09e8f3bead221ef98d6a45a16851dc_default.png"},{"username":"Michael5564445","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16357688/medium/9d9026a8bf3eaccb0417da240932ebf7.png"},{"username":"Netscream","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16359198/medium/694e0c8572dc8a47e6d63da31ec5b992.png"},{"username":"belicstefan04","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16368142/medium/4742dcfd7bf7ad7e33e37ac44fba7e0f.png"},{"username":"Hamad2066","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16371478/medium/f37bbc7685b6757defdbd1494236af61.jpeg"},{"username":"3ct0pl4sm","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16399616/medium/ce796d1c40163975624c0a483e56374f.png"},{"username":"sanchez.marcell626","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16433865/medium/3ddde1314764cc2205ffdcd1ae719a91.png"},{"username":"Minoctis","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16490079/medium/91fd0849303a4eca033d660d0a7b6854.jpeg"},{"username":"vittoriosoccorso","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16498805/medium/17086b2f1981f734edd1572f79c3158a.jpeg"},{"username":"Worgen325","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16533177/medium/4a62cc6b06095751aeb4b1b3e96db93f.png"},{"username":"homarr","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16657003/medium/3afabfd3de949a54ff5d40ad04552aba.png"},{"username":"mwgg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16658379/medium/763dd09f5c238cc5324d4d5357985292.png"},{"username":"dymek37","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16659221/medium/d1dc6d11d7e7fc370efc5070e837ae03.png"},{"username":"kiwinho","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16671855/medium/bfe3a2d497dc4748a04d02e4ae2139cb.jpeg"},{"username":"tjvg4m34r13","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16679135/medium/7a483b9b0abe0d925e54808e1cb38fa0.jpeg"},{"username":"Diegoem","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16705921/medium/29ce68ebc191fc3f65499511b12de98f_default.png"},{"username":"bouks69","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16746091/medium/b58b1fc08520de416198be9df5d093eb.jpeg"},{"username":"futhgar","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16748067/medium/b8c526b097f9aa9d687250cac3df16dc.jpeg"},{"username":"GrimSQL","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16764343/medium/fff729a76d1f8fbcdaee9bb0c0f5f3fd.png"},{"username":"chnikel","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767047/medium/3dda2a37e03049dafefe6697bb00f75c.png"},{"username":"yuki19870616","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16767951/medium/f59c848e38382cda6c8464b0a7b9e642_default.png"},{"username":"noamdal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16782245/medium/b4a72a61f9caf138f0322c0cb987e6d0.png"},{"username":"MalithRukshan","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16809057/medium/084d6a5b35fbbeacc70e7021197d222f.png"},{"username":"minirope19","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16930929/medium/e8cbbc26747e31c5a8959215e1dd067b.jpeg"},{"username":"toineenzo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12371852/medium/9f1b2bedb4794c59479cd289bdba9fab.png"},{"username":"ArcaneWater","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/12421105/medium/1ac82517a6c658f6b62c48aebcb17e86_default.png"},{"username":"SergiSvK","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13320543/medium/3df3c79cc5f0c53716c559cd3fd2fc20.png"},{"username":"Cruellest","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/13610615/medium/2a74faa0947ee08d18f7946fb8602c1e.jpg"},{"username":"Thario","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14491372/medium/dd5e142070802a672900121aa3f332a6_default.png"},{"username":"regi4","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14842936/medium/f7e1d672f562a7db61ba6b4b8f4de41d.png"},{"username":"baton5129","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/14891064/medium/8d438f557b82977dd02f0ead3187265f.PNG"},{"username":"TheRedCyclops","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16486399/medium/7f39226180120d5a9efcb8e13d8aec8e_default.png"},{"username":"B3CKDOOR","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16744975/medium/e6c7b2d45e76465d54e6efb67c83da7d.png"},{"username":"Larsluph","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16779933/medium/ed7d36f8b44013bad3a16ac0491bd0f7.png"},{"username":"FOEDI","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16781001/medium/6b4552fb72e359aa016f7a054078fac8.png"},{"username":"xmarkurion","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16805443/medium/34a20428427de5aaef99c7d140646803.png"},{"username":"gregid","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16806705/medium/f3c8f4a20436e8538929130142bbc104.png"},{"username":"Flameberg","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16820453/medium/d47be866148474c9d05fec6fbe406d88.png"},{"username":"Playfust","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16872865/medium/5f4609cc711e5fb9fa8a0b178635769c.jpeg"},{"username":"Cotignac","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16879297/medium/81ff353edf030699a159bb79cda26e84.jpg"},{"username":"LeaHun","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16916375/medium/618520f0543b1e212ebc83d66b683d4b_default.png"},{"username":"jackwellerreal","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16919717/medium/37bbfdc03893f141133ccc619593266d.png"},{"username":"andrius.cim","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/16967845/medium/46028fc1a0ddfaaeebcb37b39739625d_default.png"},{"username":"xjxexrxrxyx","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17041412/medium/d34d664166db6fb25579bca9ff3b50b4.jpeg"},{"username":"bilhal.fellah","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17044572/medium/d1ec6f17e4aa013e9eededc83778d2c6.png"},{"username":"the_octo","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17058060/medium/7423ab3a4cabb67f5decb2e2dfa2b675_default.png"},{"username":"BamesJond","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17075846/medium/128d7ffd40254c8e376f45678e2fc620_default.png"},{"username":"Kornikus","avatarUrl":"https://crowdin-static.cf-downloads.crowdin.com/avatar/17134240/medium/d7a42b2c30db46ff152699ca01f9e11a_default.png"}] \ No newline at end of file diff --git a/tooling/eslint/base.js b/tooling/eslint/base.js index 47632dbc2..c84d20581 100644 --- a/tooling/eslint/base.js +++ b/tooling/eslint/base.js @@ -7,7 +7,7 @@ import tseslint from "typescript-eslint"; export default tseslint.config( { // Globally ignored files - ignores: ["**/*.config.js"], + ignores: ["**/*.config.js", "**/*.cjs", "**/lang/*.d.json.ts"], }, { files: ["**/*.js", "**/*.ts", "**/*.tsx"], diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index 90d95f67e..fb95290de 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -17,14 +17,14 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@next/eslint-plugin-next": "15.3.2", + "@next/eslint-plugin-next": "15.3.3", "eslint-config-prettier": "^10.1.5", - "eslint-config-turbo": "^2.5.3", + "eslint-config-turbo": "^2.5.4", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", - "typescript-eslint": "^8.32.1" + "typescript-eslint": "^8.33.0" }, "devDependencies": { "@homarr/prettier-config": "workspace:^0.1.0", diff --git a/tooling/prettier/package.json b/tooling/prettier/package.json index 2a4da73a6..1dbd2e4e6 100644 --- a/tooling/prettier/package.json +++ b/tooling/prettier/package.json @@ -10,7 +10,7 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@ianvs/prettier-plugin-sort-imports": "^4.4.1", + "@ianvs/prettier-plugin-sort-imports": "^4.4.2", "prettier": "^3.5.3" }, "devDependencies": {