Compare commits

...
Author SHA1 Message Date
Manuel fe9228010c experiment: build as bin 2025-11-19 21:30:18 +01:00
homarr-renovate[bot] 5e57a4906b fix(deps): update dependency fast-xml-parser to ^5.3.2 (#4510)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-19 09:36:42 +00:00
homarr-renovate[bot] b3db5d5f7b fix(deps): update dependency @tanstack/react-query to ^5.90.9 (#4508)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-19 08:41:31 +00:00
homarr-renovate[bot] ebc5bd170d chore(deps): update dependency glob to v11.1.0 [security] (#4500)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-19 03:19:15 +00:00
homarr-renovate[bot] b4f9fb8b46 fix(deps): update dependency drizzle-kit to ^0.31.7 (#4507)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-18 23:31:02 +00:00
homarr-renovate[bot] 7d0c1a14fd fix(deps): update nextjs monorepo to v16.0.3 (#4504)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-18 22:34:27 +00:00
Meier Lukas c89e35e13c feat(pi-hole): support no-auth (#4480) 2025-11-18 21:05:00 +01:00
homarr-renovate[bot] 8ea6cffb53 fix(deps): update dependency @tanstack/react-query-next-experimental to ^5.91.0 (#4505)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-18 17:39:07 +00:00
homarr-renovate[bot] 1bb96ce5cf chore(deps): update pnpm to v10.22.0 (#4495)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-18 17:38:36 +00:00
homarr-renovate[bot] 6da511bc2e chore(deps): update dependency @types/react to v19.2.4 (#4501)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-18 17:36:32 +00:00
homarr-renovate[bot] 064277373c fix(deps): update dependency next-intl to v4.5.3 (#4503)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-18 17:34:29 +00:00
homarr-crowdin[bot] 88fd0a63b6 chore(lang): updated translations from crowdin
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2025-11-18 00:51:48 +00:00
homarr-renovate[bot] 7fd5bf0699 chore(deps): update dependency jsdom to ^27.2.0 (#4492)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-17 14:35:27 +00:00
homarr-renovate[bot] 1bfa9d7158 chore(deps): update dependency @vitejs/plugin-react to ^5.1.1 (#4493)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-17 13:43:40 +00:00
homarr-renovate[bot] 57140f2c71 chore(deps): update dependency @types/react-dom to v19.2.3 (#4491)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-17 13:43:26 +00:00
homarr-renovate[bot] a5b6203be6 fix(deps): update dependency @tanstack/react-query to ^5.90.8 (#4494)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-17 13:00:35 +00:00
homarr-renovate[bot] aae81d3120 chore(deps): update dependency node to v24.11.1 (#4490)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-17 02:07:01 +00:00
homarr-crowdin[bot] 0fb01c90e9 chore(lang): updated translations from crowdin
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2025-11-17 00:53:59 +00:00
homarr-renovate[bot] 06942ecbcd fix(deps): update dependency next-intl to v4.5.1 (#4484)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-16 16:38:54 +00:00
homarr-renovate[bot] 006dee9e9b chore(deps): update node.js to v24.11.1 (#4481)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-16 16:37:12 +00:00
homarr-renovate[bot] f2df9839f1 chore(deps): update dependency @types/react to v19.2.3 (#4487)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-16 16:36:19 +00:00
homarr-renovate[bot] dcc23e721a chore(deps): update dependency hono@&lt;4.6.5 to >=4.10.5 (#4485)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-16 16:35:49 +00:00
homarr-renovate[bot] 64657d831c fix(deps): update testcontainers-node monorepo to ^11.8.1 (#4486)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-16 15:30:16 +00:00
homarr-renovate[bot] cd124d6e83 fix(deps): update turbo monorepo to ^2.6.1 (#4483)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-16 06:43:04 +00:00
homarr-renovate[bot] 19ecedea43 fix(deps): update dependency sass to ^1.94.0 (#4482)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-16 02:12:03 +00:00
homarr-renovate[bot] 5b55a4751b chore(deps): update dependency rollup@&gt;&#x3d;4.0.0 &lt;4.22.4 to >=4.53.2 (#4479)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-15 09:30:25 +00:00
homarr-renovate[bot] 266b9ffd1b chore(deps): update pnpm to v10.21.0 (#4478)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-15 02:01:31 +00:00
homarr-renovate[bot] 7a3a05b172 chore(deps): update dependency esbuild@&lt;&#x3d;0.24.2 to >=0.27.0 (#4477)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-14 20:36:02 +00:00
homarr-renovate[bot] a62c1385e3 chore(deps): update dependency esbuild to ^0.27.0 (#4476)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-11-14 19:28:44 +00:00
29 changed files with 865 additions and 750 deletions

No files matched your search

@@ -64,7 +64,7 @@ jobs:
- uses: actions/setup-node@v6
if: env.SKIP_RELEASE == 'false'
with:
node-version: 24.11.0
node-version: 24.11.1
cache: "pnpm"
- run: npm i -g pnpm
if: env.SKIP_RELEASE == 'false'
+1 -1
View File
@@ -1 +1 @@
24.11.0
24.11.1
+7 -7
View File
@@ -58,9 +58,9 @@
"@mantine/tiptap": "^8.3.7",
"@million/lint": "1.0.14",
"@tabler/icons-react": "^3.35.0",
"@tanstack/react-query": "^5.90.7",
"@tanstack/react-query": "^5.90.9",
"@tanstack/react-query-devtools": "^5.90.2",
"@tanstack/react-query-next-experimental": "^5.90.2",
"@tanstack/react-query-next-experimental": "^5.91.0",
"@trpc/client": "^11.7.1",
"@trpc/next": "^11.7.1",
"@trpc/react-query": "^11.7.1",
@@ -78,14 +78,14 @@
"isomorphic-dompurify": "^2.32.0",
"jotai": "^2.15.1",
"mantine-react-table": "2.0.0-beta.9",
"next": "16.0.1",
"next": "16.0.3",
"postcss-preset-mantine": "^1.18.0",
"prismjs": "^1.30.0",
"react": "19.2.0",
"react-dom": "19.2.0",
"react-error-boundary": "^6.0.0",
"react-simple-code-editor": "^0.14.1",
"sass": "^1.93.3",
"sass": "^1.94.0",
"superjson": "2.2.5",
"swagger-ui-react": "^5.30.2",
"use-deep-compare-effect": "^1.8.1",
@@ -96,10 +96,10 @@
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/chroma-js": "3.1.2",
"@types/node": "^24.10.0",
"@types/node": "^24.10.1",
"@types/prismjs": "^1.26.5",
"@types/react": "19.2.2",
"@types/react-dom": "19.2.2",
"@types/react": "19.2.4",
"@types/react-dom": "19.2.3",
"@types/swagger-ui-react": "^5.18.0",
"concurrently": "^9.2.1",
"eslint": "^9.39.1",
+2 -2
View File
@@ -47,9 +47,9 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/node": "^24.10.0",
"@types/node": "^24.10.1",
"dotenv-cli": "^11.0.0",
"esbuild": "^0.26.0",
"esbuild": "^0.27.0",
"eslint": "^9.39.1",
"prettier": "^3.6.2",
"tsx": "4.20.4",
+1 -1
View File
@@ -34,7 +34,7 @@
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/ws": "^8.18.1",
"esbuild": "^0.26.0",
"esbuild": "^0.27.0",
"eslint": "^9.39.1",
"prettier": "^3.6.2",
"typescript": "^5.9.3"
+18 -11
View File
@@ -42,25 +42,25 @@
"@semantic-release/github": "^12.0.2",
"@semantic-release/npm": "^13.1.1",
"@semantic-release/release-notes-generator": "^14.1.0",
"@testcontainers/redis": "^11.8.0",
"@turbo/gen": "^2.6.0",
"@vitejs/plugin-react": "^5.1.0",
"@testcontainers/redis": "^11.8.1",
"@turbo/gen": "^2.6.1",
"@vitejs/plugin-react": "^5.1.1",
"@vitest/coverage-v8": "^4.0.8",
"@vitest/ui": "^4.0.8",
"conventional-changelog-conventionalcommits": "^9.1.0",
"cross-env": "^10.1.0",
"jsdom": "^27.1.0",
"jsdom": "^27.2.0",
"prettier": "^3.6.2",
"semantic-release": "^25.0.2",
"testcontainers": "^11.8.0",
"turbo": "^2.6.0",
"testcontainers": "^11.8.1",
"turbo": "^2.6.1",
"typescript": "^5.9.3",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^4.0.8"
},
"packageManager": "pnpm@10.20.0",
"packageManager": "pnpm@10.22.0",
"engines": {
"node": ">=24.11.0"
"node": ">=24.11.1"
},
"pnpm": {
"onlyBuiltDependencies": [
@@ -80,15 +80,15 @@
"axios@>=1.0.0 <1.8.2": ">=1.13.2",
"brace-expansion@>=2.0.0 <=2.0.1": ">=4.0.1",
"brace-expansion@>=1.0.0 <=1.1.11": ">=4.0.1",
"esbuild@<=0.24.2": ">=0.26.0",
"esbuild@<=0.24.2": ">=0.27.0",
"form-data@>=4.0.0 <4.0.4": ">=4.0.4",
"hono@<4.6.5": ">=4.10.4",
"hono@<4.6.5": ">=4.10.5",
"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.0",
"rollup@>=4.0.0 <4.22.4": ">=4.53.1",
"rollup@>=4.0.0 <4.22.4": ">=4.53.2",
"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",
@@ -105,5 +105,12 @@
"core-js-pure",
"protobufjs"
]
},
"bin": "apps/tasks/tasks.cjs",
"pkg": {
"scripts": ["apps/tasks/tasks.cjs", "apps/websocket/wssServer.cjs", "apps/nextjs/server.js"],
"assets": ["apps/nextjs/public/**/*"],
"targets": ["latest-linux-x64"],
"outputPath": "dist-pkg"
}
}
+2 -2
View File
@@ -43,13 +43,13 @@
"@homarr/translation": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@kubernetes/client-node": "^1.4.0",
"@tanstack/react-query": "^5.90.7",
"@tanstack/react-query": "^5.90.9",
"@trpc/client": "^11.7.1",
"@trpc/react-query": "^11.7.1",
"@trpc/server": "^11.7.1",
"@trpc/tanstack-react-query": "^11.7.1",
"lodash.clonedeep": "^4.5.0",
"next": "16.0.1",
"next": "16.0.3",
"react": "19.2.0",
"react-dom": "19.2.0",
"superjson": "2.2.5",
+1 -1
View File
@@ -35,7 +35,7 @@
"bcrypt": "^6.0.0",
"cookies": "^0.9.1",
"ldapts": "8.0.9",
"next": "16.0.1",
"next": "16.0.3",
"next-auth": "5.0.0-beta.30",
"react": "19.2.0",
"react-dom": "19.2.0",
+1 -1
View File
@@ -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.26.0",
"esbuild": "^0.27.0",
"eslint": "^9.39.1",
"typescript": "^5.9.3"
}
+1 -1
View File
@@ -32,7 +32,7 @@
"@paralleldrive/cuid2": "^3.1.0",
"dayjs": "^1.11.19",
"dns-caching": "^0.2.7",
"next": "16.0.1",
"next": "16.0.3",
"octokit": "^5.0.5",
"react": "19.2.0",
"react-dom": "19.2.0",
+2 -2
View File
@@ -29,7 +29,7 @@
"@homarr/core": "workspace:^0.1.0",
"@homarr/cron-jobs": "workspace:^0.1.0",
"@homarr/log": "workspace:^0.1.0",
"@tanstack/react-query": "^5.90.7",
"@tanstack/react-query": "^5.90.9",
"@trpc/client": "^11.7.1",
"@trpc/server": "^11.7.1",
"@trpc/tanstack-react-query": "^11.7.1",
@@ -42,7 +42,7 @@
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/node-cron": "^3.0.11",
"@types/react": "19.2.2",
"@types/react": "19.2.4",
"eslint": "^9.39.1",
"typescript": "^5.9.3"
}
+4 -4
View File
@@ -51,11 +51,11 @@
"@homarr/server-settings": "workspace:^0.1.0",
"@mantine/core": "^8.3.7",
"@paralleldrive/cuid2": "^3.1.0",
"@testcontainers/mysql": "^11.8.0",
"@testcontainers/postgresql": "^11.8.0",
"@testcontainers/mysql": "^11.8.1",
"@testcontainers/postgresql": "^11.8.1",
"better-sqlite3": "^12.4.1",
"dotenv": "^17.2.3",
"drizzle-kit": "^0.31.6",
"drizzle-kit": "^0.31.7",
"drizzle-orm": "^0.44.7",
"drizzle-zod": "^0.8.3",
"mysql2": "3.15.3",
@@ -69,7 +69,7 @@
"@types/better-sqlite3": "7.6.13",
"@types/pg": "^8.15.6",
"dotenv-cli": "^11.0.0",
"esbuild": "^0.26.0",
"esbuild": "^0.27.0",
"eslint": "^9.39.1",
"prettier": "^3.6.2",
"tsx": "4.20.4",
+1 -1
View File
@@ -24,7 +24,7 @@
"prettier": "@homarr/prettier-config",
"dependencies": {
"@homarr/common": "workspace:^0.1.0",
"fast-xml-parser": "^5.3.1",
"fast-xml-parser": "^5.3.2",
"zod": "^4.1.12"
},
"devDependencies": {
+1 -1
View File
@@ -145,7 +145,7 @@ export const integrationDefs = {
},
piHole: {
name: "Pi-hole",
secretKinds: [["apiKey"]],
secretKinds: [["apiKey"], []],
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/pi-hole.svg",
category: ["dnsHole"],
documentationUrl: createDocumentationLink("/docs/integrations/pi-hole"),
@@ -17,7 +17,7 @@ import { dnsBlockingGetSchema, sessionResponseSchema, statsSummaryGetSchema } fr
const localLogger = logger.child({ module: "PiHoleIntegrationV6" });
export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIntegration {
private readonly sessionStore: SessionStore<string>;
private readonly sessionStore: SessionStore<{ sid: string | null }>;
constructor(integration: IntegrationInput) {
super(integration);
@@ -28,7 +28,7 @@ export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIn
const response = await this.withAuthAsync(async (sessionId) => {
return await fetchWithTrustedCertificatesAsync(this.url("/api/dns/blocking"), {
headers: {
sid: sessionId,
sid: sessionId ?? undefined,
},
});
});
@@ -46,7 +46,7 @@ export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIn
const response = await this.withAuthAsync(async (sessionId) => {
return fetchWithTrustedCertificatesAsync(this.url("/api/stats/summary"), {
headers: {
sid: sessionId,
sid: sessionId ?? undefined,
},
});
});
@@ -85,7 +85,7 @@ export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIn
const response = await this.withAuthAsync(async (sessionId) => {
return await fetchWithTrustedCertificatesAsync(this.url("/api/dns/blocking"), {
headers: {
sid: sessionId,
sid: sessionId ?? undefined,
},
body: JSON.stringify({ blocking: true }),
method: "POST",
@@ -101,7 +101,7 @@ export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIn
const response = await this.withAuthAsync(async (sessionId) => {
return await fetchWithTrustedCertificatesAsync(this.url("/api/dns/blocking"), {
headers: {
sid: sessionId,
sid: sessionId ?? undefined,
},
body: JSON.stringify({ blocking: false, timer: duration }),
method: "POST",
@@ -118,12 +118,16 @@ export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIn
* @param callback
* @returns
*/
private async withAuthAsync(callback: (sessionId: string) => Promise<UndiciResponse>) {
private async withAuthAsync(callback: (sessionId: string | null) => Promise<UndiciResponse>) {
if (!super.hasSecretValue("apiKey")) {
return await callback(null);
}
const storedSession = await this.sessionStore.getAsync();
if (storedSession) {
localLogger.debug("Using stored session for request", { integrationId: this.integration.id });
const response = await callback(storedSession);
const response = await callback(storedSession.sid);
if (response.status !== 401) {
return response;
}
@@ -132,7 +136,7 @@ export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIn
}
const sessionId = await this.getSessionAsync();
await this.sessionStore.setAsync(sessionId);
await this.sessionStore.setAsync({ sid: sessionId });
const response = await callback(sessionId);
return response;
}
@@ -141,11 +145,13 @@ export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIn
* Get a session id from the Pi-hole server
* @returns The session id
*/
private async getSessionAsync(fetchAsync: typeof undiciFetch = fetchWithTrustedCertificatesAsync): Promise<string> {
const apiKey = super.getSecretValue("apiKey");
private async getSessionAsync(
fetchAsync: typeof undiciFetch = fetchWithTrustedCertificatesAsync,
): Promise<string | null> {
const apiKey = super.hasSecretValue("apiKey") ? super.getSecretValue("apiKey") : null;
const response = await fetchAsync(this.url("/api/auth"), {
method: "POST",
body: JSON.stringify({ password: apiKey }),
body: JSON.stringify({ password: apiKey ?? "" }),
headers: {
"User-Agent": "Homarr",
},
@@ -156,8 +162,13 @@ export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIn
const data = await response.json();
const result = await sessionResponseSchema.parseAsync(data);
if (!result.session.sid) {
throw new ResponseError({ status: 401, url: response.url });
if (!result.session.valid) {
throw new ResponseError(
{ status: 401, url: response.url },
{
cause: result.session.message ? new Error(result.session.message) : undefined,
},
);
}
localLogger.info("Received session id successfully", { integrationId: this.integration.id });
@@ -170,9 +181,14 @@ export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIn
* @param sessionId The session id to remove
*/
private async clearSessionAsync(
sessionId: string,
sessionId: string | null,
fetchAsync: typeof undiciFetch = fetchWithTrustedCertificatesAsync,
) {
if (!sessionId) {
localLogger.debug("No session id to clear");
return;
}
const response = await fetchAsync(this.url("/api/auth"), {
method: "DELETE",
headers: {
@@ -2,6 +2,7 @@ import { z } from "zod/v4";
export const sessionResponseSchema = z.object({
session: z.object({
valid: z.boolean(),
sid: z.string().nullable(),
message: z.string().nullable(),
}),
+1 -1
View File
@@ -36,7 +36,7 @@
"@mantine/core": "^8.3.7",
"@tabler/icons-react": "^3.35.0",
"dayjs": "^1.11.19",
"next": "16.0.1",
"next": "16.0.3",
"react": "19.2.0",
"react-dom": "19.2.0",
"zod": "^4.1.12"
+1 -1
View File
@@ -40,7 +40,7 @@
"@mantine/core": "^8.3.7",
"@mantine/hooks": "^8.3.7",
"adm-zip": "0.5.16",
"next": "16.0.1",
"next": "16.0.3",
"react": "19.2.0",
"react-dom": "19.2.0",
"superjson": "2.2.5",
+1 -1
View File
@@ -27,7 +27,7 @@
"@homarr/db": "workspace:^0.1.0",
"@homarr/server-settings": "workspace:^0.1.0",
"@mantine/dates": "^8.3.7",
"next": "16.0.1",
"next": "16.0.3",
"react": "19.2.0",
"react-dom": "19.2.0"
},
+1 -1
View File
@@ -38,7 +38,7 @@
"@mantine/spotlight": "^8.3.7",
"@tabler/icons-react": "^3.35.0",
"jotai": "^2.15.1",
"next": "16.0.1",
"next": "16.0.3",
"react": "19.2.0",
"react-dom": "19.2.0",
"use-deep-compare-effect": "^1.8.1"
+2 -2
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.1",
"next-intl": "4.5.0",
"next": "16.0.3",
"next-intl": "4.5.3",
"react": "19.2.0",
"react-dom": "19.2.0"
},
+10 -10
View File
@@ -649,14 +649,14 @@
"app": {
"option": {
"existing": {
"title": "",
"label": ""
"title": "现有",
"label": "选择现有应用"
},
"new": {
"title": "",
"title": "新建",
"url": {
"label": "",
"description": ""
"label": "应用网址",
"description": "当从面板访问时应用将打开的网址"
}
}
}
@@ -676,9 +676,9 @@
},
"app": {
"action": {
"add": "",
"remove": "",
"select": ""
"add": "链接应用",
"remove": "取消连接",
"select": "选择要链接的应用"
}
}
},
@@ -709,7 +709,7 @@
"description": "集成“{kind}”可以与搜索引擎一起使用。勾选此项可自动配置搜索引擎。"
},
"app": {
"sectionTitle": ""
"sectionTitle": "关联的应用"
},
"createApp": {
"label": "创建应用",
@@ -1051,7 +1051,7 @@
"add": "添加",
"apply": "应用",
"backToOverview": "返回概览",
"change": "",
"change": "更改",
"create": "创建",
"createAnother": "创建并重新开始",
"edit": "编辑",
+1 -1
View File
@@ -3748,7 +3748,7 @@
"label": "Nome"
},
"namespace": {
"label": ""
"label": "Spazio dei nomi"
},
"className": {
"label": "Nome classe"
+21 -21
View File
@@ -649,14 +649,14 @@
"app": {
"option": {
"existing": {
"title": "",
"label": ""
"title": "既存",
"label": "既存のアプリを選択"
},
"new": {
"title": "",
"title": "新規作成",
"url": {
"label": "",
"description": ""
"label": "アプリURL",
"description": "ダッシュボードからアクセスしたときにアプリが開くURL"
}
}
}
@@ -676,9 +676,9 @@
},
"app": {
"action": {
"add": "",
"remove": "",
"select": ""
"add": "アプリにリンクする",
"remove": "リンクを解除する",
"select": "リンクするアプリを選択する"
}
}
},
@@ -709,7 +709,7 @@
"description": "連携機能 \"{kind}\" は、検索エンジンで使用できます。検索エンジンを自動的に設定するには、これにチェックを入れてください。"
},
"app": {
"sectionTitle": ""
"sectionTitle": "リンクされたアプリ"
},
"createApp": {
"label": "アプリの作成",
@@ -1051,7 +1051,7 @@
"add": "追加",
"apply": "適用",
"backToOverview": "概要に戻る",
"change": "",
"change": "変更する",
"create": "作成",
"createAnother": "作成・新規入力",
"edit": "編集",
@@ -1174,8 +1174,8 @@
},
"unit": {
"speed": {
"kilometersPerHour": "",
"milesPerHour": ""
"kilometersPerHour": "km/h",
"milesPerHour": "mph"
}
}
},
@@ -1190,7 +1190,7 @@
"label": "タイトル"
},
"customCssClasses": {
"label": ""
"label": "カスタム css クラス"
},
"borderColor": {
"label": "境界線の色"
@@ -1780,7 +1780,7 @@
"description": "現在の天気のみ表示"
},
"useImperialSpeed": {
"label": ""
"label": "風速にmphを使用する"
},
"location": {
"label": "天候の場所"
@@ -1800,12 +1800,12 @@
"description": "日付がどのように見えるか"
}
},
"currentWindSpeed": "時速 {currentWindSpeed} km",
"currentWindSpeed": "時速 {currentWindSpeed} {unit}",
"dailyForecast": {
"sunrise": "日出",
"sunset": "日没",
"maxWindSpeed": "最大風速: {maxWindSpeed} km/h",
"maxWindGusts": "最大瞬間風速: {maxWindGusts} km/h"
"maxWindSpeed": "最大風速: {maxWindSpeed} {unit}",
"maxWindGusts": "最大瞬間風速: {maxWindGusts} {unit}"
},
"kind": {
"clear": "晴れ",
@@ -3013,8 +3013,8 @@
"integration": "連携機能",
"app": "アプリ",
"group": "グループ",
"searchEngine": "",
"media": ""
"searchEngine": "検索エンジン",
"media": "メディア"
},
"statisticLabel": {
"boards": "ボード",
@@ -3023,8 +3023,8 @@
"authorization": "認可"
},
"heroBanner": {
"title": "",
"subtitle": ""
"title": "おかえりなさい",
"subtitle": "{app} ボード"
}
},
"board": {
+1 -1
View File
@@ -35,7 +35,7 @@
"@mantine/hooks": "^8.3.7",
"@tabler/icons-react": "^3.35.0",
"mantine-react-table": "2.0.0-beta.9",
"next": "16.0.1",
"next": "16.0.3",
"react": "19.2.0",
"react-dom": "19.2.0",
"svgson": "^5.3.1"
+1 -1
View File
@@ -72,7 +72,7 @@
"dayjs": "^1.11.19",
"mantine-form-zod-resolver": "^1.3.0",
"mantine-react-table": "2.0.0-beta.9",
"next": "16.0.1",
"next": "16.0.3",
"react": "19.2.0",
"react-dom": "19.2.0",
"react-markdown": "^10.1.0",
+748 -657
View File
File diff suppressed because it is too large. Load diff
+2 -2
View File
@@ -17,9 +17,9 @@
},
"prettier": "@homarr/prettier-config",
"dependencies": {
"@next/eslint-plugin-next": "16.0.1",
"@next/eslint-plugin-next": "16.0.3",
"eslint-config-prettier": "^10.1.8",
"eslint-config-turbo": "^2.6.0",
"eslint-config-turbo": "^2.6.1",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.5",
+1 -1
View File
@@ -7,7 +7,7 @@ runs:
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: 24.11.0
node-version: 24.11.1
cache: "pnpm"
- shell: bash