chore(release): automatic release v1.48.0

This commit is contained in:
homarr-releases[bot]
2025-12-26 19:16:01 +00:00
committed by GitHub
38 changed files with 916 additions and 879 deletions

View File

@@ -59,10 +59,10 @@
"@tanstack/react-query": "^5.90.12",
"@tanstack/react-query-devtools": "^5.91.1",
"@tanstack/react-query-next-experimental": "^5.91.0",
"@trpc/client": "^11.8.0",
"@trpc/next": "^11.8.0",
"@trpc/react-query": "^11.8.0",
"@trpc/server": "^11.8.0",
"@trpc/client": "^11.8.1",
"@trpc/next": "^11.8.1",
"@trpc/react-query": "^11.8.1",
"@trpc/server": "^11.8.1",
"@xterm/addon-canvas": "^0.7.0",
"@xterm/addon-fit": "0.10.0",
"@xterm/xterm": "^5.5.0",
@@ -76,18 +76,18 @@
"isomorphic-dompurify": "^2.34.0",
"jotai": "^2.16.0",
"mantine-react-table": "2.0.0-beta.9",
"next": "16.0.10",
"next": "16.1.0",
"postcss-preset-mantine": "^1.18.0",
"prismjs": "^1.30.0",
"react": "19.2.3",
"react-dom": "19.2.3",
"react-error-boundary": "^6.0.0",
"react-simple-code-editor": "^0.14.1",
"sass": "^1.96.0",
"sass": "^1.97.1",
"superjson": "2.2.6",
"swagger-ui-react": "^5.31.0",
"use-deep-compare-effect": "^1.8.1",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -4,10 +4,10 @@
"dependencies": {
"better-sqlite3": "^12.5.0"
},
"packageManager": "pnpm@10.25.0",
"packageManager": "pnpm@10.26.1",
"engines": {
"node": ">=24.12.0",
"pnpm": ">=10.25.0"
"pnpm": ">=10.26.1"
},
"pnpm": {
"onlyBuiltDependencies": [

View File

@@ -43,10 +43,10 @@
"@semantic-release/npm": "^13.1.3",
"@semantic-release/release-notes-generator": "^14.1.0",
"@testcontainers/redis": "^11.10.0",
"@turbo/gen": "^2.6.3",
"@turbo/gen": "^2.7.1",
"@vitejs/plugin-react": "^5.1.2",
"@vitest/coverage-v8": "^4.0.15",
"@vitest/ui": "^4.0.15",
"@vitest/coverage-v8": "^4.0.16",
"@vitest/ui": "^4.0.16",
"conventional-changelog-conventionalcommits": "^9.1.0",
"cross-env": "^10.1.0",
"jsdom": "^27.3.0",
@@ -54,15 +54,15 @@
"prettier": "^3.7.4",
"semantic-release": "^25.0.2",
"testcontainers": "^11.10.0",
"turbo": "^2.6.3",
"turbo": "^2.7.1",
"typescript": "^5.9.3",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^4.0.15"
"vitest": "^4.0.16"
},
"packageManager": "pnpm@10.25.0",
"packageManager": "pnpm@10.26.1",
"engines": {
"node": ">=24.12.0",
"pnpm": ">=10.25.0"
"pnpm": ">=10.26.1"
},
"pnpm": {
"onlyBuiltDependencies": [
@@ -84,18 +84,18 @@
"brace-expansion@>=1.0.0 <=1.1.11": ">=4.0.1",
"esbuild@<=0.24.2": ">=0.27.1",
"form-data@>=4.0.0 <4.0.4": ">=4.0.5",
"hono@<4.6.5": ">=4.11.0",
"hono@<4.6.5": ">=4.11.1",
"linkifyjs@<4.3.2": ">=4.3.2",
"nanoid@>=4.0.0 <5.0.9": ">=5.1.6",
"prismjs@<1.30.0": ">=1.30.0",
"proxmox-api>undici": "7.16.0",
"react-is": "^19.2.3",
"rollup@>=4.0.0 <4.22.4": ">=4.53.3",
"rollup@>=4.0.0 <4.22.4": ">=4.54.0",
"sha.js@<=2.4.11": ">=2.4.12",
"tar-fs@>=3.0.0 <3.0.9": ">=3.1.1",
"tar-fs@>=2.0.0 <2.1.3": ">=3.1.1",
"tmp@<=0.2.3": ">=0.2.5",
"vite@>=5.0.0 <=5.4.18": ">=7.2.7"
"vite@>=5.0.0 <=5.4.18": ">=7.3.0"
},
"patchedDependencies": {
"@types/node-unifi": "patches/@types__node-unifi.patch",

View File

@@ -42,17 +42,17 @@
"@homarr/validation": "workspace:^0.1.0",
"@kubernetes/client-node": "^1.4.0",
"@tanstack/react-query": "^5.90.12",
"@trpc/client": "^11.8.0",
"@trpc/react-query": "^11.8.0",
"@trpc/server": "^11.8.0",
"@trpc/tanstack-react-query": "^11.8.0",
"@trpc/client": "^11.8.1",
"@trpc/react-query": "^11.8.1",
"@trpc/server": "^11.8.1",
"@trpc/tanstack-react-query": "^11.8.1",
"lodash.clonedeep": "^4.5.0",
"next": "16.0.10",
"next": "16.1.0",
"react": "19.2.3",
"react-dom": "19.2.3",
"superjson": "2.2.6",
"trpc-to-openapi": "^3.1.0",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -1,6 +1,7 @@
import { z } from "zod/v4";
import { fetchWithTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http";
import { withTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { createTRPCRouter, publicProcedure } from "../trpc";
@@ -36,7 +37,12 @@ export const locationRouter = createTRPCRouter({
.input(locationSearchCityInput)
.output(locationSearchCityOutput)
.query(async ({ input }) => {
const res = await fetchWithTimeoutAsync(`https://geocoding-api.open-meteo.com/v1/search?name=${input.query}`);
const res = await withTimeoutAsync(async (signal) => {
return await fetchWithTrustedCertificatesAsync(
`https://geocoding-api.open-meteo.com/v1/search?name=${input.query}`,
{ signal },
);
});
return (await res.json()) as z.infer<typeof locationSearchCityOutput>;
}),
});

View File

@@ -32,12 +32,12 @@
"@homarr/validation": "workspace:^0.1.0",
"bcrypt": "^6.0.0",
"cookies": "^0.9.1",
"ldapts": "8.0.23",
"next": "16.0.10",
"ldapts": "8.0.30",
"next": "16.1.0",
"next-auth": "5.0.0-beta.30",
"react": "19.2.3",
"react-dom": "19.2.3",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -29,12 +29,12 @@
"@homarr/core": "workspace:^0.1.0",
"@paralleldrive/cuid2": "^3.1.0",
"dayjs": "^1.11.19",
"next": "16.0.10",
"next": "16.1.0",
"octokit": "^5.0.5",
"react": "19.2.3",
"react-dom": "19.2.3",
"undici": "7.16.0",
"zod": "^4.1.13",
"zod": "^4.2.1",
"zod-validation-error": "^5.0.0"
},
"devDependencies": {

View File

@@ -37,16 +37,16 @@
},
"prettier": "@homarr/prettier-config",
"dependencies": {
"@t3-oss/env-nextjs": "^0.13.8",
"@t3-oss/env-nextjs": "^0.13.10",
"better-sqlite3": "^12.5.0",
"dns-caching": "^0.2.9",
"drizzle-orm": "^0.45.1",
"ioredis": "5.8.2",
"mysql2": "3.15.3",
"mysql2": "3.16.0",
"pg": "^8.16.3",
"superjson": "2.2.6",
"winston": "3.19.0",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -2,7 +2,7 @@ import { createBooleanSchema, createEnv } from "../env";
export const dnsEnv = createEnv({
server: {
ENABLE_DNS_CACHING: createBooleanSchema(false),
ENABLE_DNS_CACHING: createBooleanSchema(true),
},
experimental__runtimeEnv: process.env,
});

View File

@@ -1,5 +1,5 @@
import type { Dispatcher } from "undici";
import { Agent } from "undici";
import { EnvHttpProxyAgent } from "undici";
import type { ILogger } from "@homarr/core/infrastructure/logs";
import { createLogger } from "@homarr/core/infrastructure/logs";
@@ -7,16 +7,15 @@ import { createLogger } from "@homarr/core/infrastructure/logs";
// The below import statement initializes dns-caching
import "@homarr/core/infrastructure/dns/init";
interface HttpAgentOptions extends Agent.Options {
interface HttpAgentOptions extends EnvHttpProxyAgent.Options {
logger?: ILogger;
}
export class UndiciHttpAgent extends Agent {
export class UndiciHttpAgent extends EnvHttpProxyAgent {
private logger: ILogger;
constructor(props?: HttpAgentOptions) {
super(props);
this.logger = props?.logger ?? createLogger({ module: "httpAgent" });
}

View File

@@ -42,12 +42,13 @@ export const createCertificateAgentAsync = async (override?: {
};
export const createHttpsAgentAsync = async (override?: Pick<AgentOptions, "ca" | "checkServerIdentity">) => {
return new HttpsAgent(
override ?? {
ca: await getAllTrustedCertificatesAsync(),
checkServerIdentity: createCustomCheckServerIdentity(await getTrustedCertificateHostnamesAsync()),
},
);
return new HttpsAgent({
ca: await getAllTrustedCertificatesAsync(),
checkServerIdentity: createCustomCheckServerIdentity(await getTrustedCertificateHostnamesAsync()),
// Override the ca and checkServerIdentity if provided
...override,
proxyEnv: process.env,
});
};
export const createAxiosCertificateInstanceAsync = async (

View File

@@ -7,7 +7,7 @@ import { TestLogger } from "../logs";
vi.mock("undici", () => {
return {
Agent: class Agent {
EnvHttpProxyAgent: class EnvHttpProxyAgent {
dispatch(_options: Dispatcher.DispatchOptions, _handler: Dispatcher.DispatchHandler): boolean {
return true;
}

View File

@@ -29,12 +29,12 @@
"@homarr/core": "workspace:^0.1.0",
"@homarr/cron-jobs": "workspace:^0.1.0",
"@tanstack/react-query": "^5.90.12",
"@trpc/client": "^11.8.0",
"@trpc/server": "^11.8.0",
"@trpc/tanstack-react-query": "^11.8.0",
"@trpc/client": "^11.8.1",
"@trpc/server": "^11.8.1",
"@trpc/tanstack-react-query": "^11.8.1",
"node-cron": "^4.2.1",
"react": "19.2.3",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -56,7 +56,7 @@
"drizzle-kit": "^0.31.8",
"drizzle-orm": "^0.45.1",
"drizzle-zod": "^0.8.3",
"mysql2": "3.15.3",
"mysql2": "3.16.0",
"pg": "^8.16.3",
"superjson": "2.2.6"
},

View File

@@ -25,7 +25,7 @@
"dependencies": {
"@homarr/common": "workspace:^0.1.0",
"fast-xml-parser": "^5.3.3",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -28,7 +28,7 @@
"@homarr/validation": "workspace:^0.1.0",
"@mantine/form": "^8.3.10",
"mantine-form-zod-resolver": "^1.3.0",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -32,7 +32,7 @@
"@homarr/validation": "workspace:^0.1.0",
"@mantine/core": "^8.3.10",
"react": "19.2.3",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -1,6 +1,7 @@
import { parse } from "path";
import { fetchWithTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http";
import { withTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import type { IconRepositoryLicense } from "../types/icon-repository-license";
import type { RepositoryIconGroup } from "../types/repository-icon-group";
@@ -19,11 +20,12 @@ export class GitHubIconRepository extends IconRepository {
}
protected async getAllIconsInternalAsync(): Promise<RepositoryIconGroup> {
if (!this.repositoryIndexingUrl || !this.repositoryBlobUrlTemplate) {
const url = this.repositoryIndexingUrl;
if (!url || !this.repositoryBlobUrlTemplate) {
throw new Error("Repository URLs are required for this repository");
}
const response = await fetchWithTimeoutAsync(this.repositoryIndexingUrl);
const response = await withTimeoutAsync(async (signal) => fetchWithTrustedCertificatesAsync(url, { signal }));
const listOfFiles = (await response.json()) as GitHubApiResponse;
return {

View File

@@ -1,6 +1,7 @@
import { parse } from "path";
import { fetchWithTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http";
import { withTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import type { IconRepositoryLicense } from "../types/icon-repository-license";
import type { RepositoryIconGroup } from "../types/repository-icon-group";
@@ -19,7 +20,9 @@ export class JsdelivrIconRepository extends IconRepository {
}
protected async getAllIconsInternalAsync(): Promise<RepositoryIconGroup> {
const response = await fetchWithTimeoutAsync(this.repositoryIndexingUrl);
const response = await withTimeoutAsync(async (signal) =>
fetchWithTrustedCertificatesAsync(this.repositoryIndexingUrl, { signal }),
);
const listOfFiles = (await response.json()) as JsdelivrApiResponse;
return {

View File

@@ -48,7 +48,7 @@
"tsdav": "^2.1.6",
"undici": "7.16.0",
"xml2js": "^0.6.2",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -36,10 +36,10 @@
"@mantine/core": "^8.3.10",
"@tabler/icons-react": "^3.35.0",
"dayjs": "^1.11.19",
"next": "16.0.10",
"next": "16.1.0",
"react": "19.2.3",
"react-dom": "19.2.3",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -40,11 +40,11 @@
"@mantine/core": "^8.3.10",
"@mantine/hooks": "^8.3.10",
"adm-zip": "0.5.16",
"next": "16.0.10",
"next": "16.1.0",
"react": "19.2.3",
"react-dom": "19.2.3",
"superjson": "2.2.6",
"zod": "^4.1.13",
"zod": "^4.2.1",
"zod-form-data": "^3.0.1"
},
"devDependencies": {

View File

@@ -23,7 +23,7 @@
"prettier": "@homarr/prettier-config",
"dependencies": {
"@homarr/common": "workspace:^0.1.0",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -34,7 +34,7 @@
"octokit": "^5.0.5",
"superjson": "2.2.6",
"undici": "7.16.0",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -1,7 +1,8 @@
import dayjs from "dayjs";
import { z } from "zod/v4";
import { fetchWithTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http";
import { withTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { createCachedWidgetRequestHandler } from "./lib/cached-widget-request-handler";
@@ -11,7 +12,9 @@ export const minecraftServerStatusRequestHandler = createCachedWidgetRequestHand
async requestAsync(input: { domain: string; isBedrockServer: boolean }) {
const path = `${input.isBedrockServer ? "/bedrock" : ""}/3/${input.domain}`;
const response = await fetchWithTimeoutAsync(`https://api.mcsrvstat.us${path}`);
const response = await withTimeoutAsync(async (signal) =>
fetchWithTrustedCertificatesAsync(`https://api.mcsrvstat.us${path}`, { signal }),
);
return responseSchema.parse(await response.json());
},
cacheDuration: dayjs.duration(5, "minutes"),

View File

@@ -1,7 +1,8 @@
import dayjs from "dayjs";
import { z } from "zod/v4";
import { fetchWithTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http";
import { withTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { createCachedWidgetRequestHandler } from "./lib/cached-widget-request-handler";
@@ -9,9 +10,12 @@ export const fetchStockPriceHandler = createCachedWidgetRequestHandler({
queryKey: "fetchStockPriceResult",
widgetKind: "stockPrice",
async requestAsync(input: { stock: string; timeRange: string; timeInterval: string }) {
const response = await fetchWithTimeoutAsync(
`https://query1.finance.yahoo.com/v8/finance/chart/${input.stock}?range=${input.timeRange}&interval=${input.timeInterval}`,
);
const response = await withTimeoutAsync(async (signal) => {
return await fetchWithTrustedCertificatesAsync(
`https://query1.finance.yahoo.com/v8/finance/chart/${input.stock}?range=${input.timeRange}&interval=${input.timeInterval}`,
{ signal },
);
});
const data = dataSchema.parse(await response.json());
if ("error" in data) {

View File

@@ -3,7 +3,7 @@ import { Octokit } from "octokit";
import { compareSemVer, isValidSemVer } from "semver-parser";
import { env } from "@homarr/common/env";
import { fetchWithTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http";
import { createLogger } from "@homarr/core/infrastructure/logs";
import { createChannelWithLatestAndEvents } from "@homarr/redis";
import { createCachedRequestHandler } from "@homarr/request-handler/lib/cached-request-handler";
@@ -23,7 +23,7 @@ export const updateCheckerRequestHandler = createCachedRequestHandler({
const octokit = new Octokit({
request: {
fetch: fetchWithTimeoutAsync,
fetch: fetchWithTrustedCertificatesAsync,
},
});
const releases = await octokit.rest.repos.listReleases({

View File

@@ -1,7 +1,8 @@
import dayjs from "dayjs";
import { z } from "zod";
import { fetchWithTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http";
import { withTimeoutAsync } from "@homarr/core/infrastructure/http/timeout";
import { createCachedWidgetRequestHandler } from "./lib/cached-widget-request-handler";
@@ -9,9 +10,12 @@ export const weatherRequestHandler = createCachedWidgetRequestHandler({
queryKey: "weatherAtLocation",
widgetKind: "weather",
async requestAsync(input: { latitude: number; longitude: number }) {
const res = await fetchWithTimeoutAsync(
`https://api.open-meteo.com/v1/forecast?latitude=${input.latitude}&longitude=${input.longitude}&daily=weathercode,temperature_2m_max,temperature_2m_min,sunrise,sunset,wind_speed_10m_max,wind_gusts_10m_max&current_weather=true&timezone=auto`,
);
const res = await withTimeoutAsync(async (signal) => {
return await fetchWithTrustedCertificatesAsync(
`https://api.open-meteo.com/v1/forecast?latitude=${input.latitude}&longitude=${input.longitude}&daily=weathercode,temperature_2m_max,temperature_2m_min,sunrise,sunset,wind_speed_10m_max,wind_gusts_10m_max&current_weather=true&timezone=auto`,
{ signal },
);
});
const json: unknown = await res.json();
const weather = await atLocationOutput.parseAsync(json);
return {

View File

@@ -27,7 +27,7 @@
"@homarr/db": "workspace:^0.1.0",
"@homarr/server-settings": "workspace:^0.1.0",
"@mantine/dates": "^8.3.10",
"next": "16.0.10",
"next": "16.1.0",
"react": "19.2.3",
"react-dom": "19.2.3"
},

View File

@@ -38,7 +38,7 @@
"@mantine/spotlight": "^8.3.10",
"@tabler/icons-react": "^3.35.0",
"jotai": "^2.16.0",
"next": "16.0.10",
"next": "16.1.0",
"react": "19.2.3",
"react-dom": "19.2.3",
"use-deep-compare-effect": "^1.8.1"

View File

@@ -32,8 +32,8 @@
"dayjs": "^1.11.19",
"deepmerge": "4.3.1",
"mantine-react-table": "2.0.0-beta.9",
"next": "16.0.10",
"next-intl": "4.6.0",
"next": "16.1.0",
"next-intl": "4.6.1",
"react": "19.2.3",
"react-dom": "19.2.3"
},

View File

@@ -312,7 +312,7 @@
},
"mobileBoard": {
"label": "Mobiles Board",
"description": "Nur Boards welche für die Gruppe zugänglich sind, können ausgewählt werden"
"description": "Nur Boards, welche für die Gruppe zugänglich sind, können ausgewählt werden"
}
},
"permission": {
@@ -355,7 +355,7 @@
},
"view-all": {
"label": "Alle Boards anzeigen",
"description": "Mitgliedern das Ansehen von allen Boards erlauben"
"description": "Mitgliedern das Ansehen von Boards erlauben"
},
"modify-all": {
"label": "Alle Boards ändern",
@@ -743,7 +743,7 @@
},
"authorization": {
"title": "Autorisierungsfehler",
"description": "Die Anfrage wurde nicht autorisiert. Bitte überprüfen Sie, ob die Anmeldedaten korrekt sind und Sie diese mit mit den entsprechenden Berechtigungen konfiguriert haben."
"description": "Die Anfrage wurde nicht autorisiert. Bitte überprüfen Sie, ob die Anmeldedaten korrekt sind und Sie diese mit den entsprechenden Berechtigungen konfiguriert haben."
},
"statusCode": {
"title": "Antwort-Fehler",
@@ -964,7 +964,7 @@
},
"personalAccessToken": {
"label": "Persönlicher Zugangs-Token",
"newLabel": "Neuer Persönliches Zugangs-Token"
"newLabel": "Neuer persönlicher Zugangs-Token"
},
"topic": {
"label": "Thema",
@@ -1237,7 +1237,7 @@
},
"openAllInNewTabs": {
"title": "Alle in tabs öffnen",
"text": "Einige Browser können aus Sicherheitsgründen das Öffnen von mehreren Tabs aufeinmal blockieren. Homarr konnte nicht alle Fenster öffnen, weil Ihr Browser diese Aktion blockiert hat. Bitte erlauben Sie \"Pop-up Fenster öffnen\" und versuchen Sie es erneut."
"text": "Einige Browser können aus Sicherheitsgründen das gleichzeitige Öffnen von mehreren Tabs blockieren. Homarr konnte nicht alle Fenster öffnen, weil Ihr Browser diese Aktion blockiert hat. Bitte erlauben Sie \"Pop-up Fenster öffnen\" und versuchen Sie es erneut."
}
}
},
@@ -1949,7 +1949,7 @@
"name": "Name",
"state": "Status",
"cpuUsage": "CPU-Auslastung",
"memoryUsage": "Speicherverbrauch"
"memoryUsage": "Speichernutzung"
}
},
"descendingDefaultSort": {
@@ -2639,7 +2639,7 @@
"notification": {
"success": {
"title": "Änderungen erfolgreich angewendet",
"message": "Das Board wurde erfolgreich dupliziert"
"message": "Das Board wurde erfolgreich gespeichert"
},
"error": {
"title": "Änderungen konnten nicht angewendet werden",
@@ -2676,7 +2676,7 @@
},
"onlyImportApps": {
"label": "Nur Apps importieren",
"description": "Fügt nur die Apps hinzu, das Board muss manuell neu erstellt werden"
"description": "Fügt nur die Apps hinzu. Das Board selbst muss manuell neu erstellt werden"
}
},
"name": {
@@ -2926,7 +2926,7 @@
"error": {
"noBoard": {
"title": "Willkommen bei Homarr",
"description": "Ein schlankens, modernes Dashboard, das alle Ihre Apps und Dienste bereit stellt.",
"description": "Ein schlankes, modernes Dashboard, das alle Ihre Apps und Dienste bereitstellt.",
"link": "Erstellen Sie Ihr erstes Board",
"notice": "Um diese Seite verschwinden zu lassen, erstellen Sie ein Board und setzen es als Home Board"
},
@@ -3366,7 +3366,7 @@
"label": "Index Manager"
},
"healthMonitoring": {
"label": "Überwachung des Gesundheit"
"label": "Überwachung des Zustandes"
},
"dnsHole": {
"label": "DNS Hole Daten"
@@ -3512,7 +3512,7 @@
},
"about": {
"version": "Version {version}",
"text": "Homarr ist ein gemeinschaftsorientiertes Open-Source Projekt, das von Freiwilligen betreut wird. Dank dieser Menschen ist Homarr seit 2021 ein wachsendes Projekt. Unser Team, sitzhaft mit ihren Migliedern in vielen verschiedenen Ländern, arbeitet in ihrer Freizeit ohne Vergütung.",
"text": "Homarr ist ein gemeinschaftsorientiertes Open-Source-Projekt, das von Freiwilligen betreut wird. Dank dieser Menschen ist Homarr seit 2021 ein wachsendes Projekt. Unser Team, dessen Mitglieder in vielen verschiedenen Ländern ansässig sind, arbeitet in seiner Freizeit und ohne Vergütung.",
"accordion": {
"contributors": {
"title": "Mitwirkende",
@@ -4395,7 +4395,7 @@
"configControl": "Konfiguration",
"searchEngineType": {
"generic": "Allgemein",
"fromIntegration": "Aus den Integration"
"fromIntegration": "Aus der Integration"
}
},
"delete": {
@@ -4498,7 +4498,7 @@
"notification": {
"success": {
"title": "Zertifikat entfernt",
"message": "Das Zertifikat wurde erfolgreich entfern"
"message": "Das Zertifikat wurde erfolgreich entfernt"
},
"error": {
"title": "Zertifikat nicht entfernt",

View File

@@ -34,7 +34,7 @@
"@mantine/hooks": "^8.3.10",
"@tabler/icons-react": "^3.35.0",
"mantine-react-table": "2.0.0-beta.9",
"next": "16.0.10",
"next": "16.1.0",
"react": "19.2.3",
"react-dom": "19.2.3",
"svgson": "^5.3.1"

View File

@@ -24,7 +24,7 @@
"dependencies": {
"@homarr/definitions": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0",
"zod": "^4.1.13",
"zod": "^4.2.1",
"zod-form-data": "^3.0.1"
},
"devDependencies": {

View File

@@ -52,33 +52,33 @@
"@mantine/core": "^8.3.10",
"@mantine/hooks": "^8.3.10",
"@tabler/icons-react": "^3.35.0",
"@tiptap/extension-color": "3.13.0",
"@tiptap/extension-highlight": "3.13.0",
"@tiptap/extension-image": "3.13.0",
"@tiptap/extension-link": "^3.13.0",
"@tiptap/extension-placeholder": "^3.13.0",
"@tiptap/extension-table": "3.13.0",
"@tiptap/extension-table-cell": "3.13.0",
"@tiptap/extension-table-header": "3.13.0",
"@tiptap/extension-table-row": "3.13.0",
"@tiptap/extension-task-item": "3.13.0",
"@tiptap/extension-task-list": "3.13.0",
"@tiptap/extension-text-align": "3.13.0",
"@tiptap/extension-text-style": "3.13.0",
"@tiptap/extension-underline": "3.13.0",
"@tiptap/react": "^3.13.0",
"@tiptap/starter-kit": "^3.13.0",
"@tiptap/extension-color": "3.14.0",
"@tiptap/extension-highlight": "3.14.0",
"@tiptap/extension-image": "3.14.0",
"@tiptap/extension-link": "^3.14.0",
"@tiptap/extension-placeholder": "^3.14.0",
"@tiptap/extension-table": "3.14.0",
"@tiptap/extension-table-cell": "3.14.0",
"@tiptap/extension-table-header": "3.14.0",
"@tiptap/extension-table-row": "3.14.0",
"@tiptap/extension-task-item": "3.14.0",
"@tiptap/extension-task-list": "3.14.0",
"@tiptap/extension-text-align": "3.14.0",
"@tiptap/extension-text-style": "3.14.0",
"@tiptap/extension-underline": "3.14.0",
"@tiptap/react": "^3.14.0",
"@tiptap/starter-kit": "^3.14.0",
"clsx": "^2.1.1",
"dayjs": "^1.11.19",
"mantine-form-zod-resolver": "^1.3.0",
"mantine-react-table": "2.0.0-beta.9",
"next": "16.0.10",
"next": "16.1.0",
"react": "19.2.3",
"react-dom": "19.2.3",
"react-markdown": "^10.1.0",
"recharts": "^2.15.4",
"video.js": "^8.23.4",
"zod": "^4.1.13"
"zod": "^4.2.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

1533
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -17,14 +17,14 @@
},
"prettier": "@homarr/prettier-config",
"dependencies": {
"@next/eslint-plugin-next": "16.0.10",
"@next/eslint-plugin-next": "16.1.0",
"eslint-config-prettier": "^10.1.8",
"eslint-config-turbo": "^2.6.3",
"eslint-config-turbo": "^2.7.1",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^6.1.1",
"typescript-eslint": "^8.49.0"
"typescript-eslint": "^8.50.0"
},
"devDependencies": {
"@homarr/prettier-config": "workspace:^0.1.0",