diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 54199a8d4..e03d0202b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,37 +1,78 @@ name: 🐞 Bug Report -description: Create a bug report to help us improve +description: Report that something is broken, not working as intended or causes side-effects title: "bug: " -labels: ["🐞❔ unconfirmed bug"] +labels: ["needs triage"] body: - - type: textarea - attributes: - label: Provide environment information - description: | - Run this command in your project root and paste the results in a code block: - ```bash - npx envinfo --system --binaries - ``` - validations: - required: true - type: textarea attributes: label: Describe the bug description: A clear and concise description of the bug, as well as what you expected to happen when encountering it. validations: required: true - - type: input + - type: textarea attributes: - label: Link to reproduction - description: Please provide a link to a reproduction of the bug. Issues without a reproduction repo may be ignored. + label: Steps to reproduce + description: Describe how to reproduce your bug. Steps, code snippets, reproduction repos etc. validations: required: true - type: textarea attributes: - label: To reproduce - description: Describe how to reproduce your bug. Steps, code snippets, reproduction repos etc. + label: Impact + description: How big is the impact of this bug? Does it make Homarr unusable? Is there any workaround that you're aware of? validations: required: true - type: textarea attributes: label: Additional information description: Add any other information related to the bug here, screenshots if applicable. + - type: dropdown + id: version + attributes: + label: Version + description: What version of Homarr are you running? + options: + - 1.0.0-beta + - Other (describe in "additional information") + default: 0 + validations: + required: true + - type: dropdown + id: installationMethod + attributes: + label: Installation method + description: How do you run Homarr? Post docker-compose, configs or screenshots if applicable. + options: + - Docker Run + - Docker Compose + - Portainer + - Helm + - QNAP + - Saltbox + - EasyPanel + - Unraid Apps + - TrueNAS Apps + - Synology + - HomeAssistant Addon + - From Source + - Other (describe in "additional information") + default: 0 + validations: + required: true + - type: dropdown + id: browser + attributes: + label: Browser + description: If relevant, what browser do you use? + options: + - Firefox + - Edge (Chromium) + - Edge (Proprietary) + - Chrome + - Safari + - Vivaldi + - Brave + - Samsung Internet + - Other (describe in "additional information") + default: 0 + validations: + required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index c2be403e0..a2f69cc3a 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -2,26 +2,16 @@ # See here: https://github.com/vercel/next.js/blob/canary/.github/ISSUE_TEMPLATE/3.feature_request.yml name: 🛠 Feature Request -description: Create a feature request for the core packages +description: Request a new feature that you would like to have implemented title: "feat: " -labels: ["✨ enhancement"] +labels: ["needs triage"] body: - - type: markdown - attributes: - value: | - Thank you for taking the time to file a feature request. Please fill out this form as completely as possible. - type: textarea attributes: label: Describe the feature you'd like to request description: Please describe the feature as clear and concise as possible. Remember to add context as to why you believe this feature is needed. validations: required: true - - type: textarea - attributes: - label: Describe the solution you'd like to see - description: Please describe the solution you would like to see. Adding example usage is a good way to provide context. - validations: - required: true - type: textarea attributes: label: Additional information diff --git a/.github/ISSUE_TEMPLATE/integration.yml b/.github/ISSUE_TEMPLATE/integration.yml new file mode 100644 index 000000000..3aeb492e7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/integration.yml @@ -0,0 +1,40 @@ +name: 🛠 Integration request +description: Request support for a new integration (eg. Sonarr, Radarr) +title: "feat: " +labels: ["needs triage"] +body: + - type: input + attributes: + label: Project Website + description: Post the link to the website of the application. Paste the official link. + placeholder: ex. https://sonarr.tv/ + validations: + required: true + - type: textarea + attributes: + label: Describe what data should be consumed by Homarr + description: Please describe what data Homarr should fetch from the integration. Specify in what interval data should be fetched and whether the user can also perform write operations (eg. deleting a movie or adding a user). + validations: + required: true + - type: textarea + attributes: + label: Additional information + description: Add any other information related to the integration. + - type: dropdown + attributes: + label: Public API available? + description: Is there a public API available, that we can consume in Homarr? + options: + - Yes, available on a website + - Yes, available in the application itself + - No + validations: + required: true + - type: dropdown + attributes: + label: Are you willing to contribute this yourself? + options: + - Yes + - No + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/widget.yml b/.github/ISSUE_TEMPLATE/widget.yml new file mode 100644 index 000000000..9ede8d0ba --- /dev/null +++ b/.github/ISSUE_TEMPLATE/widget.yml @@ -0,0 +1,30 @@ +name: 🛠 Widget request +description: Request a new widget (eg. Clock, Calendar, ...) +title: "feat: " +labels: ["needs triage"] +body: + - type: input + attributes: + label: Compatible integrations + description: Post a list of the integrations that should be compatible with this widget. Divide using comma. Leave empty if no integration is needed. + placeholder: ex. Sonarr, Radarr, Lidarr, Readarr, Nextcloud + validations: + required: false + - type: textarea + attributes: + label: Describe what data should be displayed + description: Please describe what data Homarr should display. Describe how elements should be intractable and what actions the user can perform. + validations: + required: true + - type: textarea + attributes: + label: Additional information + description: Add any other information related to the widget. + - type: dropdown + attributes: + label: Are you willing to contribute this yourself? + options: + - Yes + - No + validations: + required: true diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index 807a5bf39..b2860a9df 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -149,7 +149,7 @@ jobs: with: platforms: linux/amd64,linux/arm64 context: . - push: ${{ env.PUSH_IMAGE}} + push: ${{ env.PUSH_IMAGE }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} network: host diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 01b6e3884..b890ef05d 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -38,18 +38,18 @@ "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", "@homarr/widgets": "workspace:^0.1.0", - "@mantine/colors-generator": "^7.15.1", - "@mantine/core": "^7.15.1", - "@mantine/dropzone": "^7.15.1", - "@mantine/hooks": "^7.15.1", - "@mantine/modals": "^7.15.1", - "@mantine/tiptap": "^7.15.1", + "@mantine/colors-generator": "^7.15.2", + "@mantine/core": "^7.15.2", + "@mantine/dropzone": "^7.15.2", + "@mantine/hooks": "^7.15.2", + "@mantine/modals": "^7.15.2", + "@mantine/tiptap": "^7.15.2", "@million/lint": "1.0.14", "@t3-oss/env-nextjs": "^0.11.1", "@tabler/icons-react": "^3.26.0", - "@tanstack/react-query": "^5.62.8", - "@tanstack/react-query-devtools": "^5.62.8", - "@tanstack/react-query-next-experimental": "5.62.8", + "@tanstack/react-query": "^5.62.10", + "@tanstack/react-query-devtools": "^5.62.10", + "@tanstack/react-query-next-experimental": "5.62.10", "@trpc/client": "next", "@trpc/next": "next", "@trpc/react-query": "next", @@ -63,14 +63,14 @@ "dotenv": "^16.4.7", "flag-icons": "^7.2.3", "glob": "^11.0.0", - "jotai": "^2.10.4", + "jotai": "^2.11.0", "mantine-react-table": "2.0.0-beta.7", "next": "^14.2.21", "postcss-preset-mantine": "^1.17.0", "prismjs": "^1.29.0", "react": "^19.0.0", "react-dom": "^19.0.0", - "react-error-boundary": "^4.1.2", + "react-error-boundary": "^5.0.0", "react-simple-code-editor": "^0.14.1", "sass": "^1.83.0", "superjson": "2.2.2", diff --git a/apps/nextjs/src/app/[locale]/manage/apps/page.tsx b/apps/nextjs/src/app/[locale]/manage/apps/page.tsx index 78a3474a4..f95882a56 100644 --- a/apps/nextjs/src/app/[locale]/manage/apps/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/apps/page.tsx @@ -6,7 +6,6 @@ import { IconBox, IconPencil } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { api } from "@homarr/api/server"; import { auth } from "@homarr/auth/next"; -import { parseAppHrefWithVariablesServer } from "@homarr/common/server"; import { getI18n, getScopedI18n } from "@homarr/translation/server"; import { ManageContainer } from "~/components/manage/manage-container"; @@ -82,8 +81,8 @@ const AppCard = async ({ app }: AppCardProps) => { )} {app.href && ( - - {parseAppHrefWithVariablesServer(app.href)} + + {app.href} )} diff --git a/apps/nextjs/src/app/[locale]/manage/medias/_actions/copy-media.tsx b/apps/nextjs/src/app/[locale]/manage/medias/_actions/copy-media.tsx index 278190770..9c63c05bc 100644 --- a/apps/nextjs/src/app/[locale]/manage/medias/_actions/copy-media.tsx +++ b/apps/nextjs/src/app/[locale]/manage/medias/_actions/copy-media.tsx @@ -13,10 +13,7 @@ interface CopyMediaProps { export const CopyMedia = ({ media }: CopyMediaProps) => { const t = useI18n(); - const url = - typeof window !== "undefined" - ? `${window.location.protocol}://${window.location.hostname}:${window.location.port}/api/user-medias/${media.id}` - : ""; + const url = typeof window !== "undefined" ? `${window.location.origin}/api/user-medias/${media.id}` : ""; return ( diff --git a/apps/nextjs/src/components/board/sections/content.tsx b/apps/nextjs/src/components/board/sections/content.tsx index c9fe9feab..fd8b4b552 100644 --- a/apps/nextjs/src/components/board/sections/content.tsx +++ b/apps/nextjs/src/components/board/sections/content.tsx @@ -10,6 +10,12 @@ import { useSectionContext } from "./section-context"; export const SectionContent = () => { const { section, innerSections, refs } = useSectionContext(); const board = useRequiredBoard(); + + /** + * IMPORTANT: THE ORDER OF THE BELOW ITEMS HAS TO MATCH THE ORDER OF + * THE ITEMS RENDERED WITH GRIDSTACK, OTHERWISE THE ITEMS WILL BE MIXED UP + * @see https://github.com/homarr-labs/homarr/pull/1770 + */ const sortedItems = useMemo(() => { return [ ...section.items.map((item) => ({ ...item, type: "item" as const })), @@ -19,7 +25,7 @@ export const SectionContent = () => { return itemA.xOffset - itemB.xOffset; } - return itemA.yOffset - itemB.xOffset; + return itemA.yOffset - itemB.yOffset; }); }, [section.items, innerSections]); diff --git a/apps/nextjs/src/components/board/sections/item.module.css b/apps/nextjs/src/components/board/sections/item.module.css index af488c201..f679c62ca 100644 --- a/apps/nextjs/src/components/board/sections/item.module.css +++ b/apps/nextjs/src/components/board/sections/item.module.css @@ -7,6 +7,6 @@ --background-color: rgb(from var(--mantine-color-white) r g b / var(--opacity)); --border-color: rgb(from var(--mantine-color-gray-3) r g b / var(--opacity)); } - background-color: var(--background-color); - border-color: var(--border-color); + background-color: var(--background-color) !important; + border-color: var(--border-color) !important; } diff --git a/apps/tasks/package.json b/apps/tasks/package.json index 51f3ed7a8..4cada6b7e 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -45,7 +45,7 @@ "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/node": "^22.10.2", - "dotenv-cli": "^7.4.4", + "dotenv-cli": "^8.0.0", "eslint": "^9.17.0", "prettier": "^3.4.2", "tsx": "4.19.2", diff --git a/docs/README.md b/docs/README.md index 658c070ed..4fdb44a3a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -10,8 +10,8 @@   CI Status - - + +   diff --git a/nginx.conf b/nginx.conf index 25e571394..dbfeba55a 100644 --- a/nginx.conf +++ b/nginx.conf @@ -21,7 +21,7 @@ http { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; } } } \ No newline at end of file diff --git a/packages/api/package.json b/packages/api/package.json index 4ea3a5646..2448633a3 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -27,6 +27,7 @@ "@homarr/cron-jobs": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0", + "@homarr/icons": "workspace:^0.1.0", "@homarr/integrations": "workspace:^0.1.0", "@homarr/log": "workspace:^", "@homarr/old-import": "workspace:^0.1.0", diff --git a/packages/api/src/router/group.ts b/packages/api/src/router/group.ts index a1d3be92f..a10629802 100644 --- a/packages/api/src/router/group.ts +++ b/packages/api/src/router/group.ts @@ -152,11 +152,17 @@ export const groupRouter = createTRPCRouter({ .mutation(async ({ input, ctx }) => { await checkSimilarNameAndThrowAsync(ctx.db, input.name); + const groupId = createId(); await ctx.db.insert(groups).values({ - id: createId(), + id: groupId, name: input.name, }); + await ctx.db.insert(groupPermissions).values({ + groupId, + permission: "admin", + }); + await nextOnboardingStepAsync(ctx.db, undefined); }), createGroup: permissionRequiredProcedure diff --git a/packages/api/src/router/medias/media-router.ts b/packages/api/src/router/medias/media-router.ts index 600df24b4..8a1c3a71e 100644 --- a/packages/api/src/router/medias/media-router.ts +++ b/packages/api/src/router/medias/media-router.ts @@ -1,7 +1,9 @@ import { TRPCError } from "@trpc/server"; +import type { InferInsertModel } from "@homarr/db"; import { and, createId, desc, eq, like } from "@homarr/db"; -import { medias } from "@homarr/db/schema"; +import { iconRepositories, icons, medias } from "@homarr/db/schema"; +import { createLocalImageUrl, LOCAL_ICON_REPOSITORY_SLUG, mapMediaToIcon } from "@homarr/icons/local"; import { validation, z } from "@homarr/validation"; import { createTRPCRouter, permissionRequiredProcedure, protectedProcedure } from "../../trpc"; @@ -52,13 +54,29 @@ export const mediaRouter = createTRPCRouter({ .mutation(async ({ ctx, input }) => { const content = Buffer.from(await input.file.arrayBuffer()); const id = createId(); - await ctx.db.insert(medias).values({ + const media = { id, creatorId: ctx.session.user.id, content, size: input.file.size, contentType: input.file.type, name: input.file.name, + } satisfies InferInsertModel; + await ctx.db.insert(medias).values(media); + + const localIconRepository = await ctx.db.query.iconRepositories.findFirst({ + where: eq(iconRepositories.slug, LOCAL_ICON_REPOSITORY_SLUG), + }); + + if (!localIconRepository) return id; + + const icon = mapMediaToIcon(media); + await ctx.db.insert(icons).values({ + id: createId(), + checksum: icon.checksum, + name: icon.fileNameWithExtension, + url: icon.imageUrl, + iconRepositoryId: localIconRepository.id, }); return id; @@ -67,6 +85,7 @@ export const mediaRouter = createTRPCRouter({ const dbMedia = await ctx.db.query.medias.findFirst({ where: eq(medias.id, input.id), columns: { + id: true, creatorId: true, }, }); @@ -87,5 +106,6 @@ export const mediaRouter = createTRPCRouter({ } await ctx.db.delete(medias).where(eq(medias.id, input.id)); + await ctx.db.delete(icons).where(eq(icons.url, createLocalImageUrl(input.id))); }), }); diff --git a/packages/auth/providers/oidc/oidc-provider.ts b/packages/auth/providers/oidc/oidc-provider.ts index 925e7d1dd..406b13871 100644 --- a/packages/auth/providers/oidc/oidc-provider.ts +++ b/packages/auth/providers/oidc/oidc-provider.ts @@ -23,7 +23,8 @@ export const OidcProvider = (headers: ReadonlyHeaders | null): OIDCConfig { +export const createRedirectUri = ( + headers: ReadonlyHeaders | null, + pathname: string, + fallbackProtocol: "http" | "https" = "http", +) => { if (!headers) { return pathname; } - const baseUrl = extractBaseUrlFromHeaders(headers); + const baseUrl = extractBaseUrlFromHeaders(headers, fallbackProtocol); const path = pathname.startsWith("/") ? pathname : `/${pathname}`; diff --git a/packages/common/package.json b/packages/common/package.json index 8312506ae..fca390d00 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -28,8 +28,7 @@ "@homarr/log": "workspace:^0.1.0", "dayjs": "^1.11.13", "next": "^14.2.21", - "react": "^19.0.0", - "tldts": "^6.1.69" + "react": "^19.0.0" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/common/src/app-url/base.ts b/packages/common/src/app-url/base.ts deleted file mode 100644 index b189c9352..000000000 --- a/packages/common/src/app-url/base.ts +++ /dev/null @@ -1,23 +0,0 @@ -import * as tldts from "tldts"; - -const safeParseTldts = (url: string) => { - try { - return tldts.parse(url); - } catch { - return null; - } -}; - -export const parseAppHrefWithVariables = (url: TInput, currentHref: string): TInput => { - if (!url || url.length === 0) return url; - - const tldtsResult = safeParseTldts(currentHref); - - const urlObject = new URL(currentHref); - - return url - .replaceAll("[homarr_base]", `${urlObject.protocol}//${urlObject.hostname}`) - .replaceAll("[homarr_hostname]", tldtsResult?.hostname ?? "") - .replaceAll("[homarr_domain]", tldtsResult?.domain ?? "") - .replaceAll("[homarr_protocol]", urlObject.protocol.replace(":", "")) as TInput; -}; diff --git a/packages/common/src/app-url/client.ts b/packages/common/src/app-url/client.ts deleted file mode 100644 index 92d16a028..000000000 --- a/packages/common/src/app-url/client.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { parseAppHrefWithVariables } from "./base"; - -export const parseAppHrefWithVariablesClient = (url: TInput): TInput => { - if (typeof window === "undefined") return url; - return parseAppHrefWithVariables(url, window.location.href); -}; diff --git a/packages/common/src/app-url/server.ts b/packages/common/src/app-url/server.ts deleted file mode 100644 index 1f4ff363d..000000000 --- a/packages/common/src/app-url/server.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { headers } from "next/headers"; - -import { extractBaseUrlFromHeaders } from "../url"; -import { parseAppHrefWithVariables } from "./base"; - -export const parseAppHrefWithVariablesServer = (url: TInput): TInput => { - return parseAppHrefWithVariables(url, extractBaseUrlFromHeaders(headers())); -}; diff --git a/packages/common/src/client.ts b/packages/common/src/client.ts index 1a9fcaadf..88fd136c4 100644 --- a/packages/common/src/client.ts +++ b/packages/common/src/client.ts @@ -1,2 +1 @@ -export * from "./app-url/client"; export * from "./revalidate-path-action"; diff --git a/packages/common/src/server.ts b/packages/common/src/server.ts index 136ecfc84..6979f7b10 100644 --- a/packages/common/src/server.ts +++ b/packages/common/src/server.ts @@ -1,3 +1,2 @@ -export * from "./app-url/server"; export * from "./security"; export * from "./encryption"; diff --git a/packages/common/src/url.ts b/packages/common/src/url.ts index aa15066f6..9e974a73e 100644 --- a/packages/common/src/url.ts +++ b/packages/common/src/url.ts @@ -4,8 +4,16 @@ export const removeTrailingSlash = (path: string) => { return path.at(-1) === "/" ? path.substring(0, path.length - 1) : path; }; -export const extractBaseUrlFromHeaders = (headers: ReadonlyHeaders): `${string}://${string}` => { - let protocol = headers.get("x-forwarded-proto") ?? "http"; +export const extractBaseUrlFromHeaders = ( + headers: ReadonlyHeaders, + fallbackProtocol: "http" | "https" = "http", +): `${string}://${string}` => { + let protocol = headers.get("x-forwarded-proto"); + + // If the protocol is not set or an empty string + if (!protocol) { + protocol = fallbackProtocol; + } // @see https://support.glitch.com/t/x-forwarded-proto-contains-multiple-protocols/17219 if (protocol.includes(",")) { diff --git a/packages/db/package.json b/packages/db/package.json index e3db1df95..c3ab1e774 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -50,14 +50,14 @@ "drizzle-kit": "^0.30.1", "drizzle-orm": "^0.38.2", "drizzle-zod": "^0.6.0", - "mysql2": "3.11.5" + "mysql2": "3.12.0" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/better-sqlite3": "7.6.12", - "dotenv-cli": "^7.4.4", + "dotenv-cli": "^8.0.0", "eslint": "^9.17.0", "prettier": "^3.4.2", "tsx": "4.19.2", diff --git a/packages/form/package.json b/packages/form/package.json index 79a5f83ae..e3d903a74 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -26,7 +26,7 @@ "@homarr/common": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/form": "^7.15.1" + "@mantine/form": "^7.15.2" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/icons/package.json b/packages/icons/package.json index 573904b3e..d0bc89830 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -5,7 +5,8 @@ "license": "MIT", "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./local": "./src/local.ts" }, "typesVersions": { "*": { diff --git a/packages/icons/src/local.ts b/packages/icons/src/local.ts new file mode 100644 index 000000000..a7ca63c45 --- /dev/null +++ b/packages/icons/src/local.ts @@ -0,0 +1 @@ +export { createLocalImageUrl, mapMediaToIcon, LOCAL_ICON_REPOSITORY_SLUG } from "./repositories/local.icon-repository"; diff --git a/packages/icons/src/repositories/local.icon-repository.ts b/packages/icons/src/repositories/local.icon-repository.ts index 7fc7c74d9..c0d9a5b27 100644 --- a/packages/icons/src/repositories/local.icon-repository.ts +++ b/packages/icons/src/repositories/local.icon-repository.ts @@ -1,26 +1,36 @@ import { createHash } from "crypto"; +import type { InferSelectModel } from "@homarr/db"; import { db } from "@homarr/db"; +import type { medias } from "@homarr/db/schema"; -import type { RepositoryIconGroup } from "../types"; +import type { RepositoryIcon, RepositoryIconGroup } from "../types"; import { IconRepository } from "./icon-repository"; +export const LOCAL_ICON_REPOSITORY_SLUG = "local"; + export class LocalIconRepository extends IconRepository { constructor() { - super("Local", "local", undefined, undefined, undefined, undefined); + super("Local", LOCAL_ICON_REPOSITORY_SLUG, undefined, undefined, undefined, undefined); } protected async getAllIconsInternalAsync(): Promise { const medias = await db.query.medias.findMany(); return { success: true, - icons: medias.map((media) => ({ - local: true, - fileNameWithExtension: media.name, - imageUrl: `/api/user-medias/${media.id}`, - checksum: createHash("md5").update(media.content).digest("hex"), - sizeInBytes: media.size, - })), - slug: "local", + icons: medias.map(mapMediaToIcon), + slug: LOCAL_ICON_REPOSITORY_SLUG, }; } } + +export const createLocalImageUrl = (id: string) => `/api/user-medias/${id}`; + +export const mapMediaToIcon = ( + media: Pick, "name" | "id" | "content" | "size">, +): RepositoryIcon => ({ + local: true, + fileNameWithExtension: media.name, + imageUrl: createLocalImageUrl(media.id), + checksum: createHash("md5").update(media.content).digest("hex"), + sizeInBytes: media.size, +}); diff --git a/packages/integrations/package.json b/packages/integrations/package.json index e609f1b4b..61669c111 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -25,7 +25,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@ctrl/deluge": "^7.0.0", - "@ctrl/qbittorrent": "^9.1.0", + "@ctrl/qbittorrent": "^9.2.0", "@ctrl/transmission": "^7.1.0", "@homarr/common": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", diff --git a/packages/modals-collection/package.json b/packages/modals-collection/package.json index 804ee9ea8..f4277e903 100644 --- a/packages/modals-collection/package.json +++ b/packages/modals-collection/package.json @@ -32,7 +32,7 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^7.15.1", + "@mantine/core": "^7.15.2", "@tabler/icons-react": "^3.26.0", "dayjs": "^1.11.13", "next": "^14.2.21", diff --git a/packages/modals/package.json b/packages/modals/package.json index da2001b97..e940aa1f6 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": "^7.15.1", - "@mantine/hooks": "^7.15.1", + "@mantine/core": "^7.15.2", + "@mantine/hooks": "^7.15.2", "react": "^19.0.0" }, "devDependencies": { diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 7151cabfd..fc5726a6d 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": "^7.15.1", + "@mantine/notifications": "^7.15.2", "@tabler/icons-react": "^3.26.0" }, "devDependencies": { diff --git a/packages/old-import/package.json b/packages/old-import/package.json index 832620776..bc8d895c7 100644 --- a/packages/old-import/package.json +++ b/packages/old-import/package.json @@ -37,8 +37,8 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^7.15.1", - "@mantine/hooks": "^7.15.1", + "@mantine/core": "^7.15.2", + "@mantine/hooks": "^7.15.2", "adm-zip": "0.5.16", "next": "^14.2.21", "react": "^19.0.0", diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json index 21b166e42..a1e7f1c80 100644 --- a/packages/spotlight/package.json +++ b/packages/spotlight/package.json @@ -32,11 +32,11 @@ "@homarr/modals-collection": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", - "@mantine/core": "^7.15.1", - "@mantine/hooks": "^7.15.1", - "@mantine/spotlight": "^7.15.1", + "@mantine/core": "^7.15.2", + "@mantine/hooks": "^7.15.2", + "@mantine/spotlight": "^7.15.2", "@tabler/icons-react": "^3.26.0", - "jotai": "^2.10.4", + "jotai": "^2.11.0", "next": "^14.2.21", "react": "^19.0.0", "use-deep-compare-effect": "^1.8.1" diff --git a/packages/translation/src/lang/cn.json b/packages/translation/src/lang/cn.json index b2e52492a..3ce2bbafc 100644 --- a/packages/translation/src/lang/cn.json +++ b/packages/translation/src/lang/cn.json @@ -2,130 +2,130 @@ "init": { "step": { "start": { - "title": "", - "subtitle": "", - "description": "", + "title": "欢迎使用 Homarr", + "subtitle": "让我们开始设置您的 Homarr 实例。", + "description": "首先,请选择您想要如何设置您的 Homarr 实例。", "action": { - "scratch": "", - "importOldmarr": "" + "scratch": "从头开始", + "importOldmarr": "从 1.0 之前的 Homarr 导入" } }, "import": { - "title": "", - "subtitle": "", + "title": "导入数据", + "subtitle": "您可以从已有的 Homarr 实例导入数据。", "dropzone": { - "title": "", - "description": "" + "title": "将 zip 文件拖到此处或单击浏览", + "description": "上传的压缩包将被处理,您可以选择要导入的内容" }, "fileInfo": { "action": { - "change": "" + "change": "更改文件" } }, "importSettings": { - "title": "", - "description": "" + "title": "导入设置", + "description": "配置导入方式" }, "boardSelection": { - "title": "", - "description": "", + "title": "找到 {count} 个面板", + "description": "选择您想要导入的所有面板", "action": { - "selectAll": "", - "unselectAll": "" + "selectAll": "选择全部", + "unselectAll": "取消全选" } }, "summary": { - "title": "", - "description": "", + "title": "导入概况", + "description": "在下面的概况中,您可以看到将要导入的内容", "action": { - "import": "" + "import": "确认导入并继续" }, "entities": { "apps": "应用", "boards": "面板", - "integrations": "", - "credentialUsers": "" + "integrations": "组件", + "credentialUsers": "凭证用户" } }, "tokenModal": { - "title": "", + "title": "输入导入密钥", "field": { "token": { - "label": "Token", - "description": "" + "label": "令牌", + "description": "输入您之前的 homarr 实例中显示的导入秘钥" } }, "notification": { "error": { - "title": "", - "message": "" + "title": "无效秘钥", + "message": "您输入的秘钥无效" } } } }, "user": { - "title": "", - "subtitle": "", + "title": "管理员用户", + "subtitle": "指定您的管理员用户的凭据。", "notification": { "success": { - "title": "", - "message": "" + "title": "创建用户", + "message": "用户已成功创建" }, "error": { - "title": "" + "title": "用户创建失败" } } }, "group": { - "title": "", - "subtitle": "", + "title": "外部组", + "subtitle": "指定应该用于外部用户的组。", "form": { "name": { - "label": "", - "description": "" + "label": "组名称", + "description": "名称必须与外部提供商的管理组匹配" } } }, "settings": { "title": "设置", - "subtitle": "" + "subtitle": "配置服务器的设置" }, "finish": { - "title": "", - "subtitle": "", - "description": "", + "title": "完成设置", + "subtitle": "你已设置完成!", + "description": "您已成功完成设置过程。现在您可以开始使用 Homarr 了。选择下一步操作:", "action": { - "goToBoard": "", - "createBoard": "", - "inviteUser": "", - "docs": "" + "goToBoard": "转到 {name} 面板", + "createBoard": "创建您的第一个面板", + "inviteUser": "邀请其他用户", + "docs": "阅读文档" } } }, - "backToStart": "" + "backToStart": "返回起点" }, "user": { "title": "用户", "name": "用户", "page": { "login": { - "title": "", - "subtitle": "" + "title": "登录你的账户", + "subtitle": "欢迎回来!请输入您的凭据" }, "invite": { - "title": "", - "subtitle": "", - "description": "" + "title": "加入 Homarr", + "subtitle": "欢迎来到 Homarr!请创建您的账户", + "description": "您受到了 {username} 的邀请。" }, "init": { - "title": "", - "subtitle": "" + "title": "新建Homarr 安装", + "subtitle": "请创建初始管理员用户" } }, "field": { "email": { "label": "邮箱", - "verified": "" + "verified": "已验证" }, "username": { "label": "用户名" @@ -133,46 +133,46 @@ "password": { "label": "密码", "requirement": { - "length": "", + "length": "包含至少8个字符", "lowercase": "包括小写字母", "uppercase": "包含大写字母", "number": "包含数字", - "special": "" + "special": "包含特殊符号" } }, "passwordConfirm": { "label": "确认密码" }, "previousPassword": { - "label": "" + "label": "先前的密码" }, "homeBoard": { - "label": "" + "label": "首页" }, "pingIconsEnabled": { - "label": "" + "label": "用于ping的图标" } }, "error": { - "usernameTaken": "" + "usernameTaken": "用户名称已被占用" }, "action": { "login": { "label": "登录", - "labelWith": "", + "labelWith": "使用 {provider} 登录", "notification": { "success": { - "title": "", - "message": "" + "title": "登录成功", + "message": "您已登录" }, "error": { - "title": "", - "message": "" + "title": "登录失败", + "message": "您登录失败" } }, "forgotPassword": { - "label": "", - "description": "" + "label": "忘记密码?", + "description": "管理员可以使用以下命令重置您的密码:" } }, "register": { @@ -180,81 +180,81 @@ "notification": { "success": { "title": "账号已创建", - "message": "" + "message": "请登录以继续" }, "error": { - "title": "", - "message": "" + "title": "创建账户失败", + "message": "无法创建您的帐户" } } }, "create": "创建用户", "changePassword": { - "label": "", + "label": "修改密码", "notification": { "success": { - "message": "" + "message": "密码修改成功" }, "error": { - "message": "" + "message": "无法修改密码" } } }, "changeHomeBoard": { "notification": { "success": { - "message": "" + "message": "主页面修改成功" }, "error": { - "message": "" + "message": "无法修改主面板" } } }, "changeFirstDayOfWeek": { "notification": { "success": { - "message": "" + "message": "成功修改一周的第一天" }, "error": { - "message": "" + "message": "无法修改一周的第一天" } } }, "changePingIconsEnabled": { "notification": { "success": { - "message": "" + "message": "Ping 图标切换成功" }, "error": { - "message": "" + "message": "无法切换 ping 图标" } } }, "manageAvatar": { "changeImage": { - "label": "", + "label": "更改图像", "notification": { "success": { - "message": "" + "message": "图像修改成功" }, "error": { - "message": "" + "message": "无法更改图像" }, "toLarge": { - "title": "", - "message": "" + "title": "图片太大", + "message": "最大图像尺寸为 {size}" } } }, "removeImage": { - "label": "", - "confirm": "", + "label": "删除图像", + "confirm": "确定要移除这张图片吗?", "notification": { "success": { - "message": "" + "message": "图像删除成功" }, "error": { - "message": "" + "message": "无法删除图像" } } } @@ -262,42 +262,42 @@ "editProfile": { "notification": { "success": { - "message": "" + "message": "资料更新成功" }, "error": { - "message": "" + "message": "资料更新失败" } } }, "delete": { - "label": "", - "description": "", - "confirm": "" + "label": "永久删除用户", + "description": "删除此用户及其偏好设置。这将不会删除任何看板。用户将不会收到通知。", + "confirm": "您确定要删除用户 {username} 及其偏好设置吗?" }, "select": { - "label": "", - "notFound": "" + "label": "选择用户", + "notFound": "找不到用户" }, "transfer": { - "label": "" + "label": "选择新的所有者" } } }, "group": { - "title": "", - "name": "", - "search": "", + "title": "组", + "name": "组", + "search": "查找组", "field": { "name": "名称", - "members": "" + "members": "成员列表" }, "permission": { "admin": { "title": "管理员", "item": { "admin": { - "label": "", - "description": "" + "label": "管理员", + "description": "拥有此权限的成员可完全访问所有功能和设置" } } }, @@ -305,20 +305,20 @@ "title": "应用", "item": { "create": { - "label": "", - "description": "" + "label": "创建应用", + "description": "允许成员创建应用" }, "use-all": { - "label": "", - "description": "" + "label": "使用全部应用", + "description": "允许成员将任何应用添加到他们的看板" }, "modify-all": { - "label": "", - "description": "" + "label": "修改全部应用", + "description": "允许成员修改全部应用" }, "full-all": { - "label": "", - "description": "" + "label": "完整应用访问权限", + "description": "允许成员管理、使用和删除全部应用" } } }, @@ -326,165 +326,165 @@ "title": "面板", "item": { "create": { - "label": "", - "description": "" + "label": "创建面板", + "description": "允许成员创建看板" }, "view-all": { - "label": "", - "description": "" + "label": "查看全部面板", + "description": "允许成员查看全部看板" }, "modify-all": { - "label": "", - "description": "" + "label": "修改全部看板", + "description": "允许成员修改全部看板 (不包括访问控制和危险区)" }, "full-all": { - "label": "", - "description": "" + "label": "完整的看板访问权限", + "description": "允许成员查看、修改和删除全部看板 (包括访问控制和危险区)" } } }, "integration": { - "title": "", + "title": "组件", "item": { "create": { - "label": "", - "description": "" + "label": "创建组件", + "description": "允许成员创建组件" }, "use-all": { - "label": "", - "description": "" + "label": "使用全部组件", + "description": "允许成员将任何组件添加到他们的看板" }, "interact-all": { - "label": "", - "description": "" + "label": "与任何组件互动", + "description": "允许成员与任何组件互动" }, "full-all": { - "label": "", - "description": "" + "label": "完全的组件访问权限", + "description": "允许成员管理、使用并与任何组件交互" } } }, "media": { - "title": "", + "title": "媒体", "item": { "upload": { - "label": "", - "description": "" + "label": "上传媒体", + "description": "允许成员上传媒体" }, "view-all": { - "label": "", - "description": "" + "label": "查看全部媒体", + "description": "允许成员查看全部媒体" }, "full-all": { - "label": "", - "description": "" + "label": "完全的媒体访问权限", + "description": "允许成员管理和删除任何媒体" } } }, "other": { - "title": "", + "title": "其它", "item": { "view-logs": { - "label": "", - "description": "" + "label": "查看日志", + "description": "允许成员查看日志" } } }, "search-engine": { - "title": "", + "title": "搜索引擎", "item": { "create": { - "label": "", - "description": "" + "label": "创建搜索引擎", + "description": "允许成员创建搜索引擎" }, "modify-all": { - "label": "", - "description": "" + "label": "修改全部搜索引擎", + "description": "允许成员修改全部搜索引擎" }, "full-all": { - "label": "", - "description": "" + "label": "完整的搜索引擎访问权限", + "description": "允许成员管理和删除任何搜索引擎" } } } }, "memberNotice": { - "mixed": "", - "external": "" + "mixed": "部分成员来自外部提供者,无法在此处管理", + "external": "所有成员都来自外部提供者,无法在此处管理" }, "reservedNotice": { - "message": "" + "message": "此用户组保留供系统使用并限制部分操作 " }, "action": { "create": { - "label": "", + "label": "新建用户组", "notification": { "success": { - "message": "" + "message": "用户组已成功创建" }, "error": { - "message": "" + "message": "无法创建用户组" } } }, "transfer": { - "label": "", - "description": "", - "confirm": "", + "label": "转移所有权", + "description": "将此用户组的所有权转移给另一个用户。", + "confirm": "确定将用户组 {name} 的所有权转移给 {username} 吗?", "notification": { "success": { - "message": "" + "message": "成功将用户组 {group} 的所有权转移给 {user}" }, "error": { - "message": "" + "message": "无法转移所有权" } } }, "addMember": { - "label": "" + "label": "添加成员" }, "removeMember": { - "label": "", - "confirm": "" + "label": "删除成员", + "confirm": "确定将 {user} 从此用户组移除吗?" }, "delete": { - "label": "", - "description": "", - "confirm": "", + "label": "删除用户组", + "description": "用户组一旦删除就无法恢复. 请谨慎操作.", + "confirm": "确认删除用户组 {name} 吗?", "notification": { "success": { - "message": "" + "message": "成功删除用户组 {name}" }, "error": { - "message": "" + "message": "无法删除用户组 {name}" } } }, "changePermissions": { "notification": { "success": { - "title": "", - "message": "" + "title": "权限已保存", + "message": "权限保存成功" }, "error": { - "title": "", - "message": "" + "title": "权限未保存", + "message": "权限尚未保存" } } }, "update": { "notification": { "success": { - "message": "" + "message": "用户组 {name} 保存成功" }, "error": { - "message": "" + "message": "无法保存用户组 {name}" } } }, "select": { - "label": "", - "notFound": "" + "label": "选择用户组", + "notFound": "未找到用户组" } } }, @@ -493,47 +493,47 @@ "list": { "title": "应用", "noResults": { - "title": "", - "action": "" + "title": "尚无应用", + "action": "创建您的第一个应用" } }, "create": { - "title": "", + "title": "新建应用", "notification": { "success": { - "title": "", - "message": "" + "title": "创建成功", + "message": "应用已成功创建" }, "error": { - "title": "", - "message": "" + "title": "创建失败", + "message": "无法创建此应用" } } }, "edit": { - "title": "", + "title": "编辑应用", "notification": { "success": { - "title": "", - "message": "" + "title": "更改应用成功", + "message": "应用保存成功" }, "error": { - "title": "", - "message": "" + "title": "无法应用更改", + "message": "无法保存此应用" } } }, "delete": { - "title": "", - "message": "", + "title": "删除应用", + "message": "确认删除应用 {name} 吗?", "notification": { "success": { - "title": "", - "message": "" + "title": "成功删除", + "message": "应用已成功删除" }, "error": { - "title": "", - "message": "" + "title": "删除失败", + "message": "无法删除应用" } } } @@ -543,65 +543,65 @@ "label": "名称" }, "description": { - "label": "" + "label": "描述" }, "url": { - "label": "" + "label": "Url" } }, "action": { "select": { - "label": "", - "notFound": "" + "label": "选择应用", + "notFound": "未找到应用" } } }, "integration": { "page": { "list": { - "title": "", - "search": "", + "title": "组件", + "search": "搜索组件", "noResults": { - "title": "" + "title": "尚无组件" } }, "create": { - "title": "", + "title": "新的组件 {name}", "notification": { "success": { - "title": "", - "message": "" + "title": "创建成功", + "message": "组件已成功创建" }, "error": { - "title": "", - "message": "" + "title": "创建失败", + "message": "无法创建组件" } } }, "edit": { - "title": "", + "title": "编辑组件 {name}", "notification": { "success": { - "title": "", - "message": "" + "title": "更改应用成功", + "message": "组件已成功保存" }, "error": { - "title": "", - "message": "" + "title": "无法应用更改", + "message": "无法保存此组件" } } }, "delete": { - "title": "", - "message": "", + "title": "删除组件", + "message": "确认删除组件 {name} 吗?", "notification": { "success": { - "title": "", - "message": "" + "title": "成功删除", + "message": "组件已成功删除" }, "error": { - "title": "", - "message": "" + "title": "删除失败", + "message": "无法删除组件" } } } @@ -611,21 +611,21 @@ "label": "名称" }, "url": { - "label": "" + "label": "Url" } }, "action": { - "create": "" + "create": "新建组件" }, "testConnection": { "action": { - "create": "", - "edit": "" + "create": "测试连接并创建", + "edit": "测试连接并保存" }, - "alertNotice": "", + "alertNotice": "成功建立连接后保存按钮将启用", "notification": { "success": { - "title": "", + "title": "连接成功", "message": "" }, "invalidUrl": { @@ -978,7 +978,7 @@ }, "field": { "integrations": { - "label": "" + "label": "组件" }, "customCssClasses": { "label": "" @@ -1213,7 +1213,7 @@ } }, "iframe": { - "name": "iFrame", + "name": "", "description": "嵌入互联网上的任何内容。某些网站可能限制访问。", "option": { "embedUrl": { @@ -1981,15 +1981,15 @@ }, "error": { "noBoard": { - "title": "", + "title": "欢迎使用 Homarr", "description": "", - "link": "", + "link": "创建您的第一个面板", "notice": "" }, "notFound": { "title": "", "description": "", - "link": "", + "link": "查看全部面板", "notice": "" }, "homeBoard": { @@ -2028,7 +2028,7 @@ "home": "首页", "boards": "面板", "apps": "应用", - "integrations": "", + "integrations": "组件", "searchEngies": "", "medias": "", "users": { @@ -2042,9 +2042,9 @@ "tools": { "label": "工具", "items": { - "docker": "Docker", + "docker": "", "logs": "", - "api": "API", + "api": "", "tasks": "" } }, @@ -2067,7 +2067,7 @@ "board": "面板", "user": "用户", "invite": "邀请", - "integration": "", + "integration": "组件", "app": "应用", "group": "" }, @@ -2168,10 +2168,10 @@ "label": "" }, "completed": { - "title": "" + "title": "创建用户" }, "error": { - "title": "" + "title": "用户创建失败" } }, "action": { @@ -2199,7 +2199,7 @@ }, "field": { "id": { - "label": "ID" + "label": "" }, "creator": { "label": "创建者" @@ -2208,7 +2208,7 @@ "label": "过期时间" }, "token": { - "label": "Token" + "label": "" } } } @@ -2370,7 +2370,7 @@ } }, "api": { - "title": "API", + "title": "", "modal": { "createApiToken": { "title": "", @@ -2390,7 +2390,7 @@ }, "table": { "header": { - "id": "ID", + "id": "", "createdBy": "" } } @@ -2555,7 +2555,7 @@ "label": "面板" }, "integrations": { - "label": "", + "label": "组件", "edit": { "label": "编辑" }, @@ -2602,7 +2602,7 @@ "tools": { "label": "工具", "docker": { - "label": "Docker" + "label": "" }, "logs": { "label": "" @@ -2662,7 +2662,7 @@ } }, "integration": { - "title": "" + "title": "组件" } } }, @@ -2749,7 +2749,7 @@ "description": "" }, "torrent": { - "name": "Torrents", + "name": "", "description": "" }, "youTube": { diff --git a/packages/translation/src/lang/cs.json b/packages/translation/src/lang/cs.json index fe15ed3db..02ec270d7 100644 --- a/packages/translation/src/lang/cs.json +++ b/packages/translation/src/lang/cs.json @@ -27,7 +27,7 @@ "description": "Konfigurovat chování importu" }, "boardSelection": { - "title": "", + "title": "Nalezeno {count} ploch", "description": "Vyberte všechny plochy s velikostmi, které chcete importovat", "action": { "selectAll": "Vybrat vše", @@ -38,33 +38,33 @@ "title": "Přehled importu", "description": "", "action": { - "import": "" + "import": "Potvrdit import a pokračovat" }, "entities": { "apps": "Aplikace", "boards": "Plochy", - "integrations": "", + "integrations": "Integrace", "credentialUsers": "" } }, "tokenModal": { - "title": "", + "title": "Zadejte token pro import", "field": { "token": { - "label": "", + "label": "Token", "description": "" } }, "notification": { "error": { - "title": "", - "message": "" + "title": "Neplatný token", + "message": "Token, který jste zadali je neplatný" } } } }, "user": { - "title": "", + "title": "Správce", "subtitle": "", "notification": { "success": { diff --git a/packages/translation/src/lang/de.json b/packages/translation/src/lang/de.json index 12c6a13f3..32d1f57d4 100644 --- a/packages/translation/src/lang/de.json +++ b/packages/translation/src/lang/de.json @@ -893,11 +893,11 @@ "dynamic": { "action": { "create": "Neuer dynamischer Abschnitt", - "remove": "" + "remove": "Dynamischen Abschnitt entfernen" }, "remove": { - "title": "", - "message": "" + "title": "Dynamischen Abschnitt entfernen", + "message": "Möchten Sie diesen dynamischen Abschnitt wirklich entfernen? Die Elemente werden an die gleiche Position im übergeordneten Abschnitt verschoben." } }, "category": { @@ -907,29 +907,29 @@ } }, "action": { - "create": "", - "edit": "", - "remove": "", + "create": "Neue Kategorie", + "edit": "Kategorie umbenennen", + "remove": "Kategorie entfernen", "moveUp": "Nach oben bewegen", "moveDown": "Nach unten bewegen", - "createAbove": "", - "createBelow": "" + "createAbove": "Neue Kategorie oben", + "createBelow": "Neue Kategorie unten" }, "create": { - "title": "", - "submit": "" + "title": "Neue Kategorie", + "submit": "Kategorie hinzufügen" }, "remove": { - "title": "", - "message": "" + "title": "Kategorie entfernen", + "message": "Möchten Sie die Kategorie {name} wirklich entfernen?" }, "edit": { - "title": "", - "submit": "" + "title": "Kategorie umbenennen", + "submit": "Kategorie umbenennen" }, "menu": { "label": { - "create": "", + "create": "Neue Kategorie", "changePosition": "Position wechseln" } } @@ -937,12 +937,12 @@ }, "item": { "action": { - "create": "", - "import": "", - "edit": "", - "moveResize": "", - "duplicate": "", - "remove": "" + "create": "Neues Element", + "import": "Element importieren", + "edit": "Element bearbeiten", + "moveResize": "Element verschieben/Größe ändern", + "duplicate": "Element duplizieren", + "remove": "Element löschen" }, "menu": { "label": { @@ -950,11 +950,11 @@ } }, "create": { - "title": "", - "addToBoard": "" + "title": "Wählen Sie das hinzuzufügende Element aus", + "addToBoard": "Zum Board hinzufügen" }, "moveResize": { - "title": "", + "title": "Element verschieben/Größe ändern", "field": { "width": { "label": "Breite" @@ -963,67 +963,67 @@ "label": "Höhe" }, "xOffset": { - "label": "" + "label": "X Versatz" }, "yOffset": { - "label": "" + "label": "Y Versatz" } } }, "edit": { - "title": "", + "title": "Element bearbeiten", "advancedOptions": { - "label": "", - "title": "" + "label": "Erweiterte Optionen", + "title": "Erweiterte Element Optionen" }, "field": { "integrations": { - "label": "" + "label": "Integrationen" }, "customCssClasses": { - "label": "" + "label": "Benutzerdefinierte CSS Klassen" } } }, "remove": { - "title": "", - "message": "" + "title": "Element löschen", + "message": "Soll dieses Element wirklich entfernt werden?" } }, "widget": { "app": { "name": "", - "description": "", + "description": "Bettet eine App in das Board ein.", "option": { "appId": { - "label": "" + "label": "App auswählen" }, "openInNewTab": { "label": "In neuem Tab öffnen" }, "showTitle": { - "label": "" + "label": "App Namen anzeigen" }, "showDescriptionTooltip": { - "label": "" + "label": "Beschreibungs Tooltip anzeigen" }, "pingEnabled": { - "label": "" + "label": "Einfachen Ping aktivieren" } }, "error": { "notFound": { - "label": "", - "tooltip": "" + "label": "Keine App", + "tooltip": "Sie haben keine gültige App ausgewählt" } } }, "bookmarks": { - "name": "", - "description": "", + "name": "Lesezeichen", + "description": "Zeigt mehrere App Links an", "option": { "title": { - "label": "" + "label": "Titel" }, "layout": { "label": "Ansicht", @@ -1040,7 +1040,7 @@ } }, "items": { - "label": "", + "label": "Lesezeichen", "add": "" } } @@ -1376,16 +1376,16 @@ } }, "popover": { - "information": "", - "processor": "", - "memory": "", - "memoryAvailable": "", + "information": "Informationen", + "processor": "Prozessor: {cpuModelName}", + "memory": "Speicher: {memory}GiB", + "memoryAvailable": "Verfügbar: {memoryAvailable} GiB ({percent}%)", "version": "", - "uptime": "", - "loadAverage": "", - "minute": "", - "minutes": "", - "used": "", + "uptime": "Betriebszeit: {days} Tage, {hours} Stunden, {minutes} Minuten", + "loadAverage": "Durchschnittliche Last:", + "minute": "1 Minute", + "minutes": "{count} Minuten", + "used": "Belegt", "available": "Verfügbar", "lastSeen": "" }, @@ -1422,7 +1422,7 @@ "description": "" }, "app": { - "noData": "", + "noData": "Keine App gefunden", "description": "" }, "error": { @@ -1735,11 +1735,11 @@ "edit": { "notification": { "success": { - "title": "", + "title": "Änderungen erfolgreich angewendet", "message": "" }, "error": { - "title": "", + "title": "Änderungen konnten nicht angewendet werden", "message": "" } }, @@ -1981,15 +1981,15 @@ }, "error": { "noBoard": { - "title": "", + "title": "Willkommen bei Homarr", "description": "", - "link": "", + "link": "Erstellen Sie Ihr erstes Board", "notice": "" }, "notFound": { "title": "", "description": "", - "link": "", + "link": "Alle Boards anzeigen", "notice": "" }, "homeBoard": { @@ -2013,7 +2013,7 @@ } }, "management": { - "metaTitle": "", + "metaTitle": "Verwaltung", "title": { "morning": "", "afternoon": "", @@ -2028,15 +2028,15 @@ "home": "Startseite", "boards": "", "apps": "", - "integrations": "", - "searchEngies": "", - "medias": "", + "integrations": "Integrationen", + "searchEngies": "Suchmaschinen", + "medias": "Medien", "users": { "label": "Benutzer", "items": { "manage": "Verwalten", "invites": "Einladungen", - "groups": "" + "groups": "Gruppen" } }, "tools": { @@ -2067,9 +2067,9 @@ "board": "", "user": "Benutzer", "invite": "Einladungen", - "integration": "", + "integration": "Integrationen", "app": "", - "group": "" + "group": "Gruppen" }, "statisticLabel": { "boards": "", @@ -2160,7 +2160,7 @@ "label": "Sicherheit" }, "groups": { - "label": "", + "label": "Gruppen", "title": "", "description": "" }, @@ -2168,10 +2168,10 @@ "label": "" }, "completed": { - "title": "" + "title": "Benutzer erstellt" }, "error": { - "title": "" + "title": "Benutzer anlegen fehlgeschlagen" } }, "action": { @@ -2223,7 +2223,7 @@ "ownerOfGroupDeleted": "" }, "members": { - "title": "", + "title": "Mitglieder", "search": "", "notFound": "" }, @@ -2297,8 +2297,8 @@ "defaultColorScheme": { "label": "", "options": { - "light": "", - "dark": "" + "light": "Hell", + "dark": "Dunkel" } } }, @@ -2529,7 +2529,7 @@ }, "tab": { "user": "Benutzer", - "group": "", + "group": "Gruppen", "inherited": "" }, "field": { @@ -2537,7 +2537,7 @@ "label": "Benutzer" }, "group": { - "label": "" + "label": "Gruppe" }, "permission": { "label": "" @@ -2555,7 +2555,7 @@ "label": "" }, "integrations": { - "label": "", + "label": "Integrationen", "edit": { "label": "Bearbeiten" }, @@ -2564,7 +2564,7 @@ } }, "search-engines": { - "label": "", + "label": "Suchmaschinen", "new": { "label": "" }, @@ -2573,7 +2573,7 @@ } }, "medias": { - "label": "" + "label": "Medien" }, "apps": { "label": "", @@ -2593,7 +2593,7 @@ "security": "Sicherheit", "board": "", "groups": { - "label": "" + "label": "Gruppen" }, "invites": { "label": "Einladungen" @@ -2634,7 +2634,7 @@ "label": "" }, "edit": { - "label": "" + "label": "App bearbeiten" } }, "detail": { @@ -2662,7 +2662,7 @@ } }, "integration": { - "title": "" + "title": "Integrationen" } } }, @@ -2676,8 +2676,8 @@ "title": "", "option": { "colorScheme": { - "light": "", - "dark": "" + "light": "Zum hellen Design wechseln", + "dark": "Zum dunklen Design wechseln" }, "language": { "label": "", @@ -2721,7 +2721,7 @@ "help": "", "group": { "searchEngine": { - "title": "", + "title": "Suchmaschinen", "children": { "action": { "search": { @@ -2828,7 +2828,7 @@ "label": "" }, "manageLog": { - "label": "" + "label": "Logs anzeigen" }, "manageTask": { "label": "" @@ -2866,7 +2866,7 @@ } }, "group": { - "title": "", + "title": "Gruppen", "children": { "action": { "detail": { @@ -2900,12 +2900,12 @@ "label": "" }, "description": { - "label": "" + "label": "Beschreibung" } }, "page": { "list": { - "title": "", + "title": "Suchmaschinen", "noResults": { "title": "", "action": "" @@ -2929,11 +2929,11 @@ "title": "", "notification": { "success": { - "title": "", + "title": "Änderungen erfolgreich angewendet", "message": "" }, "error": { - "title": "", + "title": "Änderungen konnten nicht angewendet werden", "message": "" } }, diff --git a/packages/translation/src/lang/fr.json b/packages/translation/src/lang/fr.json index b9f6a7765..6ab07d8ed 100644 --- a/packages/translation/src/lang/fr.json +++ b/packages/translation/src/lang/fr.json @@ -52,7 +52,7 @@ "field": { "token": { "label": "Jeton", - "description": "" + "description": "Entrez le jeton d'importation de votre instance précédente" } }, "notification": { @@ -65,7 +65,7 @@ }, "user": { "title": "Administrateur", - "subtitle": "", + "subtitle": "Spécifiez les informations d'identification pour votre compte d'administrateur.", "notification": { "success": { "title": "Utilisateur créé", @@ -97,7 +97,7 @@ "action": { "goToBoard": "", "createBoard": "", - "inviteUser": "", + "inviteUser": "Inviter d'autres utilisateurs", "docs": "Lire la documentation" } } @@ -144,7 +144,7 @@ "label": "Confirmation du mot de passe" }, "previousPassword": { - "label": "" + "label": "Ancien mot de passe" }, "homeBoard": { "label": "" @@ -166,13 +166,13 @@ "message": "Vous êtes maintenant connecté" }, "error": { - "title": "", + "title": "Échec de la connexion", "message": "" } }, "forgotPassword": { "label": "Mot de passe oublié?", - "description": "" + "description": "Un administrateur peut utiliser la commande suivante pour réinitialiser votre mot de passe :" } }, "register": { @@ -184,7 +184,7 @@ }, "error": { "title": "", - "message": "" + "message": "Votre compte n'a pas pu être créé" } } }, @@ -196,7 +196,7 @@ "message": "Mot de passe modifié avec succès" }, "error": { - "message": "" + "message": "Modification du mot de passe impossible" } } }, @@ -232,17 +232,17 @@ }, "manageAvatar": { "changeImage": { - "label": "", + "label": "Modifier l’image", "notification": { "success": { - "message": "" + "message": "L'image a été modifiée avec succès" }, "error": { "message": "Impossible de modifier l'image" }, "toLarge": { "title": "L'image est trop volumineuse", - "message": "" + "message": "La taille maximale de l'image est {size}" } } }, @@ -271,8 +271,8 @@ }, "delete": { "label": "Supprimer définitivement l'utilisateur", - "description": "", - "confirm": "" + "description": "Supprime cet utilisateur ainsi que ses préférences. Ne supprimera aucun tableau. L'utilisateur ne sera pas averti.", + "confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ainsi que ses préférences ?" }, "select": { "label": "Sélectionner l'utilisateur", @@ -297,7 +297,7 @@ "item": { "admin": { "label": "Administrateur", - "description": "" + "description": "Les membres avec cette permission ont un accès complet à toutes les fonctionnalités et paramètres" } } }, @@ -309,11 +309,11 @@ "description": "Autoriser les membres à créer des apps" }, "use-all": { - "label": "", + "label": "Utiliser toutes les apps", "description": "" }, "modify-all": { - "label": "", + "label": "Modifier toutes les apps", "description": "" }, "full-all": { @@ -344,11 +344,11 @@ } }, "integration": { - "title": "", + "title": "Intégrations", "item": { "create": { - "label": "", - "description": "" + "label": "Créer des intégrations", + "description": "Autoriser les membres à créer des intégrations" }, "use-all": { "label": "", @@ -365,37 +365,37 @@ } }, "media": { - "title": "", + "title": "Médias", "item": { "upload": { - "label": "", - "description": "" + "label": "Téléverser des médias", + "description": "Autoriser les membres à téléverser des médias" }, "view-all": { - "label": "", - "description": "" + "label": "Voir tous les médias", + "description": "Autoriser les membres à voir tous les médias" }, "full-all": { - "label": "", - "description": "" + "label": "Accès complet aux médias", + "description": "Autoriser les membres à gérer et supprimer les médias" } } }, "other": { - "title": "", + "title": "Autre", "item": { "view-logs": { - "label": "", - "description": "" + "label": "Voir les logs", + "description": "Autoriser les membres à voir les logs" } } }, "search-engine": { - "title": "", + "title": "Moteurs de recherche", "item": { "create": { - "label": "", - "description": "" + "label": "Créer des moteurs de recherche", + "description": "Autoriser les membres à créer des moteurs de recherche" }, "modify-all": { "label": "", @@ -413,62 +413,62 @@ "external": "" }, "reservedNotice": { - "message": "" + "message": "Ce groupe est réservé pour l'utilisation du système et restreint certaines actions. " }, "action": { "create": { - "label": "", + "label": "Nouveau groupe", "notification": { "success": { - "message": "" + "message": "Le groupe a été créé avec succès" }, "error": { - "message": "" + "message": "Le groupe n'a pas pu être créé" } } }, "transfer": { - "label": "", - "description": "", - "confirm": "", + "label": "Changer le propriétaire", + "description": "Transférer la propriété de ce groupe à un autre utilisateur.", + "confirm": "Êtes-vous sûr de vouloir transférer la propriété du groupe {name} à {username}?", "notification": { "success": { - "message": "" + "message": "Le groupe {group} a été transféré avec succès à {user}" }, "error": { - "message": "" + "message": "Impossible de transférer la propriété" } } }, "addMember": { - "label": "" + "label": "Ajouter un membre" }, "removeMember": { - "label": "", - "confirm": "" + "label": "Retirer un membre", + "confirm": "Êtes-vous sûr de vouloir retirer {user} de ce groupe ?" }, "delete": { - "label": "", - "description": "", - "confirm": "", + "label": "Supprimer le groupe", + "description": "Une fois que vous supprimez un groupe, il n'y a pas de retour en arrière possible. Soyez certain.", + "confirm": "Êtes-vous sûr de vouloir supprimer le groupe {name}?", "notification": { "success": { - "message": "" + "message": "Groupe {name} supprimé avec succès" }, "error": { - "message": "" + "message": "Impossible de supprimer le groupe {name}" } } }, "changePermissions": { "notification": { "success": { - "title": "", - "message": "" + "title": "Permissions sauvegardées", + "message": "Les permissions ont été sauvegardées avec succès" }, "error": { - "title": "", - "message": "" + "title": "Permissions non sauvegardées", + "message": "Les permissions n'ont pas été sauvegardées" } } }, @@ -483,8 +483,8 @@ } }, "select": { - "label": "", - "notFound": "" + "label": "Sélectionner un groupe", + "notFound": "Aucun groupe trouvé" } } }, @@ -493,16 +493,16 @@ "list": { "title": "Applications", "noResults": { - "title": "", - "action": "" + "title": "Il n'y a pas encore d'apps", + "action": "Créer votre première app" } }, "create": { - "title": "", + "title": "Nouvelle app", "notification": { "success": { - "title": "", - "message": "" + "title": "Créé avec succès", + "message": "L'application a bien été créée" }, "error": { "title": "", @@ -518,17 +518,17 @@ "message": "" }, "error": { - "title": "", + "title": "Impossible d'appliquer les changements", "message": "" } } }, "delete": { - "title": "", - "message": "", + "title": "Supprimer l'app", + "message": "Êtes-vous sûr de vouloir supprimer l'app {name}?", "notification": { "success": { - "title": "", + "title": "Suppression effectuée avec succès", "message": "" }, "error": { @@ -543,23 +543,23 @@ "label": "Nom" }, "description": { - "label": "" + "label": "Description" }, "url": { - "label": "" + "label": "Url" } }, "action": { "select": { - "label": "", - "notFound": "" + "label": "Sélectionner l'app", + "notFound": "Aucune app trouvée" } } }, "integration": { "page": { "list": { - "title": "", + "title": "Intégrations", "search": "", "noResults": { "title": "" @@ -569,7 +569,7 @@ "title": "", "notification": { "success": { - "title": "", + "title": "Créé avec succès", "message": "" }, "error": { @@ -611,37 +611,37 @@ "label": "Nom" }, "url": { - "label": "" + "label": "Url" } }, "action": { - "create": "" + "create": "Nouvelle intégration" }, "testConnection": { "action": { - "create": "", - "edit": "" + "create": "Tester la connexion et créer", + "edit": "Tester la connexion et enregistrer" }, - "alertNotice": "", + "alertNotice": "Le bouton Enregistrer est activé une fois qu'une connexion est établie avec succès", "notification": { "success": { - "title": "", - "message": "" + "title": "Connexion réussie", + "message": "La connexion a été établie avec succès" }, "invalidUrl": { "title": "URL invalide", - "message": "" + "message": "L'URL est invalide." }, "secretNotDefined": { - "title": "", - "message": "" + "title": "Identifiants manquants", + "message": "Les informations d'identification n'ont pas toutes été fournies" }, "invalidCredentials": { - "title": "", - "message": "" + "title": "Informations d'identification incorrectes.", + "message": "Les informations d'identification ne sont pas valides" }, "commonError": { - "title": "", + "title": "Échec de la connexion", "message": "" }, "badRequest": { @@ -709,11 +709,11 @@ "kind": { "username": { "label": "Nom d'utilisateur", - "newLabel": "" + "newLabel": "Nouveau nom d'utilisateur" }, "apiKey": { - "label": "", - "newLabel": "" + "label": "Clé API", + "newLabel": "Nouvelle clé API" }, "password": { "label": "Mot de passe", @@ -761,12 +761,12 @@ } }, "copy": { - "label": "" + "label": "Copier l'URL" } } }, "common": { - "beta": "", + "beta": "Bêta", "error": "Erreur", "action": { "add": "Ajouter", @@ -774,7 +774,7 @@ "backToOverview": "", "create": "Créer", "edit": "Modifier", - "import": "", + "import": "Importer", "insert": "Insérer", "remove": "Supprimer", "save": "Sauvegarder", @@ -783,31 +783,31 @@ "delete": "Supprimer", "discard": "", "confirm": "Confirmer", - "continue": "", + "continue": "Continuer", "previous": "Précédent", "next": "Suivant", - "checkoutDocs": "", - "checkLogs": "", + "checkoutDocs": "Voir la documentation", + "checkLogs": "Vérifiez les logs pour plus de détails", "tryAgain": "Réessayer", - "loading": "" + "loading": "Chargement" }, - "here": "", + "here": "ici", "iconPicker": { "label": "", "header": "" }, "colorScheme": { "options": { - "light": "", - "dark": "" + "light": "Clair", + "dark": "Sombre" } }, "information": { - "min": "", - "max": "", - "days": "", + "min": "Min", + "max": "Max", + "days": "Jours", "hours": "Heures", - "minutes": "" + "minutes": "Minutes" }, "notification": { "create": { @@ -832,7 +832,7 @@ }, "multiText": { "placeholder": "", - "addLabel": "" + "addLabel": "Ajouter {value}" }, "select": { "placeholder": "", @@ -844,9 +844,9 @@ "menu": { "switchToDarkMode": "Activer le mode sombre", "switchToLightMode": "Activer le mode clair", - "management": "", + "management": "Administration", "preferences": "Vos préférences", - "logout": "", + "logout": "Se déconnecter", "login": "Connexion", "homeBoard": "", "loggedOut": "", @@ -992,7 +992,7 @@ }, "widget": { "app": { - "name": "", + "name": "App", "description": "", "option": { "appId": { diff --git a/packages/translation/src/lang/he.json b/packages/translation/src/lang/he.json index e471a07e3..0f0f1648e 100644 --- a/packages/translation/src/lang/he.json +++ b/packages/translation/src/lang/he.json @@ -93,39 +93,39 @@ "finish": { "title": "סיים את ההגדרה", "subtitle": "", - "description": "", + "description": "השלמת בהצלחה את תהליך ההגדרה. כעת תוכל להתחיל להשתמש ב-Homarr. בחר את הפעולה הבאה שלך:", "action": { - "goToBoard": "", - "createBoard": "", - "inviteUser": "", - "docs": "" + "goToBoard": "עבור ללוח {name}", + "createBoard": "צור את הלוח הראשון שלך", + "inviteUser": "הזמן משתמשים אחרים", + "docs": "קרא את הדוקומנטציה" } } }, - "backToStart": "" + "backToStart": "חזרה להתחלה" }, "user": { "title": "משתמשים", "name": "משתמש", "page": { "login": { - "title": "", - "subtitle": "" + "title": "היכנס לחשבון שלך", + "subtitle": "ברוך שובך! אנא הזן את שם המשתמש והסיסמה שלך" }, "invite": { - "title": "", - "subtitle": "", - "description": "" + "title": "הצטרף ל- Homarr", + "subtitle": "ברוכים הבאים ל- Homarr! נא ליצור את החשבון שלך", + "description": "הוזמנת על ידי {username}" }, "init": { - "title": "", - "subtitle": "" + "title": "התקנת Homarr חדשה", + "subtitle": "נא ליצור את משתמש המנהל הראשוני" } }, "field": { "email": { "label": "אימייל", - "verified": "" + "verified": "מאומת" }, "username": { "label": "שם משתמש" @@ -133,46 +133,46 @@ "password": { "label": "סיסמה", "requirement": { - "length": "", + "length": "כולל לפחות 8 תווים", "lowercase": "אפשר אותיות קטנות", "uppercase": "אפשר אותיות גדולות", "number": "אפשר מספרים", - "special": "" + "special": "כולל סמל מיוחד" } }, "passwordConfirm": { "label": "אימות סיסמא" }, "previousPassword": { - "label": "" + "label": "סיסמה קודמת" }, "homeBoard": { - "label": "" + "label": "לוח בית" }, "pingIconsEnabled": { - "label": "" + "label": "השתמש בסמלים עבור פינגים" } }, "error": { - "usernameTaken": "" + "usernameTaken": "שם המשתמש תפוס" }, "action": { "login": { "label": "התחבר/י", - "labelWith": "", + "labelWith": "התחבר עם {provider}", "notification": { "success": { - "title": "", - "message": "" + "title": "התחברת בהצלחה", + "message": "אתה כעת מחובר" }, "error": { - "title": "", - "message": "" + "title": "התחברות נכשלה", + "message": "הכניסה נכשלה" } }, "forgotPassword": { - "label": "", - "description": "" + "label": "שכחת את הסיסמה שלך?", + "description": "מנהל מערכת יכול להשתמש בפקודה הבאה כדי לאפס את הסיסמה שלך:" } }, "register": { @@ -180,81 +180,81 @@ "notification": { "success": { "title": "החשבון נוצר", - "message": "" + "message": "אנא היכנס כדי להמשיך" }, "error": { - "title": "", - "message": "" + "title": "יצירת החשבון נכשלה", + "message": "לא ניתן ליצור את החשבון שלך" } } }, "create": "צור משתמש", "changePassword": { - "label": "", + "label": "שינוי סיסמה", "notification": { "success": { - "message": "" + "message": "הסיסמה שונתה בהצלחה" }, "error": { - "message": "" + "message": "לא ניתן לשנות סיסמה" } } }, "changeHomeBoard": { "notification": { "success": { - "message": "" + "message": "לוח הבית השתנה בהצלחה" }, "error": { - "message": "" + "message": "לא ניתן לשנות לוח בית" } } }, "changeFirstDayOfWeek": { "notification": { "success": { - "message": "" + "message": "היום הראשון בשבוע השתנה בהצלחה" }, "error": { - "message": "" + "message": "לא ניתן לשנות את היום הראשון בשבוע" } } }, "changePingIconsEnabled": { "notification": { "success": { - "message": "" + "message": "סמלי פינג הוחלפו בהצלחה" }, "error": { - "message": "" + "message": "לא ניתן לשנות את סמלי הפינג" } } }, "manageAvatar": { "changeImage": { - "label": "", + "label": "שנה תמונה", "notification": { "success": { - "message": "" + "message": "התמונה השתנתה בהצלחה" }, "error": { - "message": "" + "message": "לא ניתן לשנות תמונה" }, "toLarge": { - "title": "", - "message": "" + "title": "התמונה גדולה מדי", + "message": "גודל התמונה המרבי הוא {size}" } } }, "removeImage": { - "label": "", - "confirm": "", + "label": "הסר תמונה", + "confirm": "האם אתה בטוח שברצונך להסיר את התמונה?", "notification": { "success": { - "message": "" + "message": "התמונה הוסרה בהצלחה" }, "error": { - "message": "" + "message": "לא ניתן להסיר תמונה" } } } @@ -262,42 +262,42 @@ "editProfile": { "notification": { "success": { - "message": "" + "message": "הפרופיל עודכן בהצלחה" }, "error": { - "message": "" + "message": "לא ניתן לעדכן את הפרופיל" } } }, "delete": { - "label": "", - "description": "", - "confirm": "" + "label": "מחק משתמש לצמיתות", + "description": "מוחק משתמש זה כולל העדפותיו. לא ימחק אף לוח. המשתמש לא יקבל הודעה.", + "confirm": "האם אתה בטוח שאתה רוצה למחוק את המשתמש {username} עם ההעדפות שלו?" }, "select": { - "label": "", - "notFound": "" + "label": "בחר משתמש", + "notFound": "לא נמצא משתמש" }, "transfer": { - "label": "" + "label": "בחר בעלים חדש" } } }, "group": { - "title": "", - "name": "", - "search": "", + "title": "קבוצות", + "name": "קבוצה", + "search": "מצא קבוצה", "field": { "name": "שם", - "members": "" + "members": "חברים" }, "permission": { "admin": { "title": "מנהל מערכת", "item": { "admin": { - "label": "", - "description": "" + "label": "מנהל", + "description": "לחברים עם הרשאה זו יש גישה מלאה לכל התכונות וההגדרות" } } }, @@ -305,20 +305,20 @@ "title": "אפליקציות", "item": { "create": { - "label": "", - "description": "" + "label": "יצירת אפליקציות", + "description": "מאפשר לחברים ליצור אפליקציות" }, "use-all": { - "label": "", - "description": "" + "label": "שימוש בכל האפליקציות", + "description": "מאפשר לחברים להוסיף כל אפליקציות ללוחות שלהם" }, "modify-all": { - "label": "", - "description": "" + "label": "משנה את כל האפליקציות", + "description": "מאפשר לחברים לשנות את כל האפליקציות" }, "full-all": { - "label": "", - "description": "" + "label": "גישה מלאה לאפליקציה", + "description": "מאפשר לחברים לנהל, להשתמש ולמחוק כל אפליקציה" } } }, @@ -326,20 +326,20 @@ "title": "לוחות", "item": { "create": { - "label": "", - "description": "" + "label": "יצירת לוחות", + "description": "מאפשר לחברים ליצור לוחות" }, "view-all": { - "label": "", - "description": "" + "label": "הצגת כל הלוחות", + "description": "מאפשר לחברים לצפות בכל הלוחות" }, "modify-all": { - "label": "", - "description": "" + "label": "משנה את כל הלוחות", + "description": "מאפשר לחברים לשנות את כל הלוחות (לא כולל בקרת גישה ואזור סכנה)" }, "full-all": { - "label": "", - "description": "" + "label": "גישה מלאה ללוח", + "description": "אפשר לחברים להציג, לשנות ולמחוק את כל הלוחות (כולל בקרת גישה ואזור סכנה)" } } }, @@ -347,144 +347,144 @@ "title": "אינטגרציות", "item": { "create": { - "label": "", - "description": "" + "label": "יצירת אינטגרציות", + "description": "אפשר לחברים ליצור אינטגרציות" }, "use-all": { - "label": "", - "description": "" + "label": "שימוש בכל האינטגרציות", + "description": "מאפשר לחברים להוסיף כל אינטגרציה ללוחות שלהם" }, "interact-all": { - "label": "", - "description": "" + "label": "אינטראקציה עם כל אינטגרציה", + "description": "אפשר לחברים לקיים אינטראקציה עם כל אינטגרציה" }, "full-all": { - "label": "", - "description": "" + "label": "גישת אינטגרציה מלאה", + "description": "אפשר לחברים לנהל, להשתמש ולקיים אינטראקציה עם כל אינטגרציה" } } }, "media": { - "title": "", + "title": "מדיה", "item": { "upload": { - "label": "", - "description": "" + "label": "העלה מדיה", + "description": "אפשר לחברים להעלות מדיה" }, "view-all": { - "label": "", - "description": "" + "label": "הצג את כל המדיה", + "description": "אפשר לחברים להציג את כל המדיה" }, "full-all": { - "label": "", - "description": "" + "label": "גישה מלאה למדיה", + "description": "אפשר לחברים לנהל ולמחוק כל מדיה" } } }, "other": { - "title": "", + "title": "אחר", "item": { "view-logs": { - "label": "", - "description": "" + "label": "הצג לוגים", + "description": "אפשר לחברים לצפות בלוגים" } } }, "search-engine": { - "title": "", + "title": "מנועי חיפוש", "item": { "create": { - "label": "", - "description": "" + "label": "צור מנועי חיפוש", + "description": "אפשר לחברים ליצור מנועי חיפוש" }, "modify-all": { - "label": "", - "description": "" + "label": "שנה את כל מנועי החיפוש", + "description": "אפשר לחברים לשנות את כל מנועי החיפוש" }, "full-all": { - "label": "", - "description": "" + "label": "גישה מלאה למנועי חיפוש", + "description": "אפשר לחברים לנהל ולמחוק כל מנוע חיפוש" } } } }, "memberNotice": { - "mixed": "", - "external": "" + "mixed": "חלק מהחברים הם מספקים חיצוניים ולא ניתן לנהל אותם כאן", + "external": "כל החברים הם מספקים חיצוניים ולא ניתן לנהל אותם כאן" }, "reservedNotice": { - "message": "" + "message": "קבוצה זו שמורה לשימוש במערכת ומגבילה חלק מהפעולות. " }, "action": { "create": { - "label": "", + "label": "קבוצה חדשה", "notification": { "success": { - "message": "" + "message": "הקבוצה נוצרה בהצלחה" }, "error": { - "message": "" + "message": "לא ניתן ליצור את הקבוצה" } } }, "transfer": { - "label": "", - "description": "", - "confirm": "", + "label": "העברת בעלות", + "description": "העבר את הבעלות על הקבוצה הזו למשתמש אחר.", + "confirm": "האם אתה בטוח שברצונך להעביר בעלות על הקבוצה {name} ל- {username}?", "notification": { "success": { - "message": "" + "message": "הקבוצה {group} הועברה בהצלחה ל {user}" }, "error": { - "message": "" + "message": "לא ניתן להעביר בעלות" } } }, "addMember": { - "label": "" + "label": "הוסף חבר" }, "removeMember": { - "label": "", - "confirm": "" + "label": "הסר חבר", + "confirm": "האם אתה בטוח שברצונך להסיר את {user} מהקבוצה הזו?" }, "delete": { - "label": "", + "label": "מחק קבוצה", "description": "", - "confirm": "", + "confirm": "האם אתה בטוח שברצונך למחוק את הקבוצה {name}?", "notification": { "success": { - "message": "" + "message": "הקבוצה {name} נמחקה בהצלחה" }, "error": { - "message": "" + "message": "לא ניתן למחוק את הקבוצה {name}" } } }, "changePermissions": { "notification": { "success": { - "title": "", - "message": "" + "title": "ההרשאות נשמרו", + "message": "ההרשאות נשמרו בהצלחה" }, "error": { - "title": "", - "message": "" + "title": "ההרשאות לא נשמרו", + "message": "ההרשאות לא נשמרו" } } }, "update": { "notification": { "success": { - "message": "" + "message": "הקבוצה {name} נשמרה בהצלחה" }, "error": { - "message": "" + "message": "לא ניתן לשמור את הקבוצה {name}" } } }, "select": { - "label": "", - "notFound": "" + "label": "בחר קבוצה", + "notFound": "לא נמצאה קבוצה" } } }, @@ -493,47 +493,47 @@ "list": { "title": "אפליקציות", "noResults": { - "title": "", - "action": "" + "title": "עדיין אין אפליקציות", + "action": "צור את האפליקציה הראשונה שלך" } }, "create": { - "title": "", + "title": "אפליקציה חדשה", "notification": { "success": { - "title": "", - "message": "" + "title": "היצירה הצליחה", + "message": "האפליקציה נוצרה בהצלחה" }, "error": { - "title": "", - "message": "" + "title": "היצירה נכשלה", + "message": "לא ניתן ליצור את האפליקציה" } } }, "edit": { - "title": "", + "title": "ערוך אפליקציה", "notification": { "success": { - "title": "", - "message": "" + "title": "השינויים הוחלו בהצלחה", + "message": "האפליקציה נשמרה בהצלחה" }, "error": { - "title": "", - "message": "" + "title": "לא ניתן להחיל שינויים", + "message": "לא ניתן היה לשמור את האפליקציה" } } }, "delete": { - "title": "", - "message": "", + "title": "מחק אפליקציה", + "message": "האם אתה בטוח שברצונך למחוק את האפליקציה {name}?", "notification": { "success": { - "title": "", - "message": "" + "title": "המחיקה הצליחה", + "message": "האפליקציה נמחקה בהצלחה" }, "error": { - "title": "", - "message": "" + "title": "המחיקה נכשלה", + "message": "לא ניתן למחוק את האפליקציה" } } } @@ -543,16 +543,16 @@ "label": "שם" }, "description": { - "label": "" + "label": "תיאור" }, "url": { - "label": "" + "label": "כתובת אתר" } }, "action": { "select": { - "label": "", - "notFound": "" + "label": "בחר אפליקציה", + "notFound": "לא נמצאה אפליקציה" } } }, @@ -560,48 +560,48 @@ "page": { "list": { "title": "אינטגרציות", - "search": "", + "search": "חיפוש אינטגרציות", "noResults": { - "title": "" + "title": "עדיין אין אינטגרציות" } }, "create": { - "title": "", + "title": "אינטגרציה {name} חדשה", "notification": { "success": { - "title": "", - "message": "" + "title": "היצירה הצליחה", + "message": "האינטגרציה נוצרה בהצלחה" }, "error": { - "title": "", - "message": "" + "title": "היצירה נכשלה", + "message": "לא ניתן ליצור את האינטגרציה" } } }, "edit": { - "title": "", + "title": "ערוך אינטגרציה {name}", "notification": { "success": { - "title": "", - "message": "" + "title": "השינויים הוחלו בהצלחה", + "message": "האינטגרציה נשמרה בהצלחה" }, "error": { - "title": "", - "message": "" + "title": "לא ניתן להחיל שינויים", + "message": "לא ניתן היה לשמור את האינטגרציה" } } }, "delete": { - "title": "", - "message": "", + "title": "מחק אינטגרציה", + "message": "האם אתה בטוח שברצונך למחוק את האינטגרציה {name}?", "notification": { "success": { - "title": "", - "message": "" + "title": "המחיקה הצליחה", + "message": "האינטגרציה נמחקה בהצלחה" }, "error": { - "title": "", - "message": "" + "title": "המחיקה נכשלה", + "message": "לא ניתן למחוק את האינטגרציה" } } } @@ -611,29 +611,29 @@ "label": "שם" }, "url": { - "label": "" + "label": "כתובת אתר" } }, "action": { - "create": "" + "create": "אינטגרציה חדשה" }, "testConnection": { "action": { - "create": "", - "edit": "" + "create": "בדוק חיבור וצור", + "edit": "בדוק את החיבור ושמור" }, - "alertNotice": "", + "alertNotice": "הלחצן שמור מופעל לאחר יצירת חיבור מוצלח", "notification": { "success": { - "title": "", - "message": "" + "title": "החיבור הצליח", + "message": "החיבור נוצר בהצלחה" }, "invalidUrl": { "title": "קישור לא תקין", - "message": "" + "message": "כתובת האתר אינה חוקית" }, "secretNotDefined": { - "title": "", + "title": "חסרים פרטי התחברות", "message": "" }, "invalidCredentials": { @@ -724,11 +724,11 @@ "permission": { "use": "", "interact": "", - "full": "" + "full": "גישת אינטגרציה מלאה" } }, "media": { - "plural": "", + "plural": "מדיה", "search": "", "field": { "name": "שם", @@ -811,16 +811,16 @@ }, "notification": { "create": { - "success": "", - "error": "" + "success": "היצירה הצליחה", + "error": "היצירה נכשלה" }, "delete": { - "success": "", - "error": "" + "success": "המחיקה הצליחה", + "error": "המחיקה נכשלה" }, "update": { - "success": "", - "error": "" + "success": "השינויים הוחלו בהצלחה", + "error": "לא ניתן להחיל שינויים" }, "transfer": { "success": "", @@ -1213,7 +1213,7 @@ } }, "iframe": { - "name": "", + "name": "iFrame", "description": "הטמע כל תוכן מהאינטרנט. חלק מהאתרים עשויים להגביל את הגישה.", "option": { "embedUrl": { @@ -1422,7 +1422,7 @@ "description": "" }, "app": { - "noData": "", + "noData": "לא נמצאה אפליקציה", "description": "" }, "error": { @@ -1735,11 +1735,11 @@ "edit": { "notification": { "success": { - "title": "", + "title": "השינויים הוחלו בהצלחה", "message": "" }, "error": { - "title": "", + "title": "לא ניתן להחיל שינויים", "message": "" } }, @@ -1983,13 +1983,13 @@ "noBoard": { "title": "ברוכים הבאים ל- Homarr", "description": "", - "link": "", + "link": "צור את הלוח הראשון שלך", "notice": "" }, "notFound": { "title": "", "description": "", - "link": "", + "link": "הצגת כל הלוחות", "notice": "" }, "homeBoard": { @@ -2029,14 +2029,14 @@ "boards": "לוחות", "apps": "אפליקציות", "integrations": "אינטגרציות", - "searchEngies": "", - "medias": "", + "searchEngies": "מנועי חיפוש", + "medias": "מדיה", "users": { "label": "משתמשים", "items": { "manage": "ניהול", "invites": "הזמנות", - "groups": "" + "groups": "קבוצות" } }, "tools": { @@ -2069,7 +2069,7 @@ "invite": "הזמנות", "integration": "אינטגרציות", "app": "אפליקציות", - "group": "" + "group": "קבוצות" }, "statisticLabel": { "boards": "לוחות", @@ -2130,7 +2130,7 @@ "title": "כללי", "item": { "language": "", - "board": "", + "board": "לוח בית", "firstDayOfWeek": "היום הראשון בשבוע", "accessibility": "נגישות" } @@ -2160,7 +2160,7 @@ "label": "אבטחה" }, "groups": { - "label": "", + "label": "קבוצות", "title": "", "description": "" }, @@ -2223,7 +2223,7 @@ "ownerOfGroupDeleted": "" }, "members": { - "title": "", + "title": "חברים", "search": "", "notFound": "" }, @@ -2529,7 +2529,7 @@ }, "tab": { "user": "משתמשים", - "group": "", + "group": "קבוצות", "inherited": "" }, "field": { @@ -2537,7 +2537,7 @@ "label": "משתמש" }, "group": { - "label": "" + "label": "קבוצה" }, "permission": { "label": "" @@ -2564,7 +2564,7 @@ } }, "search-engines": { - "label": "", + "label": "מנועי חיפוש", "new": { "label": "" }, @@ -2573,7 +2573,7 @@ } }, "medias": { - "label": "" + "label": "מדיה" }, "apps": { "label": "אפליקציות", @@ -2593,7 +2593,7 @@ "security": "אבטחה", "board": "לוחות", "groups": { - "label": "" + "label": "קבוצות" }, "invites": { "label": "הזמנות" @@ -2634,7 +2634,7 @@ "label": "" }, "edit": { - "label": "" + "label": "ערוך אפליקציה" } }, "detail": { @@ -2721,7 +2721,7 @@ "help": "", "group": { "searchEngine": { - "title": "", + "title": "מנועי חיפוש", "children": { "action": { "search": { @@ -2828,7 +2828,7 @@ "label": "" }, "manageLog": { - "label": "" + "label": "הצג לוגים" }, "manageTask": { "label": "" @@ -2840,7 +2840,7 @@ "label": "אודות" }, "homeBoard": { - "label": "" + "label": "לוח בית" }, "preferences": { "label": "העדפות שלך" @@ -2866,7 +2866,7 @@ } }, "group": { - "title": "", + "title": "קבוצות", "children": { "action": { "detail": { @@ -2900,12 +2900,12 @@ "label": "" }, "description": { - "label": "" + "label": "תיאור" } }, "page": { "list": { - "title": "", + "title": "מנועי חיפוש", "noResults": { "title": "", "action": "" @@ -2929,11 +2929,11 @@ "title": "", "notification": { "success": { - "title": "", + "title": "השינויים הוחלו בהצלחה", "message": "" }, "error": { - "title": "", + "title": "לא ניתן להחיל שינויים", "message": "" } }, diff --git a/packages/translation/src/lang/hu.json b/packages/translation/src/lang/hu.json index d4144601c..f1a22dd50 100644 --- a/packages/translation/src/lang/hu.json +++ b/packages/translation/src/lang/hu.json @@ -314,11 +314,11 @@ }, "modify-all": { "label": "Minden alkalmazás módosítása", - "description": "" + "description": "A tagok módosíthatják az összes alkalmazást" }, "full-all": { - "label": "", - "description": "" + "label": "Teljes alkalmazás hozzáférés", + "description": "Lehetővé teszi a tagoknak, hogy kezeljék, használják és töröljék az alkalmazásokat" } } }, @@ -326,20 +326,20 @@ "title": "Táblák", "item": { "create": { - "label": "", - "description": "" + "label": "Tábla létrehozása", + "description": "A tagok táblákat hozhatnak létre" }, "view-all": { - "label": "", - "description": "" + "label": "Az összes tábla megtekintése", + "description": "A tagok megtekinthetik az összes táblát" }, "modify-all": { - "label": "", - "description": "" + "label": "Az összes tábla módosítása", + "description": "Lehetővé teszi a tagoknak, hogy módosítsák az összes táblát (Nem tartalmazza a beléptetést és a veszélyes zónát)" }, "full-all": { - "label": "", - "description": "" + "label": "Teljes alkalmazás hozzáférés", + "description": "Lehetővé teszi a tagoknak az összes tábla megtekintését, módosítását és törlését (beleértve a beléptetést és a veszélyzónát)" } } }, @@ -347,93 +347,93 @@ "title": "Integrációk", "item": { "create": { - "label": "", - "description": "" + "label": "Integrációk létrehozása", + "description": "A tagok integrációkat hozhatnak létre" }, "use-all": { - "label": "", - "description": "" + "label": "Használja az összes integrációt", + "description": "Lehetővé teszi a tagok számára, hogy bármilyen integrációt hozzáadjanak a tábláikhoz" }, "interact-all": { - "label": "", - "description": "" + "label": "Interakció bármely integrációval", + "description": "Lehetővé teszi a tagoknak, hogy bármilyen integrációval kapcsolatba lépjenek" }, "full-all": { - "label": "", - "description": "" + "label": "Teljes integrációs hozzáférés", + "description": "Lehetővé teszi a tagoknak, hogy kezeljék, használhassák és kapcsolatba lépjenek bármilyen integrációval" } } }, "media": { - "title": "", + "title": "Média", "item": { "upload": { - "label": "", - "description": "" + "label": "Média feltöltése", + "description": "Engedélyezze a tagok számára a médiák feltöltését" }, "view-all": { - "label": "", - "description": "" + "label": "Az összes média megtekintése", + "description": "Engedélyezze a tagok számára az összes média megtekintését" }, "full-all": { - "label": "", - "description": "" + "label": "Teljes médiahozzáférés", + "description": "Lehetővé teszi a tagoknak, hogy kezeljék és töröljék a médiatartalmakat" } } }, "other": { - "title": "", + "title": "Egyéb", "item": { "view-logs": { - "label": "", - "description": "" + "label": "Naplók megtekintése", + "description": "A tagok megtekinthetik a naplókat" } } }, "search-engine": { - "title": "", + "title": "Keresőmotorok", "item": { "create": { - "label": "", - "description": "" + "label": "Egyéni keresőmotor", + "description": "A tagok egyéni keresőmotorokat hozhatnak létre" }, "modify-all": { - "label": "", - "description": "" + "label": "Módosítsa az összes keresőmotort", + "description": "A tagok módosíthatják az összes a keresőmotorokat" }, "full-all": { - "label": "", - "description": "" + "label": "Teljes hozzáférés a keresőmotorokhoz", + "description": "Lehetővé teszi a tagoknak, hogy kezeljék és töröljék a keresőmotorokat" } } } }, "memberNotice": { - "mixed": "", - "external": "" + "mixed": "Egyes tagok külső szolgáltatóktól származnak, és itt nem kezelhetők", + "external": "Minden tag külső szolgáltatótól származik, és itt nem kezelhetők" }, "reservedNotice": { - "message": "" + "message": "Ez a csoport a rendszer használatára van fenntartva, és korlátoz bizonyos műveleteket. " }, "action": { "create": { - "label": "", + "label": "Új csoport", "notification": { "success": { - "message": "" + "message": "A csoport sikeresen létrejött" }, "error": { - "message": "" + "message": "A csoport létrehozása nem sikerült" } } }, "transfer": { - "label": "", - "description": "", - "confirm": "", + "label": "Tulajdonos megváltoztatása", + "description": "A csoport tulajdonjogának átadása másik felhasználónak.", + "confirm": "Biztosan át akarja adni a {name} csoport tulajdonjogát {username}felhasználónak?", "notification": { "success": { - "message": "" + "message": "A {group} csoport sikeresen áthelyezve {user} felhasználó tulajdonába" }, "error": { "message": "Nem lehet átruházni a tulajdonjogot" @@ -475,16 +475,16 @@ "update": { "notification": { "success": { - "message": "" + "message": "A {name} csoport mentése sikeresen megtörtént" }, "error": { - "message": "" + "message": "Nem sikerült menteni a {name} csoportot" } } }, "select": { - "label": "", - "notFound": "" + "label": "Csoport kiválasztása", + "notFound": "Nem található csoport" } } }, @@ -493,47 +493,47 @@ "list": { "title": "Alkalmazások", "noResults": { - "title": "", - "action": "" + "title": "Még nincsenek alkalmazások", + "action": "Hozza létre első alkalmazását" } }, "create": { - "title": "", + "title": "Új alkalmazás", "notification": { "success": { - "title": "", - "message": "" + "title": "Sikeres létrehozás", + "message": "Az alkalmazás sikeresen létrejött" }, "error": { - "title": "", - "message": "" + "title": "A létrehozás nem sikerült", + "message": "Az alkalmazást nem sikerült létrehozni" } } }, "edit": { - "title": "", + "title": "Alkalmazás szerkesztése", "notification": { "success": { - "title": "", - "message": "" + "title": "A módosítások sikeresen alkalmazva", + "message": "Az alkalmazás sikeresen mentve" }, "error": { - "title": "", - "message": "" + "title": "Nem sikerült alkalmazni a változtatásokat", + "message": "Az alkalmazást nem sikerült menteni" } } }, "delete": { - "title": "", - "message": "", + "title": "Törölje az alkalmazást", + "message": "Biztosan törli a {name} alkalmazást?", "notification": { "success": { - "title": "", - "message": "" + "title": "Sikeres törlés", + "message": "Az alkalmazás sikeresen törölve" }, "error": { - "title": "", - "message": "" + "title": "Törlés sikertelen", + "message": "Nem lehet törölni az alkalmazást" } } } @@ -551,8 +551,8 @@ }, "action": { "select": { - "label": "", - "notFound": "" + "label": "Alkalmazás kiválasztása", + "notFound": "Nem található alkalmazás" } } }, @@ -560,48 +560,48 @@ "page": { "list": { "title": "Integrációk", - "search": "", + "search": "Integrációk közötti keresés", "noResults": { - "title": "" + "title": "Még nincsenek integrációk" } }, "create": { - "title": "", + "title": "Új {name} integráció", "notification": { "success": { - "title": "", - "message": "" + "title": "Sikeres létrehozás", + "message": "Az integráció sikeresen létrejött" }, "error": { - "title": "", - "message": "" + "title": "A létrehozás nem sikerült", + "message": "Az integráció nem hozható létre" } } }, "edit": { - "title": "", + "title": "A {name} integráció szerkesztése", "notification": { "success": { - "title": "", - "message": "" + "title": "A módosítások sikeresen alkalmazva", + "message": "Az integráció sikeresen mentve" }, "error": { - "title": "", - "message": "" + "title": "Nem sikerült alkalmazni a változtatásokat", + "message": "Az integrációt nem sikerült menteni" } } }, "delete": { - "title": "", - "message": "", + "title": "Integráció törlése", + "message": "Biztosan törli a {name} integrációt?", "notification": { "success": { - "title": "", - "message": "" + "title": "Sikeres törlés", + "message": "Az integráció sikeresen törölve" }, "error": { - "title": "", - "message": "" + "title": "Törlés sikertelen", + "message": "Az integráció nem törölhető" } } } @@ -615,105 +615,105 @@ } }, "action": { - "create": "" + "create": "Új integráció" }, "testConnection": { "action": { - "create": "", - "edit": "" + "create": "Tesztelje a kapcsolatot és hozzon létre", + "edit": "Tesztelje a kapcsolatot és mentsen" }, - "alertNotice": "", + "alertNotice": "A Mentés gomb a sikeres kapcsolat létrehozása után aktiválódik", "notification": { "success": { - "title": "", - "message": "" + "title": "Sikeres csatlakozás", + "message": "A kapcsolat sikeresen létrejött" }, "invalidUrl": { "title": "Érvénytelen URL", - "message": "" + "message": "Az URL érvénytelen" }, "secretNotDefined": { - "title": "", - "message": "" + "title": "Hiányzó hitelesítő adatok", + "message": "Nem adtak meg minden hitelesítő adatot" }, "invalidCredentials": { - "title": "", - "message": "" + "title": "Érvénytelen hitelesítő adatok", + "message": "A hitelesítő adatok érvénytelenek" }, "commonError": { - "title": "", - "message": "" + "title": "Sikertelen kapcsolódás", + "message": "A kapcsolat nem hozható létre" }, "badRequest": { - "title": "", - "message": "" + "title": "Hibás kérés", + "message": "A kérés hibás volt" }, "unauthorized": { - "title": "", - "message": "" + "title": "Jogosulatlan", + "message": "Valószínűleg rossz hitelesítő adatok" }, "forbidden": { - "title": "", - "message": "" + "title": "Elutasítva", + "message": "Valószínűleg hiányoznak az engedélyek" }, "notFound": { - "title": "", - "message": "" + "title": "Nem található", + "message": "Valószínűleg rossz url vagy elérési útvonal" }, "internalServerError": { - "title": "", - "message": "" + "title": "Belső szerverhiba", + "message": "A szerver hibát észlelt" }, "serviceUnavailable": { - "title": "", - "message": "" + "title": "A szolgáltatás nem elérhető", + "message": "A szerver jelenleg nem elérhető" }, "connectionAborted": { - "title": "", - "message": "" + "title": "A kapcsolat megszakadt", + "message": "A kapcsolat megszakadt" }, "domainNotFound": { - "title": "", - "message": "" + "title": "A domain nem található", + "message": "A domain nem található" }, "connectionRefused": { - "title": "", - "message": "" + "title": "Csatlakozás elutasítva", + "message": "Csatlakozás elutasítva" }, "invalidJson": { - "title": "", - "message": "" + "title": "Hibás JSON", + "message": "A válasz nem érvényes JSON" }, "wrongPath": { - "title": "", - "message": "" + "title": "Rossz útvonal", + "message": "Az útvonal valószínűleg nem helyes" } } }, "secrets": { - "title": "", - "lastUpdated": "", + "title": "Titkok", + "lastUpdated": "Utoljára frissítve: {date}", "notSet": { - "label": "", - "tooltip": "" + "label": "Nincs beállítva érték", + "tooltip": "Ez a szükséges titok még nincs beállítva" }, - "secureNotice": "", + "secureNotice": "Ezt a titkot a létrehozás után nem lehet visszakeresni", "reset": { - "title": "", - "message": "" + "title": "Titok visszaállítása", + "message": "Biztosan valaphelyzetbe állítja ezt a titkot?" }, "noSecretsRequired": { - "segmentTitle": "", - "text": "" + "segmentTitle": "Nincsenek titkok", + "text": "Ehhez az integrációhoz nincs szükség titkokra" }, "kind": { "username": { "label": "Felhasználónév", - "newLabel": "" + "newLabel": "Új felhasználónév" }, "apiKey": { - "label": "", - "newLabel": "" + "label": "API Kulcs", + "newLabel": "Új API kulcs" }, "password": { "label": "Jelszó", @@ -722,14 +722,14 @@ } }, "permission": { - "use": "", - "interact": "", - "full": "" + "use": "Válassza ki az integrációkat az elemekben", + "interact": "Interakció az integrációkkal", + "full": "Teljes integrációs hozzáférés" } }, "media": { - "plural": "", - "search": "", + "plural": "Média", + "search": "Média keresése", "field": { "name": "Név", "size": "Méret", @@ -737,90 +737,90 @@ }, "action": { "upload": { - "label": "", - "file": "", + "label": "Média feltöltése", + "file": "Fájl kiválasztása", "notification": { "success": { - "message": "" + "message": "A média sikeresen feltöltve" }, "error": { - "message": "" + "message": "A médiát nem lehetett feltölteni" } } }, "delete": { - "label": "", - "description": "", + "label": "Média törlése", + "description": "Biztos, hogy törölni akarja a médiát ?", "notification": { "success": { - "message": "" + "message": "A média sikeresen törölve" }, "error": { - "message": "" + "message": "A médiát nem lehetett törölni" } } }, "copy": { - "label": "" + "label": "URL másolása" } } }, "common": { - "beta": "", + "beta": "Béta", "error": "Hiba", "action": { "add": "Hozzáadás", "apply": "Alkalmaz", - "backToOverview": "", + "backToOverview": "Vissza az áttekintéshez", "create": "Létrehozás", "edit": "Szerkesztés", - "import": "", + "import": "Importálás", "insert": "Beillesztés", "remove": "Eltávolítás", "save": "Mentés", "saveChanges": "Változások mentése", "cancel": "Mégse", "delete": "Törlés", - "discard": "", + "discard": "Elvetés", "confirm": "Megerősít", - "continue": "", + "continue": "Folytatás", "previous": "Előző", "next": "Következő", - "checkoutDocs": "", - "checkLogs": "", + "checkoutDocs": "Tekintse meg a dokumentációt", + "checkLogs": "További részletekért ellenőrizze a naplókat", "tryAgain": "Próbálja újra", - "loading": "" + "loading": "Töltés" }, - "here": "", + "here": "itt", "iconPicker": { - "label": "", - "header": "" + "label": "Ikonhivatkozás", + "header": "Írjon be nevet vagy objektumokat az ikonok szűréséhez... A Homarr a {countIcons} ikonok között keres." }, "colorScheme": { "options": { - "light": "", - "dark": "" + "light": "Világos", + "dark": "Sötét" } }, "information": { - "min": "", - "max": "", + "min": "Legalább", + "max": "Legfeljebb", "days": "", "hours": "Óra", "minutes": "Perc" }, "notification": { "create": { - "success": "", - "error": "" + "success": "Sikeres létrehozás", + "error": "A létrehozás nem sikerült" }, "delete": { - "success": "", - "error": "" + "success": "Sikeres törlés", + "error": "Törlés sikertelen" }, "update": { - "success": "", - "error": "" + "success": "A módosítások sikeresen alkalmazva", + "error": "Nem sikerült alkalmazni a változtatásokat" }, "transfer": { "success": "", @@ -950,8 +950,8 @@ } }, "create": { - "title": "", - "addToBoard": "" + "title": "Válassza ki a hozzáadni kívánt elemet", + "addToBoard": "Hozzáadás a táblához" }, "moveResize": { "title": "", @@ -963,67 +963,67 @@ "label": "Magasság" }, "xOffset": { - "label": "" + "label": "X eltolás" }, "yOffset": { - "label": "" + "label": "Y eltolás" } } }, "edit": { "title": "", "advancedOptions": { - "label": "", - "title": "" + "label": "Haladó beállítások", + "title": "Speciális tételbeállítások" }, "field": { "integrations": { "label": "Integrációk" }, "customCssClasses": { - "label": "" + "label": "Egyedi css osztályok" } } }, "remove": { "title": "", - "message": "" + "message": "Biztosan eltávolítja ezt az elemet?" } }, "widget": { "app": { - "name": "", - "description": "", + "name": "Alkalmazás", + "description": "Alkalmazást ágyaz be a táblába.", "option": { "appId": { - "label": "" + "label": "Válasszon alkalmazást" }, "openInNewTab": { "label": "Megnyitás új lapon" }, "showTitle": { - "label": "" + "label": "Alkalmazás nevének megjelenítése" }, "showDescriptionTooltip": { - "label": "" + "label": "Leírás elemleírás megjelenítése" }, "pingEnabled": { - "label": "" + "label": "Egyszerű ping engedélyezése" } }, "error": { "notFound": { - "label": "", - "tooltip": "" + "label": "Nincs alkalmazás", + "tooltip": "Nem választott ki érvényes alkalmazást" } } }, "bookmarks": { - "name": "", - "description": "", + "name": "Könyjelzők", + "description": "Több alkalmazáshivatkozást jelenít meg", "option": { "title": { - "label": "" + "label": "Cím" }, "layout": { "label": "Elrendezés", @@ -1035,19 +1035,19 @@ "label": "Függőleges" }, "grid": { - "label": "" + "label": "Rács" } } }, "items": { - "label": "", - "add": "" + "label": "Könyjelzők", + "add": "Könyvjelző hozzáadása" } } }, "dnsHoleSummary": { - "name": "", - "description": "", + "name": "DNS Blokkoló Összefoglaló", + "description": "Megjeleníti a DNS Blokkoló összefoglalóját", "option": { "layout": { "label": "Elrendezés", @@ -1059,27 +1059,27 @@ "label": "Függőleges" }, "grid": { - "label": "" + "label": "Rács" } } }, "usePiHoleColors": { - "label": "" + "label": "Használjon Pi-Hole színeket" } }, "error": { - "internalServerError": "", - "integrationsDisconnected": "" + "internalServerError": "Nem sikerült lekérni a DNS Hole összefoglalóját", + "integrationsDisconnected": "Nem állnak rendelkezésre adatok, minden integráció megszakadt" }, "data": { "adsBlockedToday": "Mai blokkolások", "adsBlockedTodayPercentage": "Mai blokkolások", "dnsQueriesToday": "Mai lekérdezések", - "domainsBeingBlocked": "" + "domainsBeingBlocked": "Domainek a tiltólistán" } }, "dnsHoleControls": { - "name": "", + "name": "DNS blokkolók ellenőrzése", "description": "A PiHole vagy az AdGuard vezérlése a műszerfalról", "option": { "layout": { @@ -1092,68 +1092,68 @@ "label": "Függőleges" }, "grid": { - "label": "" + "label": "Rács" } } }, "showToggleAllButtons": { - "label": "" + "label": "Összes gomb megjelenítése" } }, "error": { - "internalServerError": "" + "internalServerError": "Nem sikerült vezérelni a DNS Blokkolót" }, "controls": { - "enableAll": "", - "disableAll": "", - "setTimer": "", + "enableAll": "Az összes engedélyezése", + "disableAll": "Az összes tiltása", + "setTimer": "Időzítő beállítása", "set": "Beállít", "enabled": "Engedélyezve", "disabled": "Letiltva", - "processing": "", - "disconnected": "", + "processing": "Feldolgozás", + "disconnected": "Szétkapcsolt", "hours": "Óra", "minutes": "Perc", - "unlimited": "" + "unlimited": "Hagyja üresen a korlátlanhoz" } }, "clock": { - "name": "", + "name": "Dátum és idő", "description": "Megjeleníti az aktuális dátumot és időt.", "option": { "customTitleToggle": { - "label": "", - "description": "" + "label": "Egyedi cím/város megjelenítése", + "description": "Mutasson egy egyéni címet vagy a város/ország nevét az óra tetején." }, "customTitle": { - "label": "" + "label": "Cím" }, "is24HourFormat": { - "label": "", - "description": "" + "label": "24 órás formátum", + "description": "12 órás formátum helyett 24 órás formátumot használjon" }, "showSeconds": { - "label": "" + "label": "Másodpercek kijelzése" }, "useCustomTimezone": { - "label": "" + "label": "Használjon rögzített időzónát" }, "timezone": { "label": "Időzóna", - "description": "" + "description": "Válassza ki az IANA szabványnak megfelelő időzónát" }, "showDate": { - "label": "" + "label": "Mutasd a dátumot" }, "dateFormat": { - "label": "", - "description": "" + "label": "Dátum formátum", + "description": "Hogyan nézzen ki a dátum" } } }, "notebook": { "name": "Jegyzettömb", - "description": "", + "description": "Egy egyszerű notebook widget, amely támogatja a leértékelést", "option": { "showToolbar": { "label": "A markdown írást segítő eszköztár megjelenítése" @@ -1245,12 +1245,12 @@ } }, "error": { - "noUrl": "", + "noUrl": "Nincs megadva iFrame URL", "noBrowerSupport": "Az Ön böngészője nem támogatja a beágyazott kereteket. Kérjük, frissítse böngészőjét." } }, "smartHome-entityState": { - "name": "", + "name": "Egység állapota", "description": "", "option": { "entityId": { @@ -1323,8 +1323,8 @@ "description": "" }, "dateFormat": { - "label": "", - "description": "" + "label": "Dátum formátum", + "description": "Hogyan nézzen ki a dátum" } }, "kind": { @@ -1422,7 +1422,7 @@ "description": "" }, "app": { - "noData": "", + "noData": "Nem található alkalmazás", "description": "" }, "error": { @@ -1570,7 +1570,7 @@ "paused": "Szünet", "completed": "Kész", "failed": "", - "processing": "", + "processing": "Feldolgozás", "leeching": "", "stalled": "", "unknown": "Ismeretlen", @@ -1615,7 +1615,7 @@ "availability": { "unknown": "Ismeretlen", "pending": "", - "processing": "", + "processing": "Feldolgozás", "partiallyAvailable": "Részleges", "available": "Elérhető" }, @@ -1735,11 +1735,11 @@ "edit": { "notification": { "success": { - "title": "", + "title": "A módosítások sikeresen alkalmazva", "message": "" }, "error": { - "title": "", + "title": "Nem sikerült alkalmazni a változtatásokat", "message": "" } }, @@ -1989,7 +1989,7 @@ "notFound": { "title": "", "description": "", - "link": "", + "link": "Az összes tábla megtekintése", "notice": "" }, "homeBoard": { @@ -2029,8 +2029,8 @@ "boards": "Táblák", "apps": "Alkalmazások", "integrations": "Integrációk", - "searchEngies": "", - "medias": "", + "searchEngies": "Keresőmotorok", + "medias": "Média", "users": { "label": "Felhasználók", "items": { @@ -2297,8 +2297,8 @@ "defaultColorScheme": { "label": "", "options": { - "light": "", - "dark": "" + "light": "Világos", + "dark": "Sötét" } } }, @@ -2338,7 +2338,7 @@ "label": "" }, "downloads": { - "label": "" + "label": "Letöltések" }, "mediaRequestStats": { "label": "" @@ -2564,7 +2564,7 @@ } }, "search-engines": { - "label": "", + "label": "Keresőmotorok", "new": { "label": "" }, @@ -2573,7 +2573,7 @@ } }, "medias": { - "label": "" + "label": "Média" }, "apps": { "label": "Alkalmazások", @@ -2634,7 +2634,7 @@ "label": "" }, "edit": { - "label": "" + "label": "Alkalmazás szerkesztése" } }, "detail": { @@ -2721,7 +2721,7 @@ "help": "", "group": { "searchEngine": { - "title": "", + "title": "Keresőmotorok", "children": { "action": { "search": { @@ -2828,7 +2828,7 @@ "label": "" }, "manageLog": { - "label": "" + "label": "Naplók megtekintése" }, "manageTask": { "label": "" @@ -2905,7 +2905,7 @@ }, "page": { "list": { - "title": "", + "title": "Keresőmotorok", "noResults": { "title": "", "action": "" @@ -2929,11 +2929,11 @@ "title": "", "notification": { "success": { - "title": "", + "title": "A módosítások sikeresen alkalmazva", "message": "" }, "error": { - "title": "", + "title": "Nem sikerült alkalmazni a változtatásokat", "message": "" } }, diff --git a/packages/translation/src/lang/it.json b/packages/translation/src/lang/it.json index 9499beda6..cd20c25ca 100644 --- a/packages/translation/src/lang/it.json +++ b/packages/translation/src/lang/it.json @@ -2,177 +2,177 @@ "init": { "step": { "start": { - "title": "", - "subtitle": "", - "description": "", + "title": "Ti diamo il benvenuto su Homarr", + "subtitle": "Iniziamo con la creazione della tua istanza di Homarr.", + "description": "Per iniziare, seleziona come vuoi configurare la tua istanza di Homarr.", "action": { - "scratch": "", - "importOldmarr": "" + "scratch": "Inizia da zero", + "importOldmarr": "Importa da Homarr prima della 1.0" } }, "import": { - "title": "", - "subtitle": "", + "title": "Importa dati", + "subtitle": "Puoi importare dati da un'istanza Homarr esistente.", "dropzone": { - "title": "", - "description": "" + "title": "Trascina il file zip qui o fai clic per sfogliare", + "description": "Lo zip caricato sarà elaborato e sarai in grado di selezionare quello che vuoi importare" }, "fileInfo": { "action": { - "change": "" + "change": "Cambia file" } }, "importSettings": { - "title": "", - "description": "" + "title": "Importa impostazioni", + "description": "Configura le azioni d'importazione" }, "boardSelection": { - "title": "", - "description": "", + "title": "Trovate {count} board", + "description": "Scegli tutte le board con la dimensione che vuoi importare", "action": { - "selectAll": "", - "unselectAll": "" + "selectAll": "Seleziona tutto", + "unselectAll": "Deseleziona tutto" } }, "summary": { - "title": "", - "description": "", + "title": "Riepilogo", + "description": "Nel riepilogo sottostante puoi vedere cosa verrà importato", "action": { - "import": "" + "import": "Conferma importazione e continua" }, "entities": { "apps": "Applicazioni", - "boards": "", - "integrations": "", - "credentialUsers": "" + "boards": "Board", + "integrations": "Integrazioni", + "credentialUsers": "Credential users" } }, "tokenModal": { - "title": "", + "title": "Inserisci il token d'importazione", "field": { "token": { - "label": "", - "description": "" + "label": "Token", + "description": "Inserisci il token d'importazione mostrato dalla tua precedente istanza homarr" } }, "notification": { "error": { - "title": "", - "message": "" + "title": "Token non valido", + "message": "Token inserito non valido" } } } }, "user": { - "title": "", - "subtitle": "", + "title": "Amministratore", + "subtitle": "Specifica le credenziali per l'amministratore.", "notification": { "success": { - "title": "", - "message": "" + "title": "Utente creato", + "message": "L'utente è stato creato correttamente" }, "error": { - "title": "" + "title": "Creazione dell'utente non riuscita" } } }, "group": { - "title": "", - "subtitle": "", + "title": "Gruppo esterno", + "subtitle": "Specifica il gruppo da utilizzare per gli utenti esterni.", "form": { "name": { - "label": "", - "description": "" + "label": "Nome gruppo", + "description": "Il nome deve corrispondere al gruppo admin del provider esterno" } } }, "settings": { "title": "Impostazioni", - "subtitle": "" + "subtitle": "Configura le impostazioni del server." }, "finish": { - "title": "", - "subtitle": "", - "description": "", + "title": "Termina configurazione", + "subtitle": "È tutto pronto per iniziare!", + "description": "Hai completato con successo la configurazione. Ora puoi iniziare a usare Homarr. Seleziona la prossima azione:", "action": { - "goToBoard": "", - "createBoard": "", - "inviteUser": "", - "docs": "" + "goToBoard": "Vai alla board: {name}", + "createBoard": "Crea la tua prima board", + "inviteUser": "Invita altri utenti", + "docs": "Leggi la documentazione" } } }, - "backToStart": "" + "backToStart": "Torna all'inizio" }, "user": { "title": "Utenti", "name": "Utente", "page": { "login": { - "title": "", - "subtitle": "" + "title": "Accedi al tuo account", + "subtitle": "Felice di rivederti! Inserisci le tue credenziali" }, "invite": { - "title": "", - "subtitle": "", - "description": "" + "title": "Unisciti ad Homarr", + "subtitle": "Ti diamo il benvenuto su Homarr! Crea il tuo account", + "description": "Hai ricevuto un invito da {username}" }, "init": { - "title": "", - "subtitle": "" + "title": "Nuova installazione di Homarr", + "subtitle": "Crea l'utenza amministrativa iniziale" } }, "field": { "email": { "label": "E-mail", - "verified": "" + "verified": "Verificato" }, "username": { "label": "Nome utente" }, "password": { - "label": "", + "label": "Password", "requirement": { - "length": "", + "length": "Include almeno 8 caratteri", "lowercase": "Include lettera minuscola", "uppercase": "Include lettera maiuscola", "number": "Include numero", - "special": "" + "special": "Include un simbolo speciale" } }, "passwordConfirm": { "label": "Conferma password" }, "previousPassword": { - "label": "" + "label": "Password precedente" }, "homeBoard": { - "label": "" + "label": "Home board" }, "pingIconsEnabled": { - "label": "" + "label": "Usa le icone per i ping" } }, "error": { - "usernameTaken": "" + "usernameTaken": "Nome utente già in uso" }, "action": { "login": { "label": "Accedi", - "labelWith": "", + "labelWith": "Accedi con {provider}", "notification": { "success": { - "title": "", - "message": "" + "title": "Accesso completato", + "message": "Hai effettuato l'accesso" }, "error": { - "title": "", - "message": "" + "title": "Login fallito", + "message": "Accesso non riuscito" } }, "forgotPassword": { - "label": "", - "description": "" + "label": "Password dimenticata?", + "description": "Un amministratore può utilizzare il seguente comando per reimpostare la password:" } }, "register": { @@ -180,81 +180,81 @@ "notification": { "success": { "title": "Account creato", - "message": "" + "message": "Accedi per continuare" }, "error": { - "title": "", - "message": "" + "title": "Creazione dell’account non riuscita", + "message": "Il tuo account non può essere creato" } } }, "create": "Crea utente", "changePassword": { - "label": "", + "label": "Cambia password", "notification": { "success": { - "message": "" + "message": "Password modificata" }, "error": { - "message": "" + "message": "Impossibile cambiare la password" } } }, "changeHomeBoard": { "notification": { "success": { - "message": "" + "message": "Home board modificata con successo" }, "error": { - "message": "" + "message": "Impossibile cambiare la home board" } } }, "changeFirstDayOfWeek": { "notification": { "success": { - "message": "" + "message": "Primo giorno della settimana cambiato" }, "error": { - "message": "" + "message": "Impossibile modificare il primo giorno della settimana" } } }, "changePingIconsEnabled": { "notification": { "success": { - "message": "" + "message": "Icone ping modificate con successo" }, "error": { - "message": "" + "message": "Impossibile attivare o disattivare le icone di ping" } } }, "manageAvatar": { "changeImage": { - "label": "", + "label": "Cambia immagine", "notification": { "success": { - "message": "" + "message": "Immagine cambiata con successo" }, "error": { - "message": "" + "message": "Impossibile cambiare immagine" }, "toLarge": { - "title": "", - "message": "" + "title": "Immagine troppo grande", + "message": "La dimensione massima dell'immagine è {size}" } } }, "removeImage": { - "label": "", - "confirm": "", + "label": "Rimuovi immagine", + "confirm": "Vuoi davvero rimuovere l'immagine?", "notification": { "success": { - "message": "" + "message": "Immagine rimossa" }, "error": { - "message": "" + "message": "Impossibile rimuovere immagine" } } } @@ -262,42 +262,42 @@ "editProfile": { "notification": { "success": { - "message": "" + "message": "Profilo aggiornato" }, "error": { - "message": "" + "message": "Impossibile aggiornare il profilo" } } }, "delete": { - "label": "", - "description": "", - "confirm": "" + "label": "Elimina utente definitivamente", + "description": "Elimina questo utente, comprese le sue preferenze. Non eliminerà nessuna board. L'utente non verrà avvisato.", + "confirm": "Hai la certezza di voler eliminare l'utente {username} con le sue preferenze?" }, "select": { - "label": "", - "notFound": "" + "label": "Seleziona utente", + "notFound": "Nessun utente trovato" }, "transfer": { - "label": "" + "label": "Seleziona nuovo proprietario" } } }, "group": { - "title": "", - "name": "", - "search": "", + "title": "Gruppi", + "name": "Gruppo", + "search": "Trova un gruppo", "field": { "name": "Nome", - "members": "" + "members": "Membri" }, "permission": { "admin": { - "title": "", + "title": "Amministratore", "item": { "admin": { - "label": "", - "description": "" + "label": "Amministratore", + "description": "I membri con questo permesso hanno pieno accesso a tutte le funzionalità e impostazioni" } } }, @@ -305,20 +305,20 @@ "title": "Applicazioni", "item": { "create": { - "label": "", - "description": "" + "label": "Creare app", + "description": "Consenti ai membri di creare app" }, "use-all": { - "label": "", - "description": "" + "label": "Utilizzare tutte le app", + "description": "Consenti ai membri di aggiungere qualsiasi app alle loro board" }, "modify-all": { - "label": "", - "description": "" + "label": "Modificare tutte le app", + "description": "Consenti ai membri di modificare tutte le app" }, "full-all": { - "label": "", - "description": "" + "label": "Accesso completo all'app", + "description": "Consenti ai membri di gestire, utilizzare ed eliminare qualsiasi app" } } }, @@ -326,80 +326,80 @@ "title": "", "item": { "create": { - "label": "", - "description": "" + "label": "Creare schede", + "description": "Consenti ai membri di creare schede" }, "view-all": { - "label": "", - "description": "" + "label": "Visualizzare tutte le schede", + "description": "Consenti ai membri di visualizzare tutte le schede" }, "modify-all": { - "label": "", - "description": "" + "label": "Modificare tutte le schede", + "description": "Consenti ai membri di modificare tutte le schede (non include il controllo degli accessi e la danger zone)" }, "full-all": { - "label": "", - "description": "" + "label": "Accesso completo alla scheda", + "description": "Consenti ai membri di visualizzare, modificare ed eliminare tutte le schede (incluso il controllo degli accessi e la zona pericolosa)" } } }, "integration": { - "title": "", + "title": "Integrazioni", "item": { "create": { - "label": "", - "description": "" + "label": "Creare integrazioni", + "description": "Consenti ai membri di creare integrazioni" }, "use-all": { - "label": "", - "description": "" + "label": "Utilizzare tutte le integrazioni", + "description": "Consente ai membri di aggiungere qualsiasi integrazione alle loro schede" }, "interact-all": { - "label": "", - "description": "" + "label": "Interagire con qualsiasi integrazione", + "description": "Consenti ai membri di interagire con qualsiasi integrazione" }, "full-all": { - "label": "", - "description": "" + "label": "Accesso completo integrativo", + "description": "Consenti ai membri di gestire, utilizzare e interagire con qualsiasi integrazione" } } }, "media": { - "title": "", + "title": "Media", "item": { "upload": { - "label": "", - "description": "" + "label": "Caricare i media", + "description": "Consenti ai membri di caricare contenuti multimediali" }, "view-all": { - "label": "", - "description": "" + "label": "Visualizzare tutti i media", + "description": "Consenti ai membri di visualizzare tutti i media" }, "full-all": { - "label": "", - "description": "" + "label": "Accesso completo ai media", + "description": "Consenti ai membri di gestire ed eliminare qualsiasi contenuto multimediale" } } }, "other": { - "title": "", + "title": "Altro", "item": { "view-logs": { - "label": "", - "description": "" + "label": "Visualizza log", + "description": "Consentire ai membri di visualizzare i log" } } }, "search-engine": { - "title": "", + "title": "Motori di ricerca", "item": { "create": { - "label": "", - "description": "" + "label": "Creare motori di ricerca", + "description": "Consenti ai membri di creare motori di ricerca" }, "modify-all": { - "label": "", - "description": "" + "label": "Modificare tutti i motori di ricerca", + "description": "Consenti ai membri di modificare tutti i motori di ricerca" }, "full-all": { "label": "", @@ -448,43 +448,43 @@ "confirm": "" }, "delete": { - "label": "", - "description": "", - "confirm": "", + "label": "Elimina gruppo", + "description": "Una volta eliminato un gruppo, non si può tornare indietro. Si prega di essere certi.", + "confirm": "Hai la certezza di voler eliminare il gruppo {name}?", "notification": { "success": { - "message": "" + "message": "Gruppo {name} eliminato" }, "error": { - "message": "" + "message": "Impossibile eliminare il gruppo {name}" } } }, "changePermissions": { "notification": { "success": { - "title": "", - "message": "" + "title": "Permessi salvati", + "message": "I permessi sono stati salvati" }, "error": { - "title": "", - "message": "" + "title": "Permessi non salvati", + "message": "I permessi non sono stati salvati" } } }, "update": { "notification": { "success": { - "message": "" + "message": "Il gruppo {name} è stato salvato" }, "error": { - "message": "" + "message": "Impossibile salvare il gruppo {name}" } } }, "select": { - "label": "", - "notFound": "" + "label": "Seleziona gruppo", + "notFound": "Nessun gruppo trovato" } } }, @@ -493,19 +493,19 @@ "list": { "title": "Applicazioni", "noResults": { - "title": "", - "action": "" + "title": "Non ci sono ancora app", + "action": "Crea la tua prima app" } }, "create": { - "title": "", + "title": "Nuova app", "notification": { "success": { - "title": "", - "message": "" + "title": "Creazione riuscita", + "message": "App creata" }, "error": { - "title": "", + "title": "Creazione fallita", "message": "" } } @@ -552,56 +552,56 @@ "action": { "select": { "label": "", - "notFound": "" + "notFound": "Nessuna app trovata" } } }, "integration": { "page": { "list": { - "title": "", - "search": "", + "title": "Integrazioni", + "search": "Cerca integrazioni", "noResults": { - "title": "" + "title": "Non ci sono ancora integrazioni" } }, "create": { - "title": "", + "title": "Nuova integrazione di {name}", "notification": { "success": { "title": "", - "message": "" + "message": "L'integrazione è stata creata con successo" }, "error": { "title": "", - "message": "" + "message": "Non è stato possibile creare l'integrazione" } } }, "edit": { - "title": "", + "title": "Modifica integrazione {name}", "notification": { "success": { "title": "", - "message": "" + "message": "L'integrazione è stata salvata correttamente" }, "error": { "title": "", - "message": "" + "message": "Non è stato possibile salvare l'integrazione" } } }, "delete": { - "title": "", - "message": "", + "title": "Elimina integrazione", + "message": "Hai la certezza di voler eliminare l'integrazione {name}?", "notification": { "success": { "title": "", - "message": "" + "message": "L'integrazione è stata eliminata correttamente" }, "error": { "title": "", - "message": "" + "message": "Impossibile eliminare l'integrazione" } } } @@ -615,84 +615,84 @@ } }, "action": { - "create": "" + "create": "Nuova integrazione" }, "testConnection": { "action": { - "create": "", - "edit": "" + "create": "Prova la connessione e crea", + "edit": "Prova la connessione e salva" }, - "alertNotice": "", + "alertNotice": "Il pulsante Salva è abilitato una volta stabilita una connessione con successo", "notification": { "success": { - "title": "", - "message": "" + "title": "Connessione riuscita", + "message": "La connessione è stata stabilita con successo" }, "invalidUrl": { "title": "URL invalido", - "message": "" + "message": "L'URL non è valido" }, "secretNotDefined": { - "title": "", - "message": "" + "title": "Credenziali mancanti", + "message": "Non tutte le credenziali sono state fornite" }, "invalidCredentials": { - "title": "", - "message": "" + "title": "Credenziali non valide", + "message": "Le credenziali non sono valide" }, "commonError": { - "title": "", - "message": "" + "title": "Connessione fallita", + "message": "La connessione non è stata stabilita" }, "badRequest": { "title": "", - "message": "" + "message": "La richiesta era malformata" }, "unauthorized": { - "title": "", - "message": "" + "title": "Non Autorizzato", + "message": "Probabilmente le credenziali sono sbagliate" }, "forbidden": { "title": "", - "message": "" + "message": "Probabilmente mancano i permessi" }, "notFound": { "title": "", - "message": "" + "message": "Probabilmente url o percorso errati" }, "internalServerError": { - "title": "", - "message": "" + "title": "Errore server interno", + "message": "Il server ha riscontrato un errore" }, "serviceUnavailable": { - "title": "", - "message": "" + "title": "Il servizio non è disponibile", + "message": "Il server non è attualmente disponibile" }, "connectionAborted": { - "title": "", - "message": "" + "title": "Connessione interrotta", + "message": "La connessione è stata interrotta" }, "domainNotFound": { - "title": "", - "message": "" + "title": "Dominio non trovato", + "message": "Il dominio non è stato trovato" }, "connectionRefused": { - "title": "", - "message": "" + "title": "Connessione rifiutata", + "message": "La connessione è stata rifiutata" }, "invalidJson": { - "title": "", - "message": "" + "title": "JSON non valido", + "message": "La risposta non era un JSON valido" }, "wrongPath": { - "title": "", - "message": "" + "title": "Percorso sbagliato", + "message": "Il percorso probabilmente non è corretto" } } }, "secrets": { "title": "", - "lastUpdated": "", + "lastUpdated": "Ultimo aggiornamento {date}", "notSet": { "label": "", "tooltip": "" @@ -724,11 +724,11 @@ "permission": { "use": "", "interact": "", - "full": "" + "full": "Accesso completo integrativo" } }, "media": { - "plural": "", + "plural": "Media", "search": "", "field": { "name": "Nome", @@ -861,12 +861,12 @@ }, "zod": { "errors": { - "default": "Questo campo non è valido", - "required": "Questo campo è obbligatorio", + "default": "Campo non valido", + "required": "Campo obbligatorio", "string": { "startsWith": "Questo campo deve iniziare con {startsWith}", "endsWith": "Questo campo deve terminare con {endsWith}", - "includes": "Questo campo deve includere {includes}", + "includes": "Questo campo deve contenere {includes}", "invalidEmail": "" }, "tooSmall": { @@ -978,7 +978,7 @@ }, "field": { "integrations": { - "label": "" + "label": "Integrazioni" }, "customCssClasses": { "label": "" @@ -1168,9 +1168,9 @@ "controls": { "bold": "Grassetto", "italic": "Corsivo", - "strikethrough": "Testo barrato", + "strikethrough": "Barrato", "underline": "Sottolineato", - "colorText": "Testo a colori", + "colorText": "Colore testo", "colorHighlight": "Testo evidenziato colorato", "code": "Codice", "clear": "Rimuovi formattazione", @@ -1180,7 +1180,7 @@ "horizontalLine": "Linea orizzontale", "bulletList": "Elenco puntato", "orderedList": "Elenco ordinato", - "checkList": "Elenco di controllo", + "checkList": "Checklist", "increaseIndent": "Aumenta indentatura", "decreaseIndent": "Diminuisci indentatura", "link": "", @@ -1188,7 +1188,7 @@ "image": "Incorpora immagine", "addTable": "Aggiungi tabella", "deleteTable": "Elimina tabella", - "colorCell": "Colore cella", + "colorCell": "Colora Cella", "mergeCell": "Attiva/disattiva unione celle", "addColumnLeft": "Aggiungi colonna prima", "addColumnRight": "Aggiungi colonna dopo", @@ -1199,7 +1199,7 @@ }, "align": { "left": "Sinistra", - "center": "Centra", + "center": "Centro", "right": "Destra" }, "popover": { @@ -1272,7 +1272,7 @@ "description": "", "option": { "displayName": { - "label": "Visualizza nome" + "label": "Nome visualizzato" }, "automationId": { "label": "ID automazione" @@ -1304,7 +1304,7 @@ }, "weather": { "name": "Meteo", - "description": "Mostra le informazioni meteo attuali di una località.", + "description": "Mostra le attuali informazioni meteo di un luogo.", "option": { "isFormatFahrenheit": { "label": "" @@ -1336,7 +1336,7 @@ "rain": "Pioggia", "freezingRain": "Pioggia gelata", "snowFall": "Neve", - "snowGrains": "Neve tonda", + "snowGrains": "Grandine", "rainShowers": "Rovesci", "snowShowers": "Forti nevicate", "thunderstorm": "Temporale", @@ -1345,21 +1345,21 @@ } }, "indexerManager": { - "name": "Stato del gestore dell'indicizzatore", + "name": "Stato dell'index manager", "description": "", "option": { "openIndexerSiteInNewTab": { "label": "" } }, - "title": "Gestore dell'indicizzatore", - "testAll": "Prova Tutto", + "title": "Index manager", + "testAll": "Prova tutto", "error": { "internalServerError": "" } }, "healthMonitoring": { - "name": "Monitoraggio dello stato del sistema", + "name": "Monitoraggio Salute di Sistema", "description": "Visualizza informazioni sulla salute e stato dei tuoi sistemi.", "option": { "fahrenheit": { @@ -1422,7 +1422,7 @@ "description": "" }, "app": { - "noData": "", + "noData": "Nessuna app trovata", "description": "" }, "error": { @@ -1432,8 +1432,8 @@ "option": {} }, "video": { - "name": "Flusso Video", - "description": "Incorpora un flusso video o un video da una videocamera o da un sito web", + "name": "Stream Video", + "description": "Incorpora uno stream video o un video da una videocamera o da un sito web", "option": { "feedUrl": { "label": "URL del feed" @@ -1601,7 +1601,7 @@ }, "mediaRequests-requestList": { "name": "", - "description": "Vedi un elenco di tutte le richieste multimediali dalla tua istanza Overseerr o Jellyseerr", + "description": "Visualizza un elenco di tutte le richieste media dalla tua istanza Overseerr o Jellyseerr", "option": { "linksTargetNewTab": { "label": "Apri i link in nuova scheda" @@ -1623,11 +1623,11 @@ }, "mediaRequests-requestStats": { "name": "", - "description": "Statistiche sulle richieste multimediali", + "description": "Statistiche sulle richieste dei media", "option": {}, "titles": { "stats": { - "main": "Statistiche Multimediali", + "main": "Statistiche Media", "approved": "Già approvato", "pending": "Approvazioni In Attesa", "processing": "", @@ -1638,7 +1638,7 @@ "total": "Totale" }, "users": { - "main": "Utenti Top", + "main": "Top Utenti", "requests": "" } } @@ -1655,7 +1655,7 @@ } }, "tab": { - "workers": "Worker", + "workers": "Workers", "queue": "Coda", "statistics": "Statistiche" }, @@ -1664,8 +1664,8 @@ "title": "", "queued": "In coda", "status": { - "healthy": "Sano", - "unhealthy": "Non integro" + "healthy": "Normale funzionamento", + "unhealthy": "Compromesso" } }, "panel": { @@ -1822,7 +1822,7 @@ "label": "" }, "backgroundImageAttachment": { - "label": "Allegato immagine di sfondo", + "label": "Immagine di background", "option": { "fixed": { "label": "", @@ -1856,7 +1856,7 @@ } }, "backgroundImageSize": { - "label": "Dimensioni dell'immagine di sfondo", + "label": "Dimensioni dell'immagine di background", "option": { "cover": { "label": "", @@ -1910,7 +1910,7 @@ "title": "" }, "background": { - "title": "Sfondo" + "title": "Background" }, "color": { "title": "" @@ -1981,7 +1981,7 @@ }, "error": { "noBoard": { - "title": "", + "title": "Ti diamo il benvenuto su Homarr", "description": "", "link": "", "notice": "" @@ -1989,7 +1989,7 @@ "notFound": { "title": "", "description": "", - "link": "", + "link": "Visualizzare tutte le schede", "notice": "" }, "homeBoard": { @@ -2028,15 +2028,15 @@ "home": "", "boards": "", "apps": "Applicazioni", - "integrations": "", - "searchEngies": "", - "medias": "", + "integrations": "Integrazioni", + "searchEngies": "Motori di ricerca", + "medias": "Media", "users": { "label": "Utenti", "items": { "manage": "Gestisci", "invites": "Inviti", - "groups": "" + "groups": "Gruppi" } }, "tools": { @@ -2054,7 +2054,7 @@ "items": { "documentation": "Documentazione", "submitIssue": "", - "discord": "Discord della community", + "discord": "Community Discord", "sourceCode": "" } }, @@ -2067,9 +2067,9 @@ "board": "", "user": "Utenti", "invite": "Inviti", - "integration": "", + "integration": "Integrazioni", "app": "Applicazioni", - "group": "" + "group": "Gruppi" }, "statisticLabel": { "boards": "", @@ -2160,7 +2160,7 @@ "label": "Sicurezza" }, "groups": { - "label": "", + "label": "Gruppi", "title": "", "description": "" }, @@ -2168,10 +2168,10 @@ "label": "" }, "completed": { - "title": "" + "title": "Utente creato" }, "error": { - "title": "" + "title": "Creazione dell'utente non riuscita" } }, "action": { @@ -2184,7 +2184,7 @@ "action": { "new": { "title": "", - "description": "Dopo la scadenza, un invito non sarà più valido e il destinatario dell'invito non potrà creare un account." + "description": "Una volta scaduto, un invito non sarà più valido e il destinatario non potrà creare un account." }, "copy": { "title": "", @@ -2194,7 +2194,7 @@ }, "delete": { "title": "Elimina invito", - "description": "Siete sicuri di voler eliminare questo invito? Gli utenti con questo link non potranno più creare un account utilizzando tale link." + "description": "Hai la certezza di voler eliminare questo invito? Gli utenti con questo link non potranno più creare un account utilizzandolo." } }, "field": { @@ -2223,7 +2223,7 @@ "ownerOfGroupDeleted": "" }, "members": { - "title": "", + "title": "Membri", "search": "", "notFound": "" }, @@ -2332,7 +2332,7 @@ "label": "" }, "mediaServer": { - "label": "Server multimediale" + "label": "Media Server" }, "mediaOrganizer": { "label": "" @@ -2435,7 +2435,7 @@ "created": "Creato", "running": "In esecuzione", "paused": "In pausa", - "restarting": "Riavvio", + "restarting": "Riavvio in corso", "exited": "", "removing": "Rimozione in corso", "dead": "" @@ -2529,7 +2529,7 @@ }, "tab": { "user": "Utenti", - "group": "", + "group": "Gruppi", "inherited": "" }, "field": { @@ -2537,7 +2537,7 @@ "label": "Utente" }, "group": { - "label": "" + "label": "Gruppo" }, "permission": { "label": "" @@ -2555,7 +2555,7 @@ "label": "" }, "integrations": { - "label": "", + "label": "Integrazioni", "edit": { "label": "Modifica" }, @@ -2564,7 +2564,7 @@ } }, "search-engines": { - "label": "", + "label": "Motori di ricerca", "new": { "label": "" }, @@ -2573,7 +2573,7 @@ } }, "medias": { - "label": "" + "label": "Media" }, "apps": { "label": "Applicazioni", @@ -2593,7 +2593,7 @@ "security": "Sicurezza", "board": "", "groups": { - "label": "" + "label": "Gruppi" }, "invites": { "label": "Inviti" @@ -2662,7 +2662,7 @@ } }, "integration": { - "title": "" + "title": "Integrazioni" } } }, @@ -2721,7 +2721,7 @@ "help": "", "group": { "searchEngine": { - "title": "", + "title": "Motori di ricerca", "children": { "action": { "search": { @@ -2775,7 +2775,7 @@ "label": "" }, "discord": { - "label": "Discord della community" + "label": "Community Discord" } } } @@ -2828,7 +2828,7 @@ "label": "" }, "manageLog": { - "label": "" + "label": "Visualizza log" }, "manageTask": { "label": "" @@ -2866,7 +2866,7 @@ } }, "group": { - "title": "", + "title": "Gruppi", "children": { "action": { "detail": { @@ -2905,7 +2905,7 @@ }, "page": { "list": { - "title": "", + "title": "Motori di ricerca", "noResults": { "title": "", "action": "" diff --git a/packages/translation/src/lang/ru.json b/packages/translation/src/lang/ru.json index e6b261832..8c70eafae 100644 --- a/packages/translation/src/lang/ru.json +++ b/packages/translation/src/lang/ru.json @@ -2093,7 +2093,7 @@ "setHomeBoard": { "label": "Сделать домашней панелью", "badge": { - "label": "Домашняя", + "label": "Главная", "tooltip": "Эта панель будет показываться как ваша домашняя панель" } }, @@ -2312,70 +2312,70 @@ }, "tool": { "tasks": { - "title": "", + "title": "Задачи", "status": { - "idle": "", - "running": "Работает", + "idle": "Ожидание", + "running": "Выполняется", "error": "Ошибка" }, "job": { "iconsUpdater": { - "label": "" + "label": "Обновление иконок" }, "analytics": { - "label": "" + "label": "Аналитика" }, "smartHomeEntityState": { - "label": "" + "label": "Состояние объектов умного дома" }, "ping": { - "label": "" + "label": "Проверка доступности" }, "mediaServer": { "label": "Медиасервер" }, "mediaOrganizer": { - "label": "" + "label": "Организация медиафайлов" }, "downloads": { - "label": "" + "label": "Загрузки" }, "mediaRequestStats": { - "label": "" + "label": "Статистика запросов медиаконтента" }, "mediaRequestList": { - "label": "" + "label": "Список запросов медиаконтента" }, "rssFeeds": { - "label": "" + "label": "RSS-ленты" }, "indexerManager": { - "label": "" + "label": "Управление индексаторами" }, "healthMonitoring": { - "label": "" + "label": "Мониторинг состояния" }, "dnsHole": { - "label": "" + "label": "Данные DNS-фильтра" }, "sessionCleanup": { - "label": "" + "label": "Очистка сессий" }, "updateChecker": { - "label": "" + "label": "Проверка обновлений" }, "mediaTranscoding": { - "label": "" + "label": "Перекодирование медиафайлов" } } }, "api": { - "title": "", + "title": "API", "modal": { "createApiToken": { - "title": "", - "description": "", - "button": "" + "title": "API-токен создан", + "description": "API-токен создан. Этот токен зашифрован в базе данных и будет показан только один раз. После закрытия окна его нельзя будет восстановить.", + "button": "Копировать и закрыть" } }, "tab": { @@ -2383,15 +2383,15 @@ "label": "Документация" }, "apiKey": { - "label": "", - "title": "", + "label": "Аутентификация", + "title": "API-ключи", "button": { - "createApiToken": "" + "createApiToken": "Создать API-токен" }, "table": { "header": { - "id": "", - "createdBy": "" + "id": "ID", + "createdBy": "Создан пользователем" } } } @@ -2399,20 +2399,20 @@ } }, "about": { - "version": "", - "text": "", + "version": "Версия {version}", + "text": "Homarr — это проект с открытым исходным кодом, поддерживаемый сообществом и развиваемый добровольцами. Благодаря этим людям Homarr остаётся растущим проектом с 2021 года. Наша команда работает над Homarr полностью удалённо из разных стран в своё свободное время без какой-либо компенсации.", "accordion": { "contributors": { - "title": "", - "subtitle": "" + "title": "Участники проекта", + "subtitle": "{count} поддерживают код и Homarr" }, "translators": { - "title": "", - "subtitle": "" + "title": "Переводчики", + "subtitle": "{count} помогают с переводами на разные языки" }, "libraries": { - "title": "", - "subtitle": "" + "title": "Библиотеки", + "subtitle": "{count} используются в коде Homarr" } } } @@ -2421,9 +2421,9 @@ "docker": { "title": "Контейнеры", "table": { - "updated": "", - "search": "", - "selected": "" + "updated": "Обновлено {when}", + "search": "Поиск среди {count} контейнеров", + "selected": "Выбрано {selectCount} из {totalCount} контейнеров" }, "field": { "name": { @@ -2434,11 +2434,11 @@ "option": { "created": "Создан", "running": "Работает", - "paused": "Приостановлено", - "restarting": "Перезапуск", - "exited": "", - "removing": "Удаление", - "dead": "" + "paused": "Приостановлен", + "restarting": "Перезапускается", + "exited": "Остановлен", + "removing": "Удаляется", + "dead": "Нерабочий" } }, "containerImage": { @@ -2453,12 +2453,12 @@ "label": "Запустить", "notification": { "success": { - "title": "", - "message": "" + "title": "Контейнеры запущены", + "message": "Контейнеры успешно запущены" }, "error": { - "title": "", - "message": "" + "title": "Не удалось запустить контейнеры", + "message": "Не удалось запустить контейнеры" } } }, @@ -2466,12 +2466,12 @@ "label": "Остановить", "notification": { "success": { - "title": "", - "message": "" + "title": "Контейнеры остановлены", + "message": "Контейнеры успешно остановлены" }, "error": { - "title": "", - "message": "" + "title": "Не удалось остановить контейнеры", + "message": "Не удалось остановить контейнеры" } } }, @@ -2479,12 +2479,12 @@ "label": "Перезапустить", "notification": { "success": { - "title": "", - "message": "" + "title": "Контейнеры перезапущены", + "message": "Контейнеры успешно перезапущены" }, "error": { - "title": "", - "message": "" + "title": "Не удалось перезапустить контейнеры", + "message": "Не удалось перезапустить контейнеры" } } }, @@ -2492,45 +2492,45 @@ "label": "Удалить", "notification": { "success": { - "title": "", - "message": "" + "title": "Контейнеры удалены", + "message": "Контейнеры успешно удалены" }, "error": { - "title": "", - "message": "" + "title": "Не удалось удалить контейнеры", + "message": "Не удалось удалить контейнеры" } } }, "refresh": { - "label": "", + "label": "Обновить", "notification": { "success": { - "title": "", - "message": "" + "title": "Контейнеры обновлены", + "message": "Отображаются актуальные данные" }, "error": { - "title": "", - "message": "" + "title": "Не удалось обновить контейнеры", + "message": "Произошла ошибка при обновлении данных о контейнерах" } } } }, "error": { - "internalServerError": "" + "internalServerError": "Произошла ошибка при обновлении данных о контейнерах" } }, "permission": { - "title": "", + "title": "Права доступа", "userSelect": { - "title": "" + "title": "Добавить права для пользователя" }, "groupSelect": { - "title": "" + "title": "Добавить права для группы" }, "tab": { "user": "Пользователи", "group": "Группы", - "inherited": "" + "inherited": "Унаследованные группы" }, "field": { "user": { @@ -2540,12 +2540,12 @@ "label": "Группа" }, "permission": { - "label": "" + "label": "Права доступа" } }, "action": { - "saveUser": "", - "saveGroup": "" + "saveUser": "Сохранить права пользователя", + "saveGroup": "Сохранить права группы" } }, "navigationStructure": { @@ -2560,13 +2560,13 @@ "label": "Редактировать" }, "new": { - "label": "" + "label": "Новая" } }, "search-engines": { "label": "Поисковые системы", "new": { - "label": "" + "label": "Новая" }, "edit": { "label": "Редактировать" @@ -2578,7 +2578,7 @@ "apps": { "label": "Приложения", "new": { - "label": "" + "label": "Новое" }, "edit": { "label": "Редактировать" @@ -2589,7 +2589,7 @@ "create": { "label": "Создать" }, - "general": "Основное", + "general": "Общие", "security": "Безопасность", "board": "Панели", "groups": { @@ -2602,10 +2602,10 @@ "tools": { "label": "Инструменты", "docker": { - "label": "" + "label": "Docker" }, "logs": { - "label": "" + "label": "Логи" } }, "settings": { @@ -2617,28 +2617,28 @@ } }, "search": { - "placeholder": "", - "nothingFound": "", + "placeholder": "Найдётся все", + "nothingFound": "Ничего не найдено", "error": { - "fetch": "" + "fetch": "Произошла ошибка при получении данных" }, "mode": { "appIntegrationBoard": { - "help": "", + "help": "Поиск приложений, интеграций или панелей", "group": { "app": { "title": "Приложения", "children": { "action": { "open": { - "label": "" + "label": "Открыть URL приложения" }, "edit": { - "label": "Редактирование приложения" + "label": "Редактировать приложение" } }, "detail": { - "title": "" + "title": "Выберите действие для приложения" } } }, @@ -2647,17 +2647,17 @@ "children": { "action": { "open": { - "label": "" + "label": "Открыть панель" }, "homeBoard": { - "label": "" + "label": "Сделать домашней панелью" }, "settings": { - "label": "" + "label": "Открыть настройки" } }, "detail": { - "title": "" + "title": "Выберите действие для панели" } } }, @@ -2667,94 +2667,94 @@ } }, "command": { - "help": "", + "help": "Активировать режим команд", "group": { "localCommand": { - "title": "" + "title": "Локальные команды" }, "globalCommand": { - "title": "", + "title": "Глобальные команды", "option": { "colorScheme": { - "light": "", - "dark": "" + "light": "Переключить на светлую тему", + "dark": "Переключить на тёмную тему" }, "language": { - "label": "", + "label": "Изменить язык", "children": { "detail": { - "title": "" + "title": "Выберите предпочитаемый язык" } } }, "newBoard": { - "label": "" + "label": "Создать новую панель" }, "importBoard": { - "label": "" + "label": "Импортировать панель" }, "newApp": { - "label": "" + "label": "Создать новое приложение" }, "newIntegration": { - "label": "", + "label": "Создать новую интеграцию", "children": { "detail": { - "title": "" + "title": "Выберите тип интеграции для создания" } } }, "newUser": { - "label": "" + "label": "Создать нового пользователя" }, "newInvite": { - "label": "" + "label": "Создать новое приглашение" }, "newGroup": { - "label": "" + "label": "Создать новую группу" } } } } }, "external": { - "help": "", + "help": "Использовать внешнюю поисковую систему", "group": { "searchEngine": { "title": "Поисковые системы", "children": { "action": { "search": { - "label": "" + "label": "Искать через {name}" } }, "detail": { - "title": "" + "title": "Выберите действие для поисковой системы" }, "searchResults": { - "title": "" + "title": "Выберите результат поиска для действий" } }, "option": { "google": { - "name": "", - "description": "" + "name": "Google", + "description": "Поиск в интернете через Google" }, "bing": { - "name": "", - "description": "" + "name": "Bing", + "description": "Поиск в интернете через Bing" }, "duckduckgo": { - "name": "", - "description": "" + "name": "DuckDuckGo", + "description": "Поиск в интернете через DuckDuckGo" }, "torrent": { "name": "Торренты", - "description": "" + "description": "Поиск торрентов на torrentdownloads.pro" }, "youTube": { - "name": "", - "description": "" + "name": "YouTube", + "description": "Поиск видео на YouTube" } } } @@ -2763,7 +2763,7 @@ "help": { "group": { "mode": { - "title": "" + "title": "Режимы" }, "help": { "title": "Справка", @@ -2772,7 +2772,7 @@ "label": "Документация" }, "submitIssue": { - "label": "" + "label": "Сообщить о проблеме" }, "discord": { "label": "Сообщество Discord" @@ -2784,57 +2784,57 @@ "home": { "group": { "local": { - "title": "" + "title": "Локальные результаты" } } }, "page": { - "help": "", + "help": "Поиск по страницам", "group": { "page": { - "title": "", + "title": "Страницы", "option": { "manageHome": { - "label": "" + "label": "Управление главной страницей" }, "manageBoard": { - "label": "" + "label": "Управление панелями" }, "manageApp": { - "label": "" + "label": "Управление приложениями" }, "manageIntegration": { - "label": "" + "label": "Управление интеграциями" }, "manageSearchEngine": { - "label": "" + "label": "Управление поисковыми системами" }, "manageMedia": { - "label": "" + "label": "Управление медиафайлами" }, "manageUser": { "label": "Управление пользователями" }, "manageInvite": { - "label": "" + "label": "Управление приглашениями" }, "manageGroup": { - "label": "" + "label": "Управление группами" }, "manageDocker": { - "label": "" + "label": "Управление Docker" }, "manageApi": { - "label": "" + "label": "Swagger API" }, "manageLog": { - "label": "Просмотр журналов" + "label": "Просмотр логов" }, "manageTask": { - "label": "" + "label": "Управление задачами" }, "manageSettings": { - "label": "" + "label": "Глобальные настройки" }, "about": { "label": "О программе" @@ -2850,18 +2850,18 @@ } }, "userGroup": { - "help": "", + "help": "Поиск пользователей или групп", "group": { "user": { "title": "Пользователи", "children": { "action": { "detail": { - "label": "" + "label": "Показать сведения о пользователе" } }, "detail": { - "title": "" + "title": "Выберите действие для пользователя" } } }, @@ -2870,17 +2870,17 @@ "children": { "action": { "detail": { - "label": "" + "label": "Показать сведения о группе" }, "manageMember": { - "label": "" + "label": "Управление участниками" }, "managePermission": { - "label": "" + "label": "Управление разрешениями" } }, "detail": { - "title": "" + "title": "Выберите действие для группы" } } } @@ -2888,16 +2888,16 @@ } }, "engine": { - "search": "", + "search": "Найти поисковую систему", "field": { "name": { "label": "Название" }, "short": { - "label": "" + "label": "Краткое название" }, "urlTemplate": { - "label": "" + "label": "Шаблон URL поиска" }, "description": { "label": "Описание" @@ -2907,53 +2907,53 @@ "list": { "title": "Поисковые системы", "noResults": { - "title": "", - "action": "" + "title": "Поисковые системы пока отсутствуют", + "action": "Создать первую поисковую систему" }, - "interactive": "" + "interactive": "Интерактивная, использует интеграцию" }, "create": { - "title": "", + "title": "Новая поисковая система", "notification": { "success": { - "title": "", - "message": "" + "title": "Поисковая система создана", + "message": "Поисковая система успешно создана" }, "error": { - "title": "", - "message": "" + "title": "Не удалось создать", + "message": "Не удалось создать поисковую систему" } } }, "edit": { - "title": "", + "title": "Редактирование поисковой системы", "notification": { "success": { "title": "Изменения сохранены", - "message": "" + "message": "Поисковая система успешно сохранена" }, "error": { "title": "Не удалось сохранить", - "message": "" + "message": "Не удалось сохранить поисковую систему" } }, - "configControl": "", + "configControl": "Настройка", "searchEngineType": { - "generic": "", - "fromIntegration": "" + "generic": "Обычная", + "fromIntegration": "Из интеграции" } }, "delete": { - "title": "", - "message": "", + "title": "Удаление поисковой системы", + "message": "Вы уверены, что хотите удалить поисковую систему '{name}'?", "notification": { "success": { - "title": "", - "message": "" + "title": "Поисковая система удалена", + "message": "Поисковая система успешно удалена" }, "error": { - "title": "", - "message": "" + "title": "Не удалось удалить", + "message": "Не удалось удалить поисковую систему" } } } diff --git a/packages/translation/src/lang/sk.json b/packages/translation/src/lang/sk.json index 33e3a7601..a3052d75e 100644 --- a/packages/translation/src/lang/sk.json +++ b/packages/translation/src/lang/sk.json @@ -51,7 +51,7 @@ "title": "Zadajte token importu", "field": { "token": { - "label": "", + "label": "Token", "description": "Zadajte zobrazený token importu z predchádzajúcej inštancie homarr" } }, @@ -546,7 +546,7 @@ "label": "Popis" }, "url": { - "label": "" + "label": "Url" } }, "action": { @@ -611,7 +611,7 @@ "label": "Názov" }, "url": { - "label": "" + "label": "Url" } }, "action": { @@ -766,7 +766,7 @@ } }, "common": { - "beta": "", + "beta": "Beta", "error": "Chyba", "action": { "add": "Pridať", @@ -803,8 +803,8 @@ } }, "information": { - "min": "", - "max": "", + "min": "Min", + "max": "Max", "days": "Dni", "hours": "Hodiny", "minutes": "Minúty" @@ -963,10 +963,10 @@ "label": "Výška" }, "xOffset": { - "label": "" + "label": "X offset" }, "yOffset": { - "label": "" + "label": "Y offset" } } }, @@ -1213,7 +1213,7 @@ } }, "iframe": { - "name": "", + "name": "iFrame", "description": "Vložte akýkoľvek obsah z internetu. Niektoré webové stránky môžu obmedziť prístup.", "option": { "embedUrl": { @@ -1515,11 +1515,11 @@ "detailsTitle": "Rýchlosť sťahovania" }, "index": { - "columnTitle": "", + "columnTitle": "#", "detailsTitle": "Aktuálny index v rámci klienta" }, "id": { - "columnTitle": "" + "columnTitle": "Id" }, "integration": { "columnTitle": "Integrácia" @@ -1619,7 +1619,7 @@ "partiallyAvailable": "Čiastočný", "available": "K dispozícii" }, - "toBeDetermined": "" + "toBeDetermined": "TBD" }, "mediaRequests-requestStats": { "name": "Štatistiky mediálnych žiadostí", @@ -2042,9 +2042,9 @@ "tools": { "label": "Nástroje", "items": { - "docker": "", + "docker": "Docker", "logs": "Záznamy", - "api": "", + "api": "API", "tasks": "Úlohy" } }, @@ -2199,7 +2199,7 @@ }, "field": { "id": { - "label": "" + "label": "ID" }, "creator": { "label": "Autor" @@ -2208,7 +2208,7 @@ "label": "Dátum vypršania" }, "token": { - "label": "" + "label": "Token" } } } @@ -2370,7 +2370,7 @@ } }, "api": { - "title": "", + "title": "API", "modal": { "createApiToken": { "title": "Vytvorený token API", @@ -2390,7 +2390,7 @@ }, "table": { "header": { - "id": "", + "id": "ID", "createdBy": "Vytvoril/a" } } @@ -2602,7 +2602,7 @@ "tools": { "label": "Nástroje", "docker": { - "label": "" + "label": "Docker" }, "logs": { "label": "Záznamy" @@ -2737,15 +2737,15 @@ }, "option": { "google": { - "name": "", + "name": "Google", "description": "Hľadajte na webe pomocou Google" }, "bing": { - "name": "", + "name": "Bing", "description": "Vyhľadávajte na webe pomocou Bingu" }, "duckduckgo": { - "name": "", + "name": "DuckDuckGo", "description": "Vyhľadávajte na webe pomocou DuckDuckGo" }, "torrent": { @@ -2753,7 +2753,7 @@ "description": "Vyhľadajte torrenty na torrentdownloads.pro" }, "youTube": { - "name": "", + "name": "YouTube", "description": "Hľadajte videá na YouTube" } } @@ -2825,7 +2825,7 @@ "label": "Spravovať docker" }, "manageApi": { - "label": "" + "label": "Swagger API" }, "manageLog": { "label": "Zobraziť denníky" diff --git a/packages/translation/src/lang/tr.json b/packages/translation/src/lang/tr.json index 41d99f2d7..e16184a5d 100644 --- a/packages/translation/src/lang/tr.json +++ b/packages/translation/src/lang/tr.json @@ -6,59 +6,59 @@ "subtitle": "Homarr örneğinizi kurmaya başlayalım.", "description": "Başlamak için lütfen Homarr örneğinizi nasıl kurmak istediğinizi seçin.", "action": { - "scratch": "Sıfırdan başlayın", - "importOldmarr": "Homarr 1.0'dan önceki yedeğinizi içe aktarın" + "scratch": "Sıfırdan Başla", + "importOldmarr": "Homarr 1.0'dan Önceki Yedeğinizi İçe Aktarın" } }, "import": { - "title": "Verileri içe aktar", - "subtitle": "Mevcut bir Homarr örneğinden alınan verileri içe aktarabilirsiniz.", + "title": "Verileri İçe Aktar", + "subtitle": "Mevcut Homarr Örneğinden Alınan Verileri İçe Aktarabilirsiniz.", "dropzone": { "title": "Zip dosyasını buraya sürükleyin veya göz atmak için tıklayın", "description": "Seçtiğiniz zip işlenecek ve içe aktarmak istediğiniz verileri seçebileceksiniz" }, "fileInfo": { "action": { - "change": "Dosyayı değiştir" + "change": "Dosyayı Değiştir" } }, "importSettings": { - "title": "İçe aktarma ayarları", - "description": "İçe aktarma işlevlerini yapılandırın" + "title": "İçe Aktarma Ayarları", + "description": "İçe Aktarma İşlevlerini Yapılandırın" }, "boardSelection": { - "title": "{count} panel bulundu", - "description": "İçe aktarılacak tüm panellerin boyutlarını seçin", + "title": "{count} Panel Bulundu", + "description": "İçe Aktarılacak Tüm Panellerin Boyutlarını Seçin", "action": { - "selectAll": "Tümünü seç", - "unselectAll": "Tüm seçimi kaldır" + "selectAll": "Tümünü Seç", + "unselectAll": "Tüm Seçimi Kaldır" } }, "summary": { - "title": "İçe aktarma özeti", - "description": "Aşağıdaki özeti kontrol ederek içe aktarılacak işlevleri görebilirsiniz", + "title": "İçe Aktarma Özeti", + "description": "Aşağıdaki Özeti Kontrol Ederek İçe Aktarılacak İşlevleri Görebilirsiniz", "action": { - "import": "İçe aktarmayı onayla ve devam et" + "import": "İçe Aktarmayı Onayla ve Devam Et" }, "entities": { "apps": "Uygulamalar", "boards": "Paneller", "integrations": "Entegrasyonlar", - "credentialUsers": "Kullanıcı kimlik Bilgileri" + "credentialUsers": "Kullanıcı Kimlik Bilgileri" } }, "tokenModal": { - "title": "İçe aktarma token'ını girin", + "title": "İçe Aktarma Token'ını Girin", "field": { "token": { "label": "Erişim Anahtarı", - "description": "Önceki homarr örneğinizden aldığınız içe aktarma Token'ını girin" + "description": "Önceki Homarr Örneğinizden Aldığınız İçe Aktarma Token'ını girin" } }, "notification": { "error": { - "title": "Geçersiz token", - "message": "Girdiğiniz token geçersiz" + "title": "Geçersiz Token", + "message": "Girdiğiniz Token Geçersiz" } } } @@ -92,24 +92,24 @@ }, "finish": { "title": "Kurulumu Bitir", - "subtitle": "Başlamaya hazırsınız!", + "subtitle": "Başlamaya Hazırsınız!", "description": "Kurulum sürecini başarıyla tamamladınız. Artık Homarr'ı kullanmaya başlayabilirsiniz. Sonraki eyleminizi seçin:", "action": { - "goToBoard": "{name} paneline git", - "createBoard": "İlk panelinizi oluşturun", - "inviteUser": "Yeni kullanıcı davet et", - "docs": "Dökümanları okuyun" + "goToBoard": "{name} Paneline Git", + "createBoard": "İlk Panelinizi Oluşturun", + "inviteUser": "Yeni Kullanıcı Davet Et", + "docs": "Dökümanları Oku" } } }, - "backToStart": "Başlangıca geri dön" + "backToStart": "Başlangıca Geri Dön" }, "user": { "title": "Kullanıcılar", "name": "Kullanıcı", "page": { "login": { - "title": "Hesabınıza giriş yapın", + "title": "Hesabınıza Giriş Yapın", "subtitle": "Tekrar hoş geldiniz! Lütfen kimlik bilgilerinizi girin" }, "invite": { @@ -118,7 +118,7 @@ "description": "{username} tarafından davet edildiniz" }, "init": { - "title": "Yeni Homarr kurulumu", + "title": "Yeni Homarr Kurulumu", "subtitle": "Lütfen yönetici kullanıcısını oluşturun" } }, @@ -141,20 +141,20 @@ } }, "passwordConfirm": { - "label": "Şifreyi onayla" + "label": "Şifreyi Onayla" }, "previousPassword": { "label": "Eski Şifre" }, "homeBoard": { - "label": "Varsayılan panel" + "label": "Varsayılan Panel" }, "pingIconsEnabled": { - "label": "Pingler için simgeler kullanın" + "label": "Pingler İçin Simgeler Kullanın" } }, "error": { - "usernameTaken": "Kullanıcı adı önceden alındı" + "usernameTaken": "Kullanıcı Adı Önceden Alındı" }, "action": { "login": { @@ -391,7 +391,7 @@ } }, "search-engine": { - "title": "Arama motorları", + "title": "Arama Motorları", "item": { "create": { "label": "Arama motorları oluşturun", @@ -546,7 +546,7 @@ "label": "Tanım" }, "url": { - "label": "" + "label": "Url" } }, "action": { @@ -611,7 +611,7 @@ "label": "İsim" }, "url": { - "label": "" + "label": "Url" } }, "action": { @@ -766,7 +766,7 @@ } }, "common": { - "beta": "", + "beta": "Test", "error": "Hata", "action": { "add": "Ekle", @@ -791,7 +791,7 @@ "tryAgain": "Tekrar Deneyin", "loading": "Yükleniyor" }, - "here": "burada", + "here": "buraya", "iconPicker": { "label": "Simge URL'si", "header": "Simgeleri filtrelemek için isim veya nesne yazın... Homarr sizin için {countIcons} simge arasında arama yapacaktır." @@ -803,8 +803,8 @@ } }, "information": { - "min": "Asgari", - "max": "Azami", + "min": "En Düşük", + "max": "En Yüksek", "days": "Gün", "hours": "Saat", "minutes": "Dakika" @@ -856,8 +856,8 @@ "dangerZone": "Tehlikeli bölge", "noResults": "Sonuç bulunamadı", "preview": { - "show": "Önizlemeyi göster", - "hide": "Önizlemeyi Gizle" + "show": "Ara Renkleri Göster", + "hide": "Ara Renkleri Gizle" }, "zod": { "errors": { @@ -866,16 +866,16 @@ "string": { "startsWith": "Bu alan {startsWith} ile başlamalıdır", "endsWith": "Bu alan {endsWith} ile bitmelidir", - "includes": "Bu alan {includes} adresini içermelidir", + "includes": "Bu alan {includes} içermelidir", "invalidEmail": "Bu alanda geçerli bir e-posta olmalıdır" }, "tooSmall": { "string": "Bu alan en az {minimum} karakter uzunluğunda olmalıdır", - "number": "Bu alan {minimum} adresinden uzun veya eşit olmalıdır" + "number": "Bu alan {minimum} değerinden uzun veya eşit olmalıdır" }, "tooBig": { "string": "Bu alan en fazla {maximum} karakter uzunluğunda olmalıdır", - "number": "Bu alan {maximum} adresinden kısa veya eşit olmalıdır" + "number": "Bu alan {maximum} değerinden kısa veya eşit olmalıdır" }, "custom": { "passwordsDoNotMatch": "Parolalar uyuşmuyor", @@ -1110,7 +1110,7 @@ "set": "Ayarla", "enabled": "Etkin", "disabled": "Pasif", - "processing": "İşleniyor", + "processing": "İşlemde", "disconnected": "Bağlantısı kesildi", "hours": "Saat", "minutes": "Dakika", @@ -1185,7 +1185,7 @@ "decreaseIndent": "Girintiyi Azalt", "link": "Bağlantı", "unlink": "Bağlantıyı kaldır", - "image": "Resim Göm", + "image": "Görsel Göm", "addTable": "Tablo ekle", "deleteTable": "Tablo Sil", "colorCell": "Renk Hücresi", @@ -1213,7 +1213,7 @@ } }, "iframe": { - "name": "", + "name": "iFrame", "description": "İnternetten herhangi bir içeriği yerleştirin. Bazı web siteleri erişimi kısıtlayabilir.", "option": { "embedUrl": { @@ -1295,10 +1295,10 @@ } }, "filterPastMonths": { - "label": "Başla" + "label": "Başlangıç" }, "filterFutureMonths": { - "label": "Bitir" + "label": "Bitiş" } } }, @@ -1419,11 +1419,11 @@ }, "integration": { "noData": "Hiçbir entegrasyon bulunamadı", - "description": "Yeni bir entegrasyon oluşturmak için öğesine tıklayın" + "description": "Yeni bir entegrasyon oluşturmak için tıklayın" }, "app": { "noData": "Uygulama bulunamadı", - "description": "Yeni bir uygulama oluşturmak için öğesine tıklayın" + "description": "Yeni bir uygulama oluşturmak için tıklayın" }, "error": { "noIntegration": "Hiçbir entegrasyon seçilmedi", @@ -1503,7 +1503,7 @@ "columnTitle": "Kontroller" }, "added": { - "columnTitle": "Eklendi", + "columnTitle": "Ekleme", "detailsTitle": "Ekleme Tarihi" }, "category": { @@ -1515,7 +1515,7 @@ "detailsTitle": "İndirme Hızı" }, "index": { - "columnTitle": "", + "columnTitle": "#", "detailsTitle": "İstemci içindeki mevcut endeks" }, "id": { @@ -1532,7 +1532,7 @@ "detailsTitle": "İndirme İlerlemesi" }, "ratio": { - "columnTitle": "", + "columnTitle": "Oran", "detailsTitle": "Torrent oranı (alınan/gönderilen)" }, "received": { @@ -1570,7 +1570,7 @@ "paused": "Duraklatıldı", "completed": "Tamamlanan", "failed": "Başarısız", - "processing": "İşleniyor", + "processing": "İşlemde", "leeching": "Leechleme", "stalled": "Durduruldu", "unknown": "Bilinmeyen", @@ -1593,7 +1593,7 @@ "title": "Öğeyi Sil", "modalTitle": "Bu işi silmek istediğinizden emin misiniz?", "entry": "Girdiyi sil", - "entryAndFiles": "Girişi ve dosyayı sil" + "entryAndFiles": "Girdiyi ve dosyaları sil" } } }, @@ -1615,7 +1615,7 @@ "availability": { "unknown": "Bilinmeyen", "pending": "Bekleyen", - "processing": "İşleniyor", + "processing": "İşlemde", "partiallyAvailable": "Kısmi", "available": "Mevcut" }, @@ -1631,8 +1631,8 @@ "approved": "Onaylanan", "pending": "Onay bekleyen", "processing": "İşleniyor", - "declined": "Zaten reddedildi", - "available": "Zaten Mevcut", + "declined": "Reddedilen", + "available": "Mevcut", "tv": "Dizi talepleri", "movie": "Film talepleri", "total": "Toplam" @@ -1713,10 +1713,10 @@ "label": "RTL'yi etkinleştir" }, "textLinesClamp": { - "label": "Açıklamalar satır sınırı" + "label": "Açıklamalarda satır sınırı" }, "maximumAmountPosts": { - "label": "Gönderi değer sınırı" + "label": "Gönderi sayısı sınırı" } } } @@ -1813,7 +1813,7 @@ "label": "Meta başlığı" }, "logoImageUrl": { - "label": "Logo görseli URL'si" + "label": "Logo görsel URL'si" }, "faviconImageUrl": { "label": "Favicon görsel URL'si" @@ -1822,10 +1822,10 @@ "label": "Arkaplan görsel URL'si" }, "backgroundImageAttachment": { - "label": "Arkaplan resim ekle", + "label": "Arkaplan görsel yerleştirme", "option": { "fixed": { - "label": "Düzeltildi", + "label": "Sabit", "description": "Arka plan aynı pozisyonda kalır." }, "scroll": { @@ -1839,11 +1839,11 @@ "option": { "repeat": { "label": "Tekrarla", - "description": "Resim, tüm arka plan alanını kaplayacak kadar tekrarlanır." + "description": "Görsel, tüm arka plan alanını kaplayacak kadar tekrarlanır." }, "no-repeat": { "label": "Tekrarlama yok", - "description": "Resim tekrarlanmaz ve tüm alanı doldurmayabilir." + "description": "Görsel tekrarlanmaz ve tüm alanı doldurmayabilir." }, "repeat-x": { "label": "Y tekrarla", @@ -1856,7 +1856,7 @@ } }, "backgroundImageSize": { - "label": "Arkaplan resim boyutu", + "label": "Arkaplan görsel boyutu", "option": { "cover": { "label": "Kapak", @@ -1879,7 +1879,7 @@ }, "customCss": { "label": "Bu panel için özel css", - "description": "Ayrıca, yalnızca deneyimli kullanıcılar için önerilen CSS kullanarak kontrol panelinizi özelleştirin", + "description": "Kontrol panelinizi yalnızca deneyimli kullanıcılar için önerilen CSS kullanarak özelleştirin", "customClassesAlert": { "title": "Özel sınıflar", "description": "Her öğenin gelişmiş seçeneklerinde panel örneklerinize özel sınıflar ekleyebilir ve bunları yukarıdaki özel CSS'de kullanabilirsiniz." @@ -2001,13 +2001,13 @@ }, "user": { "description": "Henüz bir ev paneli belirlemediniz.", - "link": "Varsayılan paneli yapılandır", - "notice": "Bu sayfanın kaybolmasını sağlamak için tercihlerden varsayılan panel seçin" + "link": "Varsayılan Paneli Yapılandır", + "notice": "Bu Sayfanın Kaybolmasını Sağlamak İçin Tercihlerden Varsayılan Panel Atayın" }, "anonymous": { - "description": "Sunucu yöneticiniz henüz bir varsayılan panel belirlemedi.", + "description": "Sunucu Yöneticiniz Henüz Bir Varsayılan Panel Atamadı.", "link": "Herkese açık panelleri görüntüle", - "notice": "Bu sayfanın kaybolmasını sağlamak için sunucu yöneticisinden varsayılan panel ayarlamasını isteyin" + "notice": "Bu Sayfanın Kaybolmasını Sağlamak İçin Sunucu Yöneticisinden Varsayılan Panel Atamasını isteyin" } } } @@ -2025,11 +2025,11 @@ }, "navbar": { "items": { - "home": "Ana sayfa", + "home": "Ana Sayfa", "boards": "Paneller", "apps": "Uygulamalar", "integrations": "Entegrasyonlar", - "searchEngies": "Arama motorları", + "searchEngies": "Arama Motorları", "medias": "Medyalar", "users": { "label": "Kullanıcılar", @@ -2042,9 +2042,9 @@ "tools": { "label": "Araçlar", "items": { - "docker": "", + "docker": "Docker", "logs": "Günlükler", - "api": "", + "api": "API", "tasks": "Görevler" } }, @@ -2091,9 +2091,9 @@ "label": "Ayarlar" }, "setHomeBoard": { - "label": "Varsayılan panel olarak ayarlayın", + "label": "Varsayılan Panel Olarak Ata", "badge": { - "label": "Ana sayfa", + "label": "Ana Sayfa", "tooltip": "Bu panel sizin varsayılan paneliniz olarak görüntülenecektir" } }, @@ -2120,7 +2120,7 @@ } }, "media": { - "includeFromAllUsers": "Tüm kullanıcıların medyasına dahil edin" + "includeFromAllUsers": "Tüm kullanıcıların medyalarını dahil et" }, "user": { "back": "Kullanıcılara geri dön", @@ -2130,7 +2130,7 @@ "title": "Genel", "item": { "language": "Dil & Bölge", - "board": "Varsayılan panel", + "board": "Varsayılan Panel", "firstDayOfWeek": "Haftanın ilk günü", "accessibility": "Erişilebilirlik" } @@ -2180,7 +2180,7 @@ } }, "invite": { - "title": "Kullanıcı davetlerini yönet", + "title": "Kullanıcı Davetlerini Yönet", "action": { "new": { "title": "Yeni davet", @@ -2288,7 +2288,7 @@ "board": { "title": "Paneller", "homeBoard": { - "label": "Küresel ana sayfa paneli", + "label": "Genel Varsayılan Panel", "description": "Seçim için yalnızca herkese açık paneller kullanılabilir" } }, @@ -2370,7 +2370,7 @@ } }, "api": { - "title": "", + "title": "API", "modal": { "createApiToken": { "title": "API token'ı oluşturuldu", @@ -2602,7 +2602,7 @@ "tools": { "label": "Araçlar", "docker": { - "label": "" + "label": "Docker" }, "logs": { "label": "Günlükler" @@ -2617,7 +2617,7 @@ } }, "search": { - "placeholder": "Aramak için yaz", + "placeholder": "Ara", "nothingFound": "Hiçbir şey bulunamadı", "error": { "fetch": "Veriler alınırken bir hata oluştu" @@ -2650,7 +2650,7 @@ "label": "Panel'i aç" }, "homeBoard": { - "label": "Varsayılan panel olarak ayarla" + "label": "Varsayılan Panel Olarak Ata" }, "settings": { "label": "Ayarları aç" @@ -2737,15 +2737,15 @@ }, "option": { "google": { - "name": "", + "name": "Google", "description": "Google ile web'de arama yapın" }, "bing": { - "name": "", + "name": "Bing", "description": "Bing ile web'de arama yapın" }, "duckduckgo": { - "name": "", + "name": "DuckDuckGo", "description": "DuckDuckGo ile web'de arama yapın" }, "torrent": { @@ -2753,7 +2753,7 @@ "description": "Torrentdownloads.pro'da torrentleri arayın" }, "youTube": { - "name": "", + "name": "YouTube", "description": "YouTube'da video arayın" } } @@ -2795,7 +2795,7 @@ "title": "Sayfalar", "option": { "manageHome": { - "label": "Ana sayfayı yönet" + "label": "Ana Sayfayı Yönet" }, "manageBoard": { "label": "Panelleri yönet" @@ -2825,7 +2825,7 @@ "label": "Docker'ı yönet" }, "manageApi": { - "label": "" + "label": "Swagger API'si" }, "manageLog": { "label": "Günlükleri görüntüle" @@ -2840,7 +2840,7 @@ "label": "Hakkında" }, "homeBoard": { - "label": "Varsayılan panel" + "label": "Varsayılan Panel" }, "preferences": { "label": "Tercihleriniz" @@ -2894,7 +2894,7 @@ "label": "İsim" }, "short": { - "label": "Kısa" + "label": "Kısa Ad" }, "urlTemplate": { "label": "URL arama şablonu" @@ -2905,7 +2905,7 @@ }, "page": { "list": { - "title": "Arama motorları", + "title": "Arama Motorları", "noResults": { "title": "Henüz bir arama motoru yok", "action": "İlk arama motorunuzu oluşturun" diff --git a/packages/ui/package.json b/packages/ui/package.json index 1f664388a..bc2590a37 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -29,9 +29,9 @@ "@homarr/log": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^7.15.1", - "@mantine/dates": "^7.15.1", - "@mantine/hooks": "^7.15.1", + "@mantine/core": "^7.15.2", + "@mantine/dates": "^7.15.2", + "@mantine/hooks": "^7.15.2", "@tabler/icons-react": "^3.26.0", "mantine-react-table": "2.0.0-beta.7", "next": "^14.2.21", diff --git a/packages/widgets/package.json b/packages/widgets/package.json index ff03eeaac..8462f770c 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -41,8 +41,8 @@ "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@mantine/core": "^7.15.1", - "@mantine/hooks": "^7.15.1", + "@mantine/core": "^7.15.2", + "@mantine/hooks": "^7.15.2", "@tabler/icons-react": "^3.26.0", "@tiptap/extension-color": "2.10.4", "@tiptap/extension-highlight": "2.10.4", diff --git a/packages/widgets/src/app/component.tsx b/packages/widgets/src/app/component.tsx index 989de06c3..33edf9f19 100644 --- a/packages/widgets/src/app/component.tsx +++ b/packages/widgets/src/app/component.tsx @@ -7,7 +7,6 @@ import { IconLoader } from "@tabler/icons-react"; import combineClasses from "clsx"; import { clientApi } from "@homarr/api/client"; -import { parseAppHrefWithVariablesClient } from "@homarr/common/client"; import { useRegisterSpotlightContextResults } from "@homarr/spotlight"; import { useI18n } from "@homarr/translation/client"; @@ -31,26 +30,30 @@ export default function AppWidget({ options, isEditMode }: WidgetComponentProps< ); useRegisterSpotlightContextResults( `app-${app.id}`, - [ - { - id: app.id, - name: app.name, - icon: app.iconUrl, - interaction() { - return { - type: "link", - href: parseAppHrefWithVariablesClient(app.href ?? ""), - newTab: options.openInNewTab, - }; - }, - }, - ], + app.href + ? [ + { + id: app.id, + name: app.name, + icon: app.iconUrl, + interaction() { + return { + type: "link", + // We checked above that app.href is defined + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + href: app.href!, + newTab: options.openInNewTab, + }; + }, + }, + ] + : [], [app, options.openInNewTab], ); return ( @@ -88,7 +91,7 @@ export default function AppWidget({ options, isEditMode }: WidgetComponentProps< } interface AppLinkProps { - href: string; + href: string | undefined; openInNewTab: boolean; enabled: boolean; } diff --git a/packages/widgets/src/app/ping/ping-indicator.tsx b/packages/widgets/src/app/ping/ping-indicator.tsx index 1bf781427..b96841376 100644 --- a/packages/widgets/src/app/ping/ping-indicator.tsx +++ b/packages/widgets/src/app/ping/ping-indicator.tsx @@ -3,7 +3,6 @@ import { IconCheck, IconX } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; -import { parseAppHrefWithVariablesClient } from "@homarr/common/client"; import { PingDot } from "./ping-dot"; @@ -14,7 +13,7 @@ interface PingIndicatorProps { export const PingIndicator = ({ href }: PingIndicatorProps) => { const [ping] = clientApi.widget.app.ping.useSuspenseQuery( { - url: parseAppHrefWithVariablesClient(href), + url: href, }, { refetchOnMount: false, @@ -25,7 +24,7 @@ export const PingIndicator = ({ href }: PingIndicatorProps) => { const [pingResult, setPingResult] = useState(ping); clientApi.widget.app.updatedPing.useSubscription( - { url: parseAppHrefWithVariablesClient(href) }, + { url: href }, { onData(data) { setPingResult(data); diff --git a/packages/widgets/src/bookmarks/component.tsx b/packages/widgets/src/bookmarks/component.tsx index cfc874661..b4383fb42 100644 --- a/packages/widgets/src/bookmarks/component.tsx +++ b/packages/widgets/src/bookmarks/component.tsx @@ -4,7 +4,6 @@ import { Anchor, Box, Card, Divider, Flex, Group, Stack, Text, Title, UnstyledBu import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; -import { parseAppHrefWithVariablesClient } from "@homarr/common/client"; import { useRegisterSpotlightContextResults } from "@homarr/spotlight"; import type { WidgetComponentProps } from "../definition"; @@ -19,18 +18,22 @@ export default function BookmarksWidget({ options, width, height, itemId }: Widg useRegisterSpotlightContextResults( `bookmark-${itemId}`, - data.map((app) => ({ - id: app.id, - name: app.name, - icon: app.iconUrl, - interaction() { - return { - type: "link", - href: parseAppHrefWithVariablesClient(app.href ?? ""), - newTab: false, - }; - }, - })), + data + .filter((app) => app.href !== null) + .map((app) => ({ + id: app.id, + name: app.name, + icon: app.iconUrl, + interaction() { + return { + type: "link", + // We checked above that app.href is defined + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + href: app.href!, + newTab: false, + }; + }, + })), [data], ); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf56e5915..c3eb2e2ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -149,23 +149,23 @@ importers: specifier: workspace:^0.1.0 version: link:../../packages/widgets '@mantine/colors-generator': - specifier: ^7.15.1 - version: 7.15.1(chroma-js@3.1.2) + specifier: ^7.15.2 + version: 7.15.2(chroma-js@3.1.2) '@mantine/core': - specifier: ^7.15.1 - version: 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mantine/dropzone': - specifier: ^7.15.1 - version: 7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mantine/hooks': - specifier: ^7.15.1 - version: 7.15.1(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(react@19.0.0) '@mantine/modals': - specifier: ^7.15.1 - version: 7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mantine/tiptap': - specifier: ^7.15.1 - version: 7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(@tiptap/extension-link@2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4))(@tiptap/react@2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tiptap/extension-link@2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4))(@tiptap/react@2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@million/lint': specifier: 1.0.14 version: 1.0.14(rollup@4.21.3)(webpack-sources@3.2.3) @@ -176,23 +176,23 @@ importers: specifier: ^3.26.0 version: 3.26.0(react@19.0.0) '@tanstack/react-query': - specifier: ^5.62.8 - version: 5.62.8(react@19.0.0) + specifier: ^5.62.10 + version: 5.62.10(react@19.0.0) '@tanstack/react-query-devtools': - specifier: ^5.62.8 - version: 5.62.8(@tanstack/react-query@5.62.8(react@19.0.0))(react@19.0.0) + specifier: ^5.62.10 + version: 5.62.10(@tanstack/react-query@5.62.10(react@19.0.0))(react@19.0.0) '@tanstack/react-query-next-experimental': - specifier: 5.62.8 - version: 5.62.8(@tanstack/react-query@5.62.8(react@19.0.0))(next@14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0) + specifier: 5.62.10 + version: 5.62.10(@tanstack/react-query@5.62.10(react@19.0.0))(next@14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0) '@trpc/client': specifier: next version: 11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2) '@trpc/next': specifier: next - version: 11.0.0-rc.666(@tanstack/react-query@5.62.8(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.666(@tanstack/react-query@5.62.8(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(next@14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) + version: 11.0.0-rc.666(@tanstack/react-query@5.62.10(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.666(@tanstack/react-query@5.62.10(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(next@14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) '@trpc/react-query': specifier: next - version: 11.0.0-rc.666(@tanstack/react-query@5.62.8(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) + version: 11.0.0-rc.666(@tanstack/react-query@5.62.10(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) '@trpc/server': specifier: next version: 11.0.0-rc.666(typescript@5.7.2) @@ -224,11 +224,11 @@ importers: specifier: ^11.0.0 version: 11.0.0 jotai: - specifier: ^2.10.4 - version: 2.10.4(@types/react@19.0.2)(react@19.0.0) + specifier: ^2.11.0 + version: 2.11.0(@types/react@19.0.2)(react@19.0.0) mantine-react-table: specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 2.0.0-beta.7(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next: specifier: ^14.2.21 version: 14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) @@ -245,8 +245,8 @@ importers: specifier: ^19.0.0 version: 19.0.0(react@19.0.0) react-error-boundary: - specifier: ^4.1.2 - version: 4.1.2(react@19.0.0) + specifier: ^5.0.0 + version: 5.0.0(react@19.0.0) react-simple-code-editor: specifier: ^0.14.1 version: 0.14.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -379,8 +379,8 @@ importers: specifier: ^22.10.2 version: 22.10.2 dotenv-cli: - specifier: ^7.4.4 - version: 7.4.4 + specifier: ^8.0.0 + version: 8.0.0 eslint: specifier: ^9.17.0 version: 9.17.0 @@ -509,6 +509,9 @@ importers: '@homarr/definitions': specifier: workspace:^0.1.0 version: link:../definitions + '@homarr/icons': + specifier: workspace:^0.1.0 + version: link:../icons '@homarr/integrations': specifier: workspace:^0.1.0 version: link:../integrations @@ -541,7 +544,7 @@ importers: version: 11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2) '@trpc/react-query': specifier: next - version: 11.0.0-rc.666(@tanstack/react-query@5.62.8(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) + version: 11.0.0-rc.666(@tanstack/react-query@5.62.10(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) '@trpc/server': specifier: next version: 11.0.0-rc.666(typescript@5.7.2) @@ -704,9 +707,6 @@ importers: react: specifier: ^19.0.0 version: 19.0.0 - tldts: - specifier: ^6.1.69 - version: 6.1.69 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -912,13 +912,13 @@ importers: version: 0.30.1 drizzle-orm: specifier: ^0.38.2 - version: 0.38.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.12)(@types/react@19.0.2)(better-sqlite3@11.7.0)(mysql2@3.11.5)(react@19.0.0) + version: 0.38.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.12)(@types/react@19.0.2)(better-sqlite3@11.7.0)(mysql2@3.12.0)(react@19.0.0) drizzle-zod: specifier: ^0.6.0 - version: 0.6.0(drizzle-orm@0.38.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.12)(@types/react@19.0.2)(better-sqlite3@11.7.0)(mysql2@3.11.5)(react@19.0.0))(zod@3.24.1) + version: 0.6.0(drizzle-orm@0.38.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.12)(@types/react@19.0.2)(better-sqlite3@11.7.0)(mysql2@3.12.0)(react@19.0.0))(zod@3.24.1) mysql2: - specifier: 3.11.5 - version: 3.11.5 + specifier: 3.12.0 + version: 3.12.0 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -933,8 +933,8 @@ importers: specifier: 7.6.12 version: 7.6.12 dotenv-cli: - specifier: ^7.4.4 - version: 7.4.4 + specifier: ^8.0.0 + version: 8.0.0 eslint: specifier: ^9.17.0 version: 9.17.0 @@ -982,8 +982,8 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/form': - specifier: ^7.15.1 - version: 7.15.1(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(react@19.0.0) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1035,8 +1035,8 @@ importers: specifier: ^7.0.0 version: 7.0.0 '@ctrl/qbittorrent': - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^9.2.0 + version: 9.2.0 '@ctrl/transmission': specifier: ^7.1.0 version: 7.1.0 @@ -1124,11 +1124,11 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/core': - specifier: ^7.15.1 - version: 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mantine/hooks': - specifier: ^7.15.1 - version: 7.15.1(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(react@19.0.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -1182,8 +1182,8 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^7.15.1 - version: 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@tabler/icons-react': specifier: ^3.26.0 version: 3.26.0(react@19.0.0) @@ -1219,8 +1219,8 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/notifications': - specifier: ^7.15.1 - version: 7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@tabler/icons-react': specifier: ^3.26.0 version: 3.26.0(react@19.0.0) @@ -1277,11 +1277,11 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^7.15.1 - version: 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mantine/hooks': - specifier: ^7.15.1 - version: 7.15.1(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(react@19.0.0) adm-zip: specifier: 0.5.16 version: 0.5.16 @@ -1511,20 +1511,20 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/core': - specifier: ^7.15.1 - version: 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mantine/hooks': - specifier: ^7.15.1 - version: 7.15.1(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(react@19.0.0) '@mantine/spotlight': - specifier: ^7.15.1 - version: 7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@tabler/icons-react': specifier: ^3.26.0 version: 3.26.0(react@19.0.0) jotai: - specifier: ^2.10.4 - version: 2.10.4(@types/react@18.3.13)(react@19.0.0) + specifier: ^2.11.0 + version: 2.11.0(@types/react@18.3.13)(react@19.0.0) next: specifier: ^14.2.21 version: 14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) @@ -1567,7 +1567,7 @@ importers: version: 4.3.1 mantine-react-table: specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 2.0.0-beta.7(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next: specifier: ^14.2.21 version: 14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) @@ -1612,20 +1612,20 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^7.15.1 - version: 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mantine/dates': - specifier: ^7.15.1 - version: 7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mantine/hooks': - specifier: ^7.15.1 - version: 7.15.1(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(react@19.0.0) '@tabler/icons-react': specifier: ^3.26.0 version: 3.26.0(react@19.0.0) mantine-react-table: specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 2.0.0-beta.7(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next: specifier: ^14.2.21 version: 14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) @@ -1737,11 +1737,11 @@ importers: specifier: workspace:^0.1.0 version: link:../validation '@mantine/core': - specifier: ^7.15.1 - version: 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mantine/hooks': - specifier: ^7.15.1 - version: 7.15.1(react@19.0.0) + specifier: ^7.15.2 + version: 7.15.2(react@19.0.0) '@tabler/icons-react': specifier: ^3.26.0 version: 3.26.0(react@19.0.0) @@ -1798,7 +1798,7 @@ importers: version: 1.11.13 mantine-react-table: specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 2.0.0-beta.7(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next: specifier: ^14.2.21 version: 14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) @@ -1841,19 +1841,19 @@ importers: version: 2.3.3(eslint@9.17.0) eslint-plugin-import: specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0) + version: 2.31.0(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0) eslint-plugin-jsx-a11y: specifier: ^6.10.2 version: 6.10.2(eslint@9.17.0) eslint-plugin-react: - specifier: ^7.37.2 - version: 7.37.2(eslint@9.17.0) + specifier: ^7.37.3 + version: 7.37.3(eslint@9.17.0) eslint-plugin-react-hooks: specifier: ^5.1.0 version: 5.1.0(eslint@9.17.0) typescript-eslint: - specifier: ^8.18.1 - version: 8.18.1(eslint@9.17.0)(typescript@5.7.2) + specifier: ^8.18.2 + version: 8.18.2(eslint@9.17.0)(typescript@5.7.2) devDependencies: '@homarr/prettier-config': specifier: workspace:^0.1.0 @@ -2063,14 +2063,18 @@ packages: resolution: {integrity: sha512-wENP7LH4BmCjz+gXVq7Nzz20zMjY/huuG7aDk/yu/LhFdC84e/l8222rCIAo0lwhU451lFcJKLcOmtG6TNrBAQ==} engines: {node: '>=18'} - '@ctrl/qbittorrent@9.1.0': - resolution: {integrity: sha512-mqro5vP94m/evgGSv6fa7Hrip2fhI0F/dMgsTisvi9gChtfXpX1Cj1EwJNzBOiT6yYamEtLJuEe41XLQiXEo/Q==} + '@ctrl/qbittorrent@9.2.0': + resolution: {integrity: sha512-95hcrot7lRPZ/HpDwjDS0qNIDBk015uPX/RastT1AWFGWfZmN/TijUfvwEXHHh6lHziZE2pdT2NQMgvrE1Gg4g==} engines: {node: '>=18'} '@ctrl/shared-torrent@6.1.0': resolution: {integrity: sha512-LWhAH6C5Ekp3co8tyRVxAOZhlhHqQmuvc5GXoHcAetIFYbPaKhsqdGEACHtGl549cVO676gQjmvLEgzQnsn56g==} engines: {node: '>=18'} + '@ctrl/shared-torrent@6.2.1': + resolution: {integrity: sha512-0ouXQnBEik6B3LXByiXnDZ6MAj8r9oMEE09q2MkifqSRmGImhZKq7iNbzcGzTn9BI1TU/anwjSOrxjmYV4T5eQ==} + engines: {node: '>=18'} + '@ctrl/torrent-file@4.1.0': resolution: {integrity: sha512-mC6HdmCrRhhwpthM+OboJvGIywVR05IbdhVSBkfbGslzbQk2xNnx4UOKljV/x2YI2M1DDF3F3o0paIiYd5O0Og==} engines: {node: '>=18'} @@ -2975,79 +2979,79 @@ packages: '@libsql/core@0.14.0': resolution: {integrity: sha512-nhbuXf7GP3PSZgdCY2Ecj8vz187ptHlZQ0VRc751oB2C1W8jQUXKKklvt7t1LJiUTQBVJuadF628eUk+3cRi4Q==} - '@mantine/colors-generator@7.15.1': - resolution: {integrity: sha512-xhzJ9HfjOVUH5Y5E5xQX3jepB6pA+gZEAMZtvR7YMPH4akgS0NbJuYuF+A8Cq55rLw58vPTtc3nf6ntfyoCk/w==} + '@mantine/colors-generator@7.15.2': + resolution: {integrity: sha512-EqOWuOq0ZoPrVZiQVxkyr0uEoZAn5bfCVssrY0qAu47ZGxeodiJ6gKOrY68TYN/ep9AV74d7mFTl8d42Q08QmQ==} peerDependencies: chroma-js: '>=2.4.2' - '@mantine/core@7.15.1': - resolution: {integrity: sha512-MKHrByqgpu+vzhauX0X9EH+BOgJqyjHwk4E0sfIIX9CXC9pziLMc4aL8pua0KaXiRuQiskTl/DuGX31saHBH5g==} + '@mantine/core@7.15.2': + resolution: {integrity: sha512-640ns0L/HZAXYjz3+FRffr8UNcH1fU7ENUVxKLzqNA311Dcx0qS3byVKTY/IVJYln6AkjoEfIJMiixT9fCZBiQ==} peerDependencies: - '@mantine/hooks': 7.15.1 + '@mantine/hooks': 7.15.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/dates@7.15.1': - resolution: {integrity: sha512-3WXTq841Em4+e1VLm+t+1mQvfgNkgIAN8/puGg7lljf+Nl6moiI1qekjE1lg2q8EkqI+5uUOgLamlOYX411j5g==} + '@mantine/dates@7.15.2': + resolution: {integrity: sha512-WeJ+a16bZC+7k9Fr6jiC5NrdZi23Hp28xGBa3kKYk0Nanz/lTgg2DTBgFB537+4MVD1kOmqso+7z1VO9uLeaEw==} peerDependencies: - '@mantine/core': 7.15.1 - '@mantine/hooks': 7.15.1 + '@mantine/core': 7.15.2 + '@mantine/hooks': 7.15.2 dayjs: '>=1.0.0' react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/dropzone@7.15.1': - resolution: {integrity: sha512-1kaIc8ReKI+xxh0Q+pTkPk9vW0hvTC++GttZ9kLQUH3Rd/VEVKC+gTqj2WFnkwaCSqe6rcGR7Xnb0deNvJ1mwA==} + '@mantine/dropzone@7.15.2': + resolution: {integrity: sha512-6jT1tFfUEhjWeZywohC8OMJnii0omOnqlqqGMQc0MZBpdMQmmTGJ3Z6oLkCadVH97FrROm8rtUOnMSA9CqiAGw==} peerDependencies: - '@mantine/core': 7.15.1 - '@mantine/hooks': 7.15.1 + '@mantine/core': 7.15.2 + '@mantine/hooks': 7.15.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/form@7.15.1': - resolution: {integrity: sha512-DA2syNlPsG1f+UtnbEG+pf4Pc/DoZUgcdvZn3LsCRxJZYNuwz8qQ16oL/wQ6UIk3klGlJI/RDzRJ9rvn6E28YQ==} + '@mantine/form@7.15.2': + resolution: {integrity: sha512-ADXLw/e0/ddNIj9EtJb5aes2VEpoR7GIVgKnzFhq8DXMfOZqaMn4rSVY8LmVOAtcMyocPR7hk8uQQ3ihmpzFaw==} peerDependencies: react: ^18.x || ^19.x - '@mantine/hooks@7.15.1': - resolution: {integrity: sha512-jrpjA5JhVSgUi0expfZpvNplMgvwdvrCIcKiDjQ16p/KiWngvTVfmJMtBOVxQ6hWrn500nLmZIDEcTmV9Dvb7g==} + '@mantine/hooks@7.15.2': + resolution: {integrity: sha512-p8dsW0fdJxzYhULbm1noFYRHuBvJHleYviC0BlwbkVySC8AsvFI8AmC3sMssWV3dQ3yQ/SidYo9U+K/czpDpZw==} peerDependencies: react: ^18.x || ^19.x - '@mantine/modals@7.15.1': - resolution: {integrity: sha512-mKlnzkwqOHO1laeVfILbcPLITF2qRwKbf/aF3GZhHiJVTX0aSEQ5IBL7dBQHhETLsfNp/GLzmOHKyw3zdNUS5g==} + '@mantine/modals@7.15.2': + resolution: {integrity: sha512-Boy3h3meNbhttMpGh9t7Phjvoc/tqL3v+U21w389KEf/NBdpAHVZVPxJL6rdVsP+vgNDpYDSCyfcxTL4zPvJaA==} peerDependencies: - '@mantine/core': 7.15.1 - '@mantine/hooks': 7.15.1 + '@mantine/core': 7.15.2 + '@mantine/hooks': 7.15.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/notifications@7.15.1': - resolution: {integrity: sha512-HcaePf1Ss0PuLugEsa57w8w5mxh9d/ZeByqn96DXWsN0HtRZ+ElqSFO9nY6G2zQGV7AzB0fqQXhGX4ffdz5zuA==} + '@mantine/notifications@7.15.2': + resolution: {integrity: sha512-SZYUJV+BMakyoURj1is5aKXyM6pHpwl3V28FVx7nExyXcHJyzmPmqaSPumo0ZjFo+ysQ8/0P9UnYP0kNRwrjdQ==} peerDependencies: - '@mantine/core': 7.15.1 - '@mantine/hooks': 7.15.1 + '@mantine/core': 7.15.2 + '@mantine/hooks': 7.15.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/spotlight@7.15.1': - resolution: {integrity: sha512-PtAmuALGrprxjA5NKLYPzvLvlxfC473WI32RF6gPODfZIS8LMSLue+sNuCIDQKeQKNnJOKwatXHH2X/TDGno7w==} + '@mantine/spotlight@7.15.2': + resolution: {integrity: sha512-wN0Glp7NjxQyRzr1djHFbZfDZRMhvNXmKpd4OxFpwcdE5W8Iqo1MTv5yzL/qx45F8o2wzdqd4wgfvlnTVsKs9g==} peerDependencies: - '@mantine/core': 7.15.1 - '@mantine/hooks': 7.15.1 + '@mantine/core': 7.15.2 + '@mantine/hooks': 7.15.2 react: ^18.x || ^19.x react-dom: ^18.x || ^19.x - '@mantine/store@7.15.1': - resolution: {integrity: sha512-+jwsCE0x0BoeNYhto/Y9PQtHu86BxBNsc3Jw+dNwPP2oeVCbpspopHN+JsTrLR9ZCvsy8N8hxOX7T3ZUGZLYFQ==} + '@mantine/store@7.15.2': + resolution: {integrity: sha512-8ZVRr6D/8GEu2VmUVU447w4H+hl9dwefl//GpSGI2vKxXBqlud5X9PJQkSwi5J7I5FAxvlG5dr/zCxC3r3nsIQ==} peerDependencies: react: ^18.x || ^19.x - '@mantine/tiptap@7.15.1': - resolution: {integrity: sha512-Y2uF4QoKSjMb1b/GmWWwIaXdKrmfdu3qTB7CA21ulONCfm81S13pNtbYYaqk4IR/O2WhQZ2x0UVoGou/VVcMCg==} + '@mantine/tiptap@7.15.2': + resolution: {integrity: sha512-fQqq41eAoGmC0vcDDnGsj9IVCAG0fN3XsR7dJKIz6jS51qfHSzbMCQgV8gRNKXkGDKet5B73TwUU/tD67+dkvg==} peerDependencies: - '@mantine/core': 7.15.1 - '@mantine/hooks': 7.15.1 + '@mantine/core': 7.15.2 + '@mantine/hooks': 7.15.2 '@tiptap/extension-link': '>=2.1.12' '@tiptap/react': '>=2.1.12' react: ^18.x || ^19.x @@ -3647,27 +3651,27 @@ packages: resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} - '@tanstack/query-core@5.62.8': - resolution: {integrity: sha512-4fV31vDsUyvNGrKIOUNPrZztoyL187bThnoQOvAXEVlZbSiuPONpfx53634MKKdvsDir5NyOGm80ShFaoHS/mw==} + '@tanstack/query-core@5.62.9': + resolution: {integrity: sha512-lwePd8hNYhyQ4nM/iRQ+Wz2cDtspGeZZHFZmCzHJ7mfKXt+9S301fULiY2IR2byJYY6Z03T427E5PoVfMexHjw==} - '@tanstack/query-devtools@5.61.4': - resolution: {integrity: sha512-21Tw+u8E3IJJj4A/Bct4H0uBaDTEu7zBrR79FeSyY+mS2gx5/m316oDtJiKkILc819VSTYt+sFzODoJNcpPqZQ==} + '@tanstack/query-devtools@5.62.9': + resolution: {integrity: sha512-b1NZzDLVf6laJsB1Cfm3ieuYzM+WqoO8qpm9v+3Etwd+Ph4zkhUMiT+wcWj5AhEPsXiRodKYiiW048VDNdBxNg==} - '@tanstack/react-query-devtools@5.62.8': - resolution: {integrity: sha512-SwjXjQTRONd9WPeKVQQ9framG7YNqPV8PS+EGNVNXAyz2XThulMRCvZnh2+3DggnjcYM7YcpnuoZ4RH7q13p0g==} + '@tanstack/react-query-devtools@5.62.10': + resolution: {integrity: sha512-TnFcvfEnOvH9j8iYKRl8Qn/U2P0NijdQ6nilhHobpdAcF4DLUwlKKufJZAlc759+1HBZ/jEvCqWo2g3mO9Ttvg==} peerDependencies: - '@tanstack/react-query': ^5.62.8 + '@tanstack/react-query': ^5.62.10 react: ^18 || ^19 - '@tanstack/react-query-next-experimental@5.62.8': - resolution: {integrity: sha512-2F7WA0L810rZXvyE6chsDr8dVqPPO5shilPFHYZjsu7TAE3egnTNUF5JhrhibRJbZ1SYfErL3urDyE+bXpUclw==} + '@tanstack/react-query-next-experimental@5.62.10': + resolution: {integrity: sha512-qfLlnSaJzIQU6kIynxp0iMDkNP0Dsgj/kd3xe9+I+0FsA26P3MCC9tcHj9QuXMNountNUZIcd2gLryMtOpT5ow==} peerDependencies: - '@tanstack/react-query': ^5.62.8 + '@tanstack/react-query': ^5.62.10 next: ^13 || ^14 || ^15 react: ^18 || ^19 - '@tanstack/react-query@5.62.8': - resolution: {integrity: sha512-8TUstKxF/fysHonZsWg/hnlDVgasTdHx6Q+f1/s/oPKJBJbKUWPZEHwLTMOZgrZuroLMiqYKJ9w69Abm8mWP0Q==} + '@tanstack/react-query@5.62.10': + resolution: {integrity: sha512-1e1WpHM5oGf27nWM/NWLY62/X9pbMBWa6ErWYmeuK0OqB9/g9UzA59ogiWbxCmS2wtAFQRhOdHhfSofrkhPl2g==} peerDependencies: react: ^18 || ^19 @@ -4147,51 +4151,51 @@ packages: '@types/xml2js@0.4.14': resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} - '@typescript-eslint/eslint-plugin@8.18.1': - resolution: {integrity: sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ==} + '@typescript-eslint/eslint-plugin@8.18.2': + resolution: {integrity: sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.18.1': - resolution: {integrity: sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==} + '@typescript-eslint/parser@8.18.2': + resolution: {integrity: sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.18.1': - resolution: {integrity: sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==} + '@typescript-eslint/scope-manager@8.18.2': + resolution: {integrity: sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.18.1': - resolution: {integrity: sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==} + '@typescript-eslint/type-utils@8.18.2': + resolution: {integrity: sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.18.1': - resolution: {integrity: sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==} + '@typescript-eslint/types@8.18.2': + resolution: {integrity: sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.18.1': - resolution: {integrity: sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==} + '@typescript-eslint/typescript-estree@8.18.2': + resolution: {integrity: sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.18.1': - resolution: {integrity: sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==} + '@typescript-eslint/utils@8.18.2': + resolution: {integrity: sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.18.1': - resolution: {integrity: sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==} + '@typescript-eslint/visitor-keys@8.18.2': + resolution: {integrity: sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@umami/node@0.4.0': @@ -4468,6 +4472,10 @@ packages: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} @@ -4495,6 +4503,10 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + array.prototype.tosorted@1.1.4: resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} engines: {node: '>= 0.4'} @@ -4503,6 +4515,10 @@ packages: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} @@ -4676,10 +4692,22 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -4944,8 +4972,8 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - cookie@1.0.1: - resolution: {integrity: sha512-Xd8lFX4LM9QEEwxQpF9J9NTUh8pmdJO0cyRJhFiDoLTk2eH8FXlRv2IFGYVadZpqI3j8fhNrSdKCeYPxiAhLXw==} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} engines: {node: '>=18'} cookies@0.9.1: @@ -5054,14 +5082,26 @@ packages: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} engines: {node: '>= 0.4'} + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + data-view-byte-length@1.0.1: resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} engines: {node: '>= 0.4'} + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + data-view-byte-offset@1.0.0: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} @@ -5229,8 +5269,8 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dotenv-cli@7.4.4: - resolution: {integrity: sha512-XkBYCG0tPIes+YZr4SpfFv76SQrV/LeCE8CI7JSEMi3VR9MvTihCGTOtbIexD6i2mXF+6px7trb1imVCXSNMDw==} + dotenv-cli@8.0.0: + resolution: {integrity: sha512-aLqYbK7xKOiTMIRf1lDPbI+Y+Ip/wo5k3eyp6ePysVaSqbyxjyK3dK35BTxG+rmd7djf5q2UPs4noPNH+cj0Qw==} hasBin: true dotenv-expand@10.0.0: @@ -5351,6 +5391,10 @@ packages: drizzle-orm: '>=0.36.0' zod: '>=3.0.0' + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + duplexer2@0.1.4: resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} @@ -5420,16 +5464,24 @@ packages: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} + es-abstract@1.23.7: + resolution: {integrity: sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ==} + engines: {node: '>= 0.4'} + es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.1.0: - resolution: {integrity: sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==} + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} es-module-lexer@1.5.4: @@ -5450,6 +5502,10 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + esbuild-register@3.6.0: resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: @@ -5562,8 +5618,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react@7.37.2: - resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} + eslint-plugin-react@7.37.3: + resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 @@ -5839,6 +5895,10 @@ packages: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} @@ -5862,6 +5922,10 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} + get-intrinsic@1.2.6: + resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} + engines: {node: '>= 0.4'} + get-nonce@1.0.1: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} @@ -5894,6 +5958,10 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + get-tsconfig@4.8.1: resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} @@ -5972,6 +6040,10 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -6011,10 +6083,18 @@ packages: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -6185,6 +6265,10 @@ packages: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + intl-messageformat@10.7.1: resolution: {integrity: sha512-xQuJW2WcyzNJZWUu5xTVPOmNSA1Sowuu/NKFdUid5Fxx/Yl6/s4DefTU/y7zy+irZLDmFGmTLtnM8FqpN05wlA==} @@ -6216,6 +6300,10 @@ packages: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -6229,10 +6317,18 @@ packages: is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} + is-boolean-object@1.2.1: + resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} + engines: {node: '>= 0.4'} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -6249,10 +6345,18 @@ packages: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} engines: {node: '>= 0.4'} + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + is-decimal@1.0.4: resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} @@ -6263,6 +6367,10 @@ packages: is-finalizationregistry@1.0.2: resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -6308,6 +6416,10 @@ packages: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -6338,6 +6450,10 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -6346,6 +6462,10 @@ packages: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -6362,14 +6482,26 @@ packages: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} @@ -6391,6 +6523,10 @@ packages: is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.1.0: + resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + engines: {node: '>= 0.4'} + is-weakset@2.0.3: resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} engines: {node: '>= 0.4'} @@ -6438,8 +6574,8 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - iterator.prototype@1.1.3: - resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} + iterator.prototype@1.1.4: + resolution: {integrity: sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==} engines: {node: '>= 0.4'} jackspeak@2.3.6: @@ -6467,8 +6603,8 @@ packages: jose@5.9.6: resolution: {integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==} - jotai@2.10.4: - resolution: {integrity: sha512-/T4ofyMSkAybEs2OvR8S4HACa+/ASUEPLz86SUjFXJqU9RdJKLvZDJrag398suvHC5CR0+Cs4P5m/gtVcryzlw==} + jotai@2.11.0: + resolution: {integrity: sha512-zKfoBBD1uDw3rljwHkt0fWuja1B76R7CjznuBO+mSX6jpsO1EBeWNRKpeaQho9yPI/pvCv4recGfgOXGxwPZvQ==} engines: {node: '>=12.20.0'} peerDependencies: '@types/react': '>=17.0.0' @@ -6742,6 +6878,10 @@ packages: engines: {node: '>= 18'} hasBin: true + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} @@ -6877,8 +7017,8 @@ packages: engines: {node: '>=8', npm: '>=5'} hasBin: true - mysql2@3.11.5: - resolution: {integrity: sha512-0XFu8rUmFN9vC0ME36iBvCUObftiMHItrYFhlCRvFWbLgpNqtC4Br/NmZX1HNCszxT0GGy5QtP+k3Q3eCJPaYA==} + mysql2@3.12.0: + resolution: {integrity: sha512-C8fWhVysZoH63tJbX8d10IAoYCyXy4fdRFz2Ihrt9jtPILYynFEKUUzpp1U7qxzDc3tMbotvaBH+sl6bFnGZiw==} engines: {node: '>= 8.0'} mz@2.7.0: @@ -7161,6 +7301,10 @@ packages: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -7169,6 +7313,10 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + object.entries@1.1.8: resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} @@ -7185,6 +7333,10 @@ packages: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + octokit@4.0.2: resolution: {integrity: sha512-wbqF4uc1YbcldtiBFfkSnquHtECEIpYD78YUXI6ri1Im5OO2NLo6ZVpRdbJpdnpZ05zMrVPssNiEo6JQtea+Qg==} engines: {node: '>= 18'} @@ -7703,8 +7855,8 @@ packages: peerDependencies: react: '>= 16.8 || 18.0.0' - react-error-boundary@4.1.2: - resolution: {integrity: sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==} + react-error-boundary@5.0.0: + resolution: {integrity: sha512-tnjAxG+IkpLephNcePNA7v6F/QpWLH8He65+DmedchDwg162JZqx4NmbXj0mlAYVVEd81OW7aFhmbsScYfiAFQ==} peerDependencies: react: '>=16.13.1' @@ -7795,11 +7947,11 @@ packages: peerDependencies: react: '>= 0.14.0' - react-textarea-autosize@8.5.5: - resolution: {integrity: sha512-CVA94zmfp8m4bSHtWwmANaBR8EPsKy2aZ7KwqhoS4Ftib87F9Kvi7XQhOixypPLMc6kVYgOXvKFuuzZDpHGRPg==} + react-textarea-autosize@8.5.6: + resolution: {integrity: sha512-aT3ioKXMa8f6zHYGebhbdMD2L00tKeRX1zuVuDx9YQK/JLLRSaSxq3ugECEmUB9z2kvk6bFSIoRHLkkUv0RJiw==} engines: {node: '>=10'} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-transition-group@4.4.5: resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} @@ -7861,6 +8013,10 @@ packages: resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} + reflect.getprototypeof@1.0.9: + resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==} + engines: {node: '>= 0.4'} + refractor@3.6.0: resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} @@ -7871,6 +8027,10 @@ packages: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + engines: {node: '>= 0.4'} + registry-auth-token@3.3.2: resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} @@ -7995,6 +8155,10 @@ packages: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -8005,6 +8169,10 @@ packages: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + safe-stable-stringify@2.5.0: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} @@ -8111,10 +8279,26 @@ packages: resolution: {integrity: sha512-cMGfwNyfDZ/nzJ2k2M+ClthBIh//GlZl1JEf47Uoa9XR11bz8Pa2T2wQO4bVrRdH48LrIDWJahQziKo3MjhsWg==} hasBin: true + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -8287,13 +8471,17 @@ packages: resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} engines: {node: '>= 0.4'} - string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} engines: {node: '>= 0.4'} string.prototype.repeat@1.0.0: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -8301,6 +8489,10 @@ packages: string.prototype.trimend@1.0.8: resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} @@ -8729,6 +8921,10 @@ packages: resolution: {integrity: sha512-jXMwges/FVbFRe5lTMJZVEZCrO9kI9c8k0PA/z7nF3bo0JSCCLysvokFjNPIUK/itEMas10MQM+AiHoHt/T/XA==} engines: {node: '>=16'} + type-fest@4.30.2: + resolution: {integrity: sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==} + engines: {node: '>=16'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -8737,26 +8933,42 @@ packages: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.2: resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + typed-array-length@1.0.6: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} types-ramda@0.30.1: resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==} - typescript-eslint@8.18.1: - resolution: {integrity: sha512-Mlaw6yxuaDEPQvb/2Qwu3/TfgeBHy9iTJ3mTwe7OvpPmF6KPQjVOfGyEJpPv6Ez2C34OODChhXrzYw/9phI0MQ==} + typescript-eslint@8.18.2: + resolution: {integrity: sha512-KuXezG6jHkvC3MvizeXgupZzaG5wjhU3yE8E7e6viOvAvD9xAWYp8/vy0WULTGe9DYDWcQu7aW03YIV3mSitrQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8785,6 +8997,10 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} @@ -9121,10 +9337,18 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + which-builtin-type@1.1.4: resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} engines: {node: '>= 0.4'} + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + which-collection@1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} @@ -9133,6 +9357,10 @@ packages: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + engines: {node: '>= 0.4'} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -9514,19 +9742,22 @@ snapshots: rfc4648: 1.5.3 uint8array-extras: 1.4.0 - '@ctrl/qbittorrent@9.1.0': + '@ctrl/qbittorrent@9.2.0': dependencies: '@ctrl/magnet-link': 4.0.2 - '@ctrl/shared-torrent': 6.1.0 + '@ctrl/shared-torrent': 6.2.1 '@ctrl/torrent-file': 4.1.0 - cookie: 1.0.1 + cookie: 1.0.2 node-fetch-native: 1.6.4 ofetch: 1.4.1 + type-fest: 4.30.2 ufo: 1.5.4 uint8array-extras: 1.4.0 '@ctrl/shared-torrent@6.1.0': {} + '@ctrl/shared-torrent@6.2.1': {} + '@ctrl/torrent-file@4.1.0': dependencies: uint8array-extras: 1.4.0 @@ -10116,106 +10347,106 @@ snapshots: js-base64: 3.7.7 optional: true - '@mantine/colors-generator@7.15.1(chroma-js@3.1.2)': + '@mantine/colors-generator@7.15.2(chroma-js@3.1.2)': dependencies: chroma-js: 3.1.2 - '@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@floating-ui/react': 0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) clsx: 2.1.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-number-format: 5.4.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-remove-scroll: 2.6.0(@types/react@18.3.13)(react@19.0.0) - react-textarea-autosize: 8.5.5(@types/react@18.3.13)(react@19.0.0) + react-textarea-autosize: 8.5.6(@types/react@18.3.13)(react@19.0.0) type-fest: 4.28.0 transitivePeerDependencies: - '@types/react' - '@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@floating-ui/react': 0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) clsx: 2.1.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-number-format: 5.4.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-remove-scroll: 2.6.0(@types/react@19.0.2)(react@19.0.0) - react-textarea-autosize: 8.5.5(@types/react@19.0.2)(react@19.0.0) + react-textarea-autosize: 8.5.6(@types/react@19.0.2)(react@19.0.0) type-fest: 4.28.0 transitivePeerDependencies: - '@types/react' - '@mantine/dates@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@mantine/core': 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) + '@mantine/core': 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) clsx: 2.1.1 dayjs: 1.11.13 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@mantine/dates@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@mantine/core': 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) + '@mantine/core': 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) clsx: 2.1.1 dayjs: 1.11.13 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@mantine/dropzone@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@mantine/dropzone@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@mantine/core': 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) + '@mantine/core': 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-dropzone-esm: 15.2.0(react@19.0.0) - '@mantine/form@7.15.1(react@19.0.0)': + '@mantine/form@7.15.2(react@19.0.0)': dependencies: fast-deep-equal: 3.1.3 klona: 2.0.6 react: 19.0.0 - '@mantine/hooks@7.15.1(react@19.0.0)': + '@mantine/hooks@7.15.2(react@19.0.0)': dependencies: react: 19.0.0 - '@mantine/modals@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@mantine/modals@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@mantine/core': 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) + '@mantine/core': 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@mantine/notifications@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@mantine/notifications@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@mantine/core': 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) - '@mantine/store': 7.15.1(react@19.0.0) + '@mantine/core': 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) + '@mantine/store': 7.15.2(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-transition-group: 4.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/spotlight@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@mantine/spotlight@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@mantine/core': 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) - '@mantine/store': 7.15.1(react@19.0.0) + '@mantine/core': 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) + '@mantine/store': 7.15.2(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@mantine/store@7.15.1(react@19.0.0)': + '@mantine/store@7.15.2(react@19.0.0)': dependencies: react: 19.0.0 - '@mantine/tiptap@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(@tiptap/extension-link@2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4))(@tiptap/react@2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@mantine/tiptap@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tiptap/extension-link@2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4))(@tiptap/react@2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@mantine/core': 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) + '@mantine/core': 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) '@tiptap/extension-link': 2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4) '@tiptap/react': 2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 @@ -11105,25 +11336,25 @@ snapshots: dependencies: remove-accents: 0.5.0 - '@tanstack/query-core@5.62.8': {} + '@tanstack/query-core@5.62.9': {} - '@tanstack/query-devtools@5.61.4': {} + '@tanstack/query-devtools@5.62.9': {} - '@tanstack/react-query-devtools@5.62.8(@tanstack/react-query@5.62.8(react@19.0.0))(react@19.0.0)': + '@tanstack/react-query-devtools@5.62.10(@tanstack/react-query@5.62.10(react@19.0.0))(react@19.0.0)': dependencies: - '@tanstack/query-devtools': 5.61.4 - '@tanstack/react-query': 5.62.8(react@19.0.0) + '@tanstack/query-devtools': 5.62.9 + '@tanstack/react-query': 5.62.10(react@19.0.0) react: 19.0.0 - '@tanstack/react-query-next-experimental@5.62.8(@tanstack/react-query@5.62.8(react@19.0.0))(next@14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0)': + '@tanstack/react-query-next-experimental@5.62.10(@tanstack/react-query@5.62.10(react@19.0.0))(next@14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react@19.0.0)': dependencies: - '@tanstack/react-query': 5.62.8(react@19.0.0) + '@tanstack/react-query': 5.62.10(react@19.0.0) next: 14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0) react: 19.0.0 - '@tanstack/react-query@5.62.8(react@19.0.0)': + '@tanstack/react-query@5.62.10(react@19.0.0)': dependencies: - '@tanstack/query-core': 5.62.8 + '@tanstack/query-core': 5.62.9 react: 19.0.0 '@tanstack/react-table@8.20.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': @@ -11362,7 +11593,7 @@ snapshots: '@trpc/server': 11.0.0-rc.666(typescript@5.7.2) typescript: 5.7.2 - '@trpc/next@11.0.0-rc.666(@tanstack/react-query@5.62.8(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.666(@tanstack/react-query@5.62.8(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(next@14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2)': + '@trpc/next@11.0.0-rc.666(@tanstack/react-query@5.62.10(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/react-query@11.0.0-rc.666(@tanstack/react-query@5.62.10(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(next@14.2.21(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.83.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2)': dependencies: '@trpc/client': 11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2) '@trpc/server': 11.0.0-rc.666(typescript@5.7.2) @@ -11371,12 +11602,12 @@ snapshots: react-dom: 19.0.0(react@19.0.0) typescript: 5.7.2 optionalDependencies: - '@tanstack/react-query': 5.62.8(react@19.0.0) - '@trpc/react-query': 11.0.0-rc.666(@tanstack/react-query@5.62.8(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) + '@tanstack/react-query': 5.62.10(react@19.0.0) + '@trpc/react-query': 11.0.0-rc.666(@tanstack/react-query@5.62.10(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2) - '@trpc/react-query@11.0.0-rc.666(@tanstack/react-query@5.62.8(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2)': + '@trpc/react-query@11.0.0-rc.666(@tanstack/react-query@5.62.10(react@19.0.0))(@trpc/client@11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2))(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.2)': dependencies: - '@tanstack/react-query': 5.62.8(react@19.0.0) + '@tanstack/react-query': 5.62.10(react@19.0.0) '@trpc/client': 11.0.0-rc.666(@trpc/server@11.0.0-rc.666(typescript@5.7.2))(typescript@5.7.2) '@trpc/server': 11.0.0-rc.666(typescript@5.7.2) react: 19.0.0 @@ -11657,14 +11888,14 @@ snapshots: dependencies: '@types/node': 22.10.2 - '@typescript-eslint/eslint-plugin@8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/parser': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/type-utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.18.2 eslint: 9.17.0 graphemer: 1.4.0 ignore: 5.3.2 @@ -11674,27 +11905,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.18.2 debug: 4.4.0 eslint: 9.17.0 typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.18.1': + '@typescript-eslint/scope-manager@8.18.2': dependencies: - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/visitor-keys': 8.18.2 - '@typescript-eslint/type-utils@8.18.1(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/type-utils@8.18.2(eslint@9.17.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) debug: 4.4.0 eslint: 9.17.0 ts-api-utils: 1.3.0(typescript@5.7.2) @@ -11702,12 +11933,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.18.1': {} + '@typescript-eslint/types@8.18.2': {} - '@typescript-eslint/typescript-estree@8.18.1(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.18.2(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/visitor-keys': 8.18.2 debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -11718,20 +11949,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.18.1(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/utils@8.18.2(eslint@9.17.0)(typescript@5.7.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.17.0) - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) eslint: 9.17.0 typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.18.1': + '@typescript-eslint/visitor-keys@8.18.2': dependencies: - '@typescript-eslint/types': 8.18.1 + '@typescript-eslint/types': 8.18.2 eslint-visitor-keys: 4.2.0 '@umami/node@0.4.0': {} @@ -12079,6 +12310,11 @@ snapshots: call-bind: 1.0.7 is-array-buffer: 3.0.4 + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + is-array-buffer: 3.0.5 + array-ify@1.0.0: {} array-includes@3.1.8: @@ -12124,6 +12360,13 @@ snapshots: es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-shim-unscopables: 1.0.2 + array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.7 @@ -12143,6 +12386,16 @@ snapshots: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + is-array-buffer: 3.0.5 + asn1@0.2.6: dependencies: safer-buffer: 2.1.2 @@ -12324,6 +12577,11 @@ snapshots: cac@6.7.14: {} + call-bind-apply-helpers@1.0.1: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -12332,6 +12590,18 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.0 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.6 + callsites@3.1.0: {} camel-case@3.0.0: @@ -12607,7 +12877,7 @@ snapshots: cookie@0.7.2: {} - cookie@1.0.1: {} + cookie@1.0.2: {} cookies@0.9.1: dependencies: @@ -12714,18 +12984,36 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + data-view-byte-length@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + data-view-byte-offset@1.0.0: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + dayjs@1.11.13: {} debug@3.2.7: @@ -12879,7 +13167,7 @@ snapshots: dependencies: is-obj: 2.0.0 - dotenv-cli@7.4.4: + dotenv-cli@8.0.0: dependencies: cross-spawn: 7.0.6 dotenv: 16.4.7 @@ -12903,20 +13191,26 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.38.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.12)(@types/react@19.0.2)(better-sqlite3@11.7.0)(mysql2@3.11.5)(react@19.0.0): + drizzle-orm@0.38.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.12)(@types/react@19.0.2)(better-sqlite3@11.7.0)(mysql2@3.12.0)(react@19.0.0): optionalDependencies: '@libsql/client-wasm': 0.14.0 '@types/better-sqlite3': 7.6.12 '@types/react': 19.0.2 better-sqlite3: 11.7.0 - mysql2: 3.11.5 + mysql2: 3.12.0 react: 19.0.0 - drizzle-zod@0.6.0(drizzle-orm@0.38.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.12)(@types/react@19.0.2)(better-sqlite3@11.7.0)(mysql2@3.11.5)(react@19.0.0))(zod@3.24.1): + drizzle-zod@0.6.0(drizzle-orm@0.38.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.12)(@types/react@19.0.2)(better-sqlite3@11.7.0)(mysql2@3.12.0)(react@19.0.0))(zod@3.24.1): dependencies: - drizzle-orm: 0.38.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.12)(@types/react@19.0.2)(better-sqlite3@11.7.0)(mysql2@3.11.5)(react@19.0.0) + drizzle-orm: 0.38.2(@libsql/client-wasm@0.14.0)(@types/better-sqlite3@7.6.12)(@types/react@19.0.2)(better-sqlite3@11.7.0)(mysql2@3.12.0)(react@19.0.0) zod: 3.24.1 + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + duplexer2@0.1.4: dependencies: readable-stream: 2.3.8 @@ -13041,28 +13335,82 @@ snapshots: unbox-primitive: 1.0.2 which-typed-array: 1.1.15 + es-abstract@1.23.7: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.2.6 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.0 + math-intrinsics: 1.1.0 + object-inspect: 1.13.3 + object-keys: 1.1.1 + object.assign: 4.1.7 + regexp.prototype.flags: 1.5.3 + safe-array-concat: 1.1.3 + safe-regex-test: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.18 + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 + es-define-property@1.0.1: {} + es-errors@1.3.0: {} - es-iterator-helpers@1.1.0: + es-iterator-helpers@1.2.1: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.7 es-errors: 1.3.0 es-set-tostringtag: 2.0.3 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.6 globalthis: 1.0.4 + gopd: 1.2.0 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - iterator.prototype: 1.1.3 - safe-array-concat: 1.1.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.4 + safe-array-concat: 1.1.3 es-module-lexer@1.5.4: {} @@ -13072,7 +13420,7 @@ snapshots: es-set-tostringtag@2.0.3: dependencies: - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.6 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -13086,6 +13434,12 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + esbuild-register@3.6.0(esbuild@0.19.12): dependencies: debug: 4.3.7 @@ -13258,17 +13612,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.17.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.17.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.18.2(eslint@9.17.0)(typescript@5.7.2) eslint: 9.17.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -13279,7 +13633,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.17.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.17.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.17.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -13291,7 +13645,7 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.18.2(eslint@9.17.0)(typescript@5.7.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -13320,14 +13674,14 @@ snapshots: dependencies: eslint: 9.17.0 - eslint-plugin-react@7.37.2(eslint@9.17.0): + eslint-plugin-react@7.37.3(eslint@9.17.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.2 + array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.1.0 + es-iterator-helpers: 1.2.1 eslint: 9.17.0 estraverse: 5.3.0 hasown: 2.0.2 @@ -13335,11 +13689,11 @@ snapshots: minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 - object.values: 1.2.0 + object.values: 1.2.1 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.11 + string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 eslint-plugin-turbo@2.3.3(eslint@9.17.0): @@ -13637,6 +13991,15 @@ snapshots: es-abstract: 1.23.3 functions-have-names: 1.2.3 + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + functions-have-names@1.2.3: {} gauge@3.0.2: @@ -13667,6 +14030,19 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 + get-intrinsic@1.2.6: + dependencies: + call-bind-apply-helpers: 1.0.1 + dunder-proto: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + function-bind: 1.1.2 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} get-port@5.1.1: {} @@ -13690,6 +14066,12 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -13777,7 +14159,7 @@ snapshots: globalthis@1.0.4: dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.2.0 globby@10.0.2: dependencies: @@ -13805,6 +14187,8 @@ snapshots: dependencies: get-intrinsic: 1.2.4 + gopd@1.2.0: {} + graceful-fs@4.2.10: {} graceful-fs@4.2.11: {} @@ -13850,8 +14234,14 @@ snapshots: has-proto@1.0.3: {} + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + has-symbols@1.0.3: {} + has-symbols@1.1.0: {} + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 @@ -14035,6 +14425,12 @@ snapshots: hasown: 2.0.2 side-channel: 1.0.6 + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + intl-messageformat@10.7.1: dependencies: '@formatjs/ecma402-abstract': 2.2.0 @@ -14084,6 +14480,12 @@ snapshots: call-bind: 1.0.7 get-intrinsic: 1.2.4 + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.6 + is-arrayish@0.2.1: {} is-arrayish@0.3.2: {} @@ -14096,11 +14498,20 @@ snapshots: dependencies: has-bigints: 1.0.2 + is-bigint@1.1.0: + dependencies: + has-bigints: 1.0.2 + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + is-boolean-object@1.2.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + is-callable@1.2.7: {} is-ci@2.0.0: @@ -14115,17 +14526,32 @@ snapshots: dependencies: is-typed-array: 1.1.13 + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.6 + is-typed-array: 1.1.15 + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.2 + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + is-decimal@1.0.4: {} is-extglob@2.1.1: {} is-finalizationregistry@1.0.2: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.3 is-fullwidth-code-point@3.0.0: {} @@ -14162,6 +14588,11 @@ snapshots: dependencies: has-tostringtag: 1.0.2 + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + is-number@7.0.0: {} is-obj@2.0.0: {} @@ -14181,12 +14612,23 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 + is-regex@1.2.1: + dependencies: + call-bound: 1.0.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + is-set@2.0.3: {} is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.3 + is-stream@2.0.1: {} is-stream@3.0.0: {} @@ -14197,14 +14639,29 @@ snapshots: dependencies: has-tostringtag: 1.0.2 + is-string@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.3 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.18 + is-typedarray@1.0.0: {} is-unicode-supported@0.1.0: {} @@ -14221,10 +14678,14 @@ snapshots: dependencies: call-bind: 1.0.7 + is-weakref@1.1.0: + dependencies: + call-bound: 1.0.3 + is-weakset@2.0.3: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + get-intrinsic: 1.2.6 is-what@4.1.16: {} @@ -14274,12 +14735,13 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - iterator.prototype@1.1.3: + iterator.prototype@1.1.4: dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.6 + define-data-property: 1.1.4 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.6 + has-symbols: 1.1.0 + reflect.getprototypeof: 1.0.9 set-function-name: 2.0.2 jackspeak@2.3.6: @@ -14312,12 +14774,12 @@ snapshots: jose@5.9.6: {} - jotai@2.10.4(@types/react@18.3.13)(react@19.0.0): + jotai@2.11.0(@types/react@18.3.13)(react@19.0.0): optionalDependencies: '@types/react': 18.3.13 react: 19.0.0 - jotai@2.10.4(@types/react@19.0.2)(react@19.0.0): + jotai@2.11.0(@types/react@19.0.2)(react@19.0.0): optionalDependencies: '@types/react': 19.0.2 react: 19.0.0 @@ -14567,11 +15029,11 @@ snapshots: make-error@1.3.6: {} - mantine-react-table@2.0.0-beta.7(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + mantine-react-table@2.0.0-beta.7(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@mantine/core': 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/dates': 7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) + '@mantine/core': 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/dates': 7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@18.3.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) '@tabler/icons-react': 3.26.0(react@19.0.0) '@tanstack/match-sorter-utils': 8.19.4 '@tanstack/react-table': 8.20.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -14581,11 +15043,11 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - mantine-react-table@2.0.0-beta.7(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + mantine-react-table@2.0.0-beta.7(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/dates@7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(@tabler/icons-react@3.26.0(react@19.0.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@mantine/core': 7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/dates': 7.15.1(@mantine/core@7.15.1(@mantine/hooks@7.15.1(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.1(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mantine/hooks': 7.15.1(react@19.0.0) + '@mantine/core': 7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/dates': 7.15.2(@mantine/core@7.15.2(@mantine/hooks@7.15.2(react@19.0.0))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@mantine/hooks@7.15.2(react@19.0.0))(dayjs@1.11.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mantine/hooks': 7.15.2(react@19.0.0) '@tabler/icons-react': 3.26.0(react@19.0.0) '@tanstack/match-sorter-utils': 8.19.4 '@tanstack/react-table': 8.20.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -14617,6 +15079,8 @@ snapshots: marked@12.0.2: {} + math-intrinsics@1.1.0: {} + mdurl@2.0.0: {} media-typer@0.3.0: {} @@ -14721,7 +15185,7 @@ snapshots: '@babel/runtime': 7.25.6 global: 4.4.0 - mysql2@3.11.5: + mysql2@3.12.0: dependencies: aws-ssl-profiles: 1.1.2 denque: 2.1.0 @@ -14924,6 +15388,8 @@ snapshots: object-inspect@1.13.2: {} + object-inspect@1.13.3: {} + object-keys@1.1.1: {} object.assign@4.1.5: @@ -14933,6 +15399,15 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + has-symbols: 1.1.0 + object-keys: 1.1.1 + object.entries@1.1.8: dependencies: call-bind: 1.0.7 @@ -14958,6 +15433,13 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + octokit@4.0.2: dependencies: '@octokit/app': 15.1.1 @@ -15546,7 +16028,7 @@ snapshots: prop-types: 15.8.1 react: 19.0.0 - react-error-boundary@4.1.2(react@19.0.0): + react-error-boundary@5.0.0(react@19.0.0): dependencies: '@babel/runtime': 7.25.6 react: 19.0.0 @@ -15662,7 +16144,7 @@ snapshots: react: 19.0.0 refractor: 3.6.0 - react-textarea-autosize@8.5.5(@types/react@18.3.13)(react@19.0.0): + react-textarea-autosize@8.5.6(@types/react@18.3.13)(react@19.0.0): dependencies: '@babel/runtime': 7.25.6 react: 19.0.0 @@ -15671,7 +16153,7 @@ snapshots: transitivePeerDependencies: - '@types/react' - react-textarea-autosize@8.5.5(@types/react@19.0.2)(react@19.0.0): + react-textarea-autosize@8.5.6(@types/react@19.0.2)(react@19.0.0): dependencies: '@babel/runtime': 7.25.6 react: 19.0.0 @@ -15757,14 +16239,25 @@ snapshots: reflect.getprototypeof@1.0.6: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.7 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.6 globalthis: 1.0.4 which-builtin-type: 1.1.4 + reflect.getprototypeof@1.0.9: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + dunder-proto: 1.0.1 + es-abstract: 1.23.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + gopd: 1.2.0 + which-builtin-type: 1.2.1 + refractor@3.6.0: dependencies: hastscript: 6.0.0 @@ -15780,6 +16273,13 @@ snapshots: es-errors: 1.3.0 set-function-name: 2.0.2 + regexp.prototype.flags@1.5.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + registry-auth-token@3.3.2: dependencies: rc: 1.2.8 @@ -15920,6 +16420,14 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.6 + has-symbols: 1.1.0 + isarray: 2.0.5 + safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} @@ -15930,6 +16438,12 @@ snapshots: es-errors: 1.3.0 is-regex: 1.1.4 + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 + safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} @@ -16059,6 +16573,26 @@ snapshots: short-unique-id@5.2.0: {} + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -16066,6 +16600,14 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.2 + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} signal-exit@3.0.7: {} @@ -16276,26 +16818,37 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.3 - string.prototype.matchall@4.0.11: + string.prototype.matchall@4.0.12: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.7 es-errors: 1.3.0 es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.2 + get-intrinsic: 1.2.6 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.3 set-function-name: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 es-abstract: 1.23.3 + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-object-atoms: 1.0.0 + has-property-descriptors: 1.0.2 + string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 @@ -16309,6 +16862,13 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.7 @@ -16786,6 +17346,8 @@ snapshots: type-fest@4.28.0: {} + type-fest@4.30.2: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -16797,6 +17359,12 @@ snapshots: es-errors: 1.3.0 is-typed-array: 1.1.13 + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + typed-array-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -16805,6 +17373,14 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 @@ -16814,6 +17390,16 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.9 + typed-array-length@1.0.6: dependencies: call-bind: 1.0.7 @@ -16823,6 +17409,15 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.6 + typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 @@ -16831,11 +17426,11 @@ snapshots: dependencies: ts-toolbelt: 9.6.0 - typescript-eslint@8.18.1(eslint@9.17.0)(typescript@5.7.2): + typescript-eslint@8.18.2(eslint@9.17.0)(typescript@5.7.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) eslint: 9.17.0 typescript: 5.7.2 transitivePeerDependencies: @@ -16859,6 +17454,13 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.3 + has-bigints: 1.0.2 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + uncrypto@0.1.3: {} undici-types@5.26.5: {} @@ -17247,20 +17849,44 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.1 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + which-builtin-type@1.1.4: dependencies: - function.prototype.name: 1.1.6 + function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.0.2 is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 + is-regex: 1.2.1 + is-weakref: 1.1.0 isarray: 2.0.5 which-boxed-primitive: 1.0.2 which-collection: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.18 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.3 + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.0.10 + is-regex: 1.2.1 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.18 which-collection@1.0.2: dependencies: @@ -17277,6 +17903,15 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.2 + which-typed-array@1.1.18: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + for-each: 0.3.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + which@2.0.2: dependencies: isexe: 2.0.0 diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index e3593cf6a..900ea4702 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -22,9 +22,9 @@ "eslint-config-turbo": "^2.3.3", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-react": "^7.37.2", + "eslint-plugin-react": "^7.37.3", "eslint-plugin-react-hooks": "^5.1.0", - "typescript-eslint": "^8.18.1" + "typescript-eslint": "^8.18.2" }, "devDependencies": { "@homarr/prettier-config": "workspace:^0.1.0",